android_kernel_motorola_sm6225/arch/powerpc/mm
Laurentiu Tudor 7c48005036 powerpc/booke64: wrap tlb lock and search in htw miss with FTR_SMT
Virtualized environments may expose a e6500 dual-threaded core
as two single-threaded e6500 cores. Take advantage of this
and get rid of the tlb lock and the trap-causing tlbsx in
the htw miss handler by guarding with CPU_FTR_SMT, as it's
already being done in the bolted tlb1 miss handler.

As seen in the results below, measurements done with lmbench
random memory access latency test running under Freescale's
Embedded Hypervisor, there is a ~34% improvement.

Memory latencies in nanoseconds - smaller is better
    (WARNING - may not be correct, check graphs)
----------------------------------------------------
Host       Mhz   L1 $   L2 $    Main mem    Rand mem
---------  ---   ----   ----    --------    --------
smt       1665 1.8020   13.2    83.0         1149.7
nosmt     1665 1.8020   13.2    83.0          758.1

Signed-off-by: Laurentiu Tudor <Laurentiu.Tudor@freescale.com>
Cc: Scott Wood <scottwood@freescale.com>
[scottwood@freescale.com: commit message tweak]
Signed-off-by: Scott Wood <scottwood@freescale.com>
2014-06-20 18:48:34 -05:00
..
40x_mmu.c memblock: Remove rmo_size, burry it in arch/powerpc where it belongs 2010-08-05 12:56:08 +10:00
44x_mmu.c powerpc: Delete __cpuinit usage from all users 2013-07-01 11:10:36 +10:00
dma-noncoherent.c mm/arch: use __free_reserved_page() to simplify the code 2013-11-13 12:09:03 +09:00
fault.c arch: mm: pass userspace fault flag to generic fault handler 2013-09-12 15:38:01 -07:00
fsl_booke_mmu.c powerpc/e6500: TLB miss handler with hardware tablewalk support 2014-01-09 17:52:19 -06:00
gup.c powerpc/mm: NUMA pte should be handled via slow path in get_user_pages_fast() 2014-04-09 12:53:03 +10:00
hash_low_32.S powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly 2012-07-11 14:18:22 +10:00
hash_low_64.S powerpc: Fix branch patching code for ABIv2 2014-04-23 10:05:22 +10:00
hash_native_64.c powerpc/mm: Fix tlbie to add AVAL fields for 64K pages 2014-04-28 13:11:24 +10:00
hash_utils_64.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-06-10 18:54:22 -07:00
highmem.c mm: fix race in kunmap_atomic() 2010-10-27 18:03:05 -07:00
hugepage-hash64.c powerpc/mm: Free up _PAGE_COHERENCE for numa fault use later 2013-12-09 11:40:28 +11:00
hugetlbpage-book3e.c powerpc/fsl-book3e-64: Use paca for hugetlb TLB1 entry selection 2014-01-09 17:52:20 -06:00
hugetlbpage-hash64.c powerpc/mm: Free up _PAGE_COHERENCE for numa fault use later 2013-12-09 11:40:28 +11:00
hugetlbpage.c hugetlb: restrict hugepage_migration_support() to x86_64 2014-06-04 16:53:51 -07:00
icswx.c powerpc: Fix typo "CONFIG_ICSWX_PID" 2013-04-18 13:03:54 +10:00
icswx.h powerpc/icswx: Fix race condition with IPI setting ACOP 2012-03-07 17:06:09 +11:00
icswx_pid.c powerpc: Split ICSWX ACOP and PID processing 2011-11-25 14:11:27 +11:00
init_32.c powerpc/8xx: Fixing memory init issue with CONFIG_PIN_TLB 2013-10-28 21:11:22 -05:00
init_64.c powerpc: Prepare to support kernel handling of IOMMU map/unmap 2013-10-11 17:24:39 +11:00
Makefile powerpc/THP: Add code to handle HPTE faults for hugepages 2013-06-21 16:01:56 +10:00
mem.c powerpc/pseries: Use remove_memory() to remove memory 2014-03-07 15:53:13 +11:00
mmap.c mm: remove free_area_cache 2013-07-10 18:11:34 -07:00
mmu_context_hash32.c powerpc: include export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:30:38 -04:00
mmu_context_hash64.c powerpc: Reduce PTE table memory wastage 2013-04-30 16:00:07 +10:00
mmu_context_nohash.c powerpc: Delete __cpuinit usage from all users 2013-07-01 11:10:36 +10:00
mmu_decl.h powerpc/fsl_booke: smp support for booting a relocatable kernel above 64M 2014-01-09 17:52:18 -06:00
numa.c powerpc/mm: fix ".__node_distance" undefined 2014-04-18 16:40:08 -07:00
pgtable.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
pgtable_32.c powerpc: add barrier after writing kernel PTE 2014-01-09 17:52:19 -06:00
pgtable_64.c powerpc/mm: Make sure a local_irq_disable prevent a parallel THP split 2014-03-24 09:48:34 +11:00
ppc_mmu_32.c memblock: Remove rmo_size, burry it in arch/powerpc where it belongs 2010-08-05 12:56:08 +10:00
slb.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-06-10 18:54:22 -07:00
slb_low.S Merge remote-tracking branch 'anton/abiv2' into next 2014-05-05 20:57:12 +10:00
slice.c powerpc/mm: Fix mmap errno when MAP_FIXED is set and mapping exceeds the allowed address space 2014-01-29 17:02:25 +11:00
stab.c powerpc/mm: Remove uses of abs_to_virt() and virt_to_abs() 2012-09-05 15:19:31 +10:00
subpage-prot.c powerpc/mm: Add new "set" flag argument to pte/pmd update function 2014-02-17 11:19:35 +11:00
tlb_hash32.c powerpc: include export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:30:38 -04:00
tlb_hash64.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
tlb_low_64e.S powerpc/booke64: wrap tlb lock and search in htw miss with FTR_SMT 2014-06-20 18:48:34 -05:00
tlb_nohash.c powerpc/fsl-booke64: Set vmemmap_psize to 4K 2014-05-22 18:08:12 -05:00
tlb_nohash_low.S powerpc/fsl_booke: smp support for booting a relocatable kernel above 64M 2014-01-09 17:52:18 -06:00