android_kernel_samsung_univ.../arch/sparc/kernel
David Miller 9e695d2ecc sparc64: Support transparent huge pages.
This is relatively easy since PMD's now cover exactly 4MB of memory.

Our PMD entries are 32-bits each, so we use a special encoding.  The
lowest bit, PMD_ISHUGE, determines the interpretation.  This is possible
because sparc64's page tables are purely software entities so we can use
whatever encoding scheme we want.  We just have to make the TLB miss
assembler page table walkers aware of the layout.

set_pmd_at() works much like set_pte_at() but it has to operate in two
page from a table of non-huge PTEs, so we have to queue up TLB flushes
based upon what mappings are valid in the PTE table.  In the second regime
we are going from huge-page to non-huge-page, and in that case we need
only queue up a single TLB flush to push out the huge page mapping.

We still have 5 bits remaining in the huge PMD encoding so we can very
likely support any new pieces of THP state tracking that might get added
in the future.

With lots of help from Johannes Weiner.

Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-10-09 16:23:06 +09:00
..
.gitignore
apc.c
asm-offsets.c
audit.c
auxio_32.c
auxio_64.c
btext.c
central.c
cherrs.S
chmc.c
compat_audit.c
cpu.c sparc32: handle leon in cpu.c 2012-05-27 23:52:45 -07:00
cpumap.c
cpumap.h
devices.c
dma.c
ds.c
dtlb_miss.S
dtlb_prot.S
ebus.c
entry.h
entry.S sparc32: introduce support for run-time patching for all shared assembler code 2012-05-27 23:52:49 -07:00
etrap_32.S sparc32: introduce support for run-time patching for all shared assembler code 2012-05-27 23:52:49 -07:00
etrap_64.S Revert strace hiccups fix. 2012-10-05 20:39:04 -07:00
fpu_traps.S
ftrace.c
getsetcc.S
head_32.S sparc32: drop swapper_pg_dir 2012-07-26 16:46:15 -07:00
head_64.S sparc64: Niagara-4 bzero/memset, plus use MRU stores in page copy. 2012-10-05 13:45:26 -07:00
helpers.S
hvapi.c sparc: fix format string argument for prom_printf() 2012-10-02 23:20:34 -04:00
hvcalls.S sparc64: Add hypervisor interfaces for SPARC-T4 perf counter access. 2012-08-18 23:03:53 -07:00
hvtramp.S
idprom.c
iommu_common.h
iommu.c
ioport.c sparc32: Export leon_dma_ops to modules. 2012-05-28 00:07:03 -07:00
irq_32.c sparc32: handle leon in irq_32.c 2012-05-27 23:52:44 -07:00
irq_64.c sparc32: Trivial removal of sun4c references in comments. 2012-05-12 00:35:45 -07:00
irq.h sparc32: remove runtime btfix support 2012-05-14 14:05:09 -07:00
itlb_miss.S
ivec.S
jump_label.c
kernel.h sparc32: introduce sparc32_start_kernel called from head_32.S 2012-05-27 23:52:42 -07:00
kgdb_32.c
kgdb_64.c
kprobes.c
kstack.h
ktlb.S sparc64: Support 2GB and 16GB page sizes for kernel linear mappings. 2012-09-06 18:13:58 -07:00
ldc.c sparc/ldc: remove IRQF_SAMPLE_RANDOM which is now a no-op 2012-07-19 10:40:30 -04:00
led.c
leon_kernel.c sparc32,leon: drop leon_init() 2012-07-26 16:46:16 -07:00
leon_pci_grpci2.c
leon_pci.c PCI: Provide a default pcibios_update_irq() 2012-09-18 17:28:21 -06:00
leon_pmc.c sparc32,leon: always include leon_pmc in build 2012-05-27 23:52:53 -07:00
leon_smp.c sparc32,leon: fix section mismatch warning 2012-05-27 23:52:48 -07:00
Makefile sparc32,leon: always include leon_pmc in build 2012-05-27 23:52:53 -07:00
mdesc.c sparc64: Probe cpu page size support more portably. 2012-09-06 19:01:25 -07:00
misctrap.S
module.c sparc: fix the return value of module_alloc() 2012-09-21 12:14:20 -07:00
nmi.c sparc64: Abstract away the %pcr values used to enable/disable NMI 2012-08-18 23:26:19 -07:00
of_device_32.c
of_device_64.c devicetree: add helper inline for retrieving a node's full name 2012-07-06 07:16:34 -05:00
of_device_common.c
of_device_common.h
pci_common.c
pci_fire.c
pci_impl.h sparc/PCI: register busn_res for root buses 2012-06-13 15:42:24 -06:00
pci_msi.c
pci_psycho.c
pci_sabre.c
pci_schizo.c
pci_sun4v_asm.S
pci_sun4v.c arch/sparc/kernel/pci_sun4v.c: removes unnecessary semicolon 2012-09-21 12:08:56 -07:00
pci_sun4v.h
pci.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
pcic.c Merge branch 'pci/myron-pcibios_setup' into next 2012-07-05 15:31:05 -06:00
pcr.c sparc64: Add PCR ops for SPARC-T4. 2012-08-18 23:26:19 -07:00
perf_event.c sparc64: Update generic comments in perf event code to match reality. 2012-08-18 23:26:21 -07:00
pmc.c
power.c
process_32.c sparc32, copy_thread: Clear TIF_USEDFPU flag of created task instead of current 2012-07-26 16:49:40 -07:00
process_64.c
prom_32.c
prom_64.c sparc: fix format string argument for prom_printf() 2012-10-02 23:20:34 -04:00
prom_common.c sparc: fix sparc64 build due to leon.h inclusion 2012-05-29 12:47:38 -07:00
prom_irqtrans.c
prom.h
psycho_common.c
psycho_common.h
ptrace_32.c
ptrace_64.c
reboot.c
rtrap_32.S sparc32: introduce support for run-time patching for all shared assembler code 2012-05-27 23:52:49 -07:00
rtrap_64.S
sbus.c
setup_32.c sparc32: centralize all mmu context handling in srmmu.c 2012-07-26 16:46:16 -07:00
setup_64.c sparc64: Add detection for features new in SPARC-T4. 2012-08-18 23:02:36 -07:00
signal32.c compat: move compat_siginfo_t definition to asm/compat.h 2012-10-06 03:05:16 +09:00
signal_32.c new helper: signal_delivered() 2012-06-01 12:58:52 -04:00
signal_64.c new helper: signal_delivered() 2012-06-01 12:58:52 -04:00
sigutil_32.c
sigutil_64.c
sigutil.h
smp_32.c Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-21 19:43:57 -07:00
smp_64.c SPARC: SMP: Remove call to ipi_call_lock_irq()/ipi_call_unlock_irq() 2012-06-05 17:27:13 +02:00
sparc_ksyms_32.c sparc32: Implement hard_smp_processor_id() via instruction patching. 2012-05-14 13:31:38 -07:00
sparc_ksyms_64.c
spiterrs.S
sstate.c
stacktrace.c
starfire.c
sun4d_irq.c sparc32: remove remaining users of btfixup 2012-05-14 14:05:08 -07:00
sun4d_smp.c Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-21 19:43:57 -07:00
sun4m_irq.c sparc32: remove remaining users of btfixup 2012-05-14 14:05:08 -07:00
sun4m_smp.c Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-21 19:43:57 -07:00
sun4v_ivec.S
sun4v_tlb_miss.S sparc64: Support transparent huge pages. 2012-10-09 16:23:06 +09:00
sys32.S compat: fs: Generic compat_sys_sendfile implementation 2012-10-02 21:35:55 -04:00
sys_sparc32.c compat: fs: Generic compat_sys_sendfile implementation 2012-10-02 21:35:55 -04:00
sys_sparc_32.c sparc: kill ancient comment in sparc_sigaction() 2012-05-21 23:59:23 -04:00
sys_sparc_64.c sparc64: do not clobber personality flags in sys_sparc64_personality() 2012-08-02 00:26:50 -07:00
syscalls.S Revert strace hiccups fix. 2012-10-05 20:39:04 -07:00
sysfs.c
systbls_32.S
systbls_64.S
systbls.h
tadpole.c
time_32.c sparc32: remove runtime btfix support 2012-05-14 14:05:09 -07:00
time_64.c
trampoline_32.S sparc32,leon: always include leon_smp + leon_mm in build 2012-05-27 23:52:47 -07:00
trampoline_64.S
traps_32.c sparc32: Kill off software 32-bit multiply/divide routines. 2012-05-15 11:23:47 -07:00
traps_64.c Revert strace hiccups fix. 2012-10-05 20:39:04 -07:00
tsb.S sparc64: Support transparent huge pages. 2012-10-09 16:23:06 +09:00
ttable_32.S sparc32: move trap table to a separate file 2012-05-19 23:27:25 -07:00
ttable_64.S sparc64: renamed ttable.S to ttable_64.S 2012-05-19 23:26:41 -07:00
una_asm_32.S
una_asm_64.S
unaligned_32.c
unaligned_64.c
us2e_cpufreq.c
us3_cpufreq.c
utrap.S
vio.c Fix typo in printed messages 2012-06-24 11:03:52 -07:00
viohs.c
visemul.c
vmlinux.lds.S sparc32: add support for run-time patching of leon/sun single instructions 2012-05-27 23:52:43 -07:00
windows.c
winfixup.S
wof.S sparc32: introduce support for run-time patching for all shared assembler code 2012-05-27 23:52:49 -07:00
wuf.S sparc32: introduce support for run-time patching for all shared assembler code 2012-05-27 23:52:49 -07:00