android_kernel_xiaomi_sm8350/arch/powerpc/kernel
Anton Blanchard 8bbde7a706 powerpc: Move 64bit heap above 1TB on machines with 1TB segments
If we are using 1TB segments and we are allowed to randomise the heap, we can
put it above 1TB so it is backed by a 1TB segment. Otherwise the heap will be
in the bottom 1TB which always uses 256MB segments and this may result in a
performance penalty.

This functionality is disabled when heap randomisation is turned off:

echo 1 > /proc/sys/kernel/randomize_va_space

which may be useful when trying to allocate the maximum amount of 16M or 16G
pages.

On a microbenchmark that repeatedly touches 32GB of memory with a stride of
256MB + 4kB (designed to stress 256MB segments while still mapping nicely into
the L1 cache), we see the improvement:

Force malloc to use heap all the time:
# export MALLOC_MMAP_MAX_=0 MALLOC_TRIM_THRESHOLD_=-1

Disable heap randomization:
# echo 1 > /proc/sys/kernel/randomize_va_space
# time ./test
12.51s

Enable heap randomization:
# echo 2 > /proc/sys/kernel/randomize_va_space
# time ./test
1.70s

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2009-09-24 15:31:44 +10:00
..
vdso32 Use macros for .data.page_aligned section. 2009-09-21 06:27:08 +02:00
vdso64 Use macros for .data.page_aligned section. 2009-09-21 06:27:08 +02:00
.gitignore
align.c powerpc: Keep track of emulated instructions 2009-05-21 15:44:26 +10:00
asm-offsets.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
audit.c
btext.c
cacheinfo.c
cacheinfo.h
clock.c
compat_audit.c
cpu_setup_6xx.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
cpu_setup_44x.S
cpu_setup_fsl_booke.S powerpc/fsl-booke: Enable L1 cache on e500v1/e500v2/e500mc CPUs 2009-06-15 21:45:30 -05:00
cpu_setup_pa6t.S
cpu_setup_ppc970.S
cputable.c powerpc/book3e-64: Move the default cpu table entry 2009-08-28 14:24:13 +10:00
crash_dump.c
crash.c
dbell.c
dma-iommu.c powerpc: Change archdata dma_data to a union 2009-09-24 15:31:43 +10:00
dma-swiotlb.c powerpc: Handle SWIOTLB mapping error properly 2009-08-28 14:24:11 +10:00
dma.c powerpc: Rename get_dma_direct_offset get_dma_offset 2009-09-24 15:31:43 +10:00
entry_32.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
entry_64.S perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
exceptions-64e.S powerpc/book3e-64: Remove duplicated #include 2009-09-24 15:31:41 +10:00
exceptions-64s.S Merge commit 'paulus-perf/master' into next 2009-08-20 11:07:56 +10:00
firmware.c
fpu.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
ftrace.c Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-20 10:56:46 -07:00
head_8xx.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
head_32.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
head_40x.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
head_44x.S powerpc/mm: Cleanup handling of execute permission 2009-08-27 13:12:51 +10:00
head_64.S powerpc: Remaining 64-bit Book3E support 2009-08-20 10:25:11 +10:00
head_booke.h powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
head_fsl_booke.S powerpc/fsl-booke: Use HW PTE format if CONFIG_PTE_64BIT 2009-09-02 16:20:41 +10:00
ibmebus.c powerpc: use dma_map_ops struct 2009-08-28 14:24:10 +10:00
idle_6xx.S
idle_e500.S
idle_power4.S
idle.c
init_task.c Use new __init_task_data macro in arch init_task.c files. 2009-09-21 06:27:08 +02:00
io.c
iomap.c
iommu.c
irq.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
isa-bridge.c
kgdb.c
kprobes.c
l2cr_6xx.S
legacy_serial.c
lparcfg.c powerpc/pseries: Fix to handle slb resize across migration 2009-09-02 16:19:01 +10:00
machine_kexec_32.c
machine_kexec_64.c Use new __init_task_data macro in arch init_task.c files. 2009-09-21 06:27:08 +02:00
machine_kexec.c powerpc: Allow mem=x cmdline to work with 4G+ 2009-05-15 16:43:41 +10:00
Makefile perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
misc_32.S powerpc: Fix __flush_icache_range on 44x 2009-08-27 13:12:52 +10:00
misc_64.S powerpc: Move VMX and VSX asm code to vector.S 2009-06-09 16:46:25 +10:00
misc.S
module_32.c
module_64.c
module.c module: cleanup FIXME comments about trimming exception table entries. 2009-06-12 21:47:05 +09:30
mpc7450-pmu.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
msi.c
nvram_64.c
of_device.c powerpc/of: Fix usage of dev_set_name() in of_device_alloc() 2009-06-26 16:55:35 +10:00
of_platform.c powerpc/pci: Merge ppc32 and ppc64 versions of phb_scan() 2009-09-02 15:45:53 +10:00
paca.c powerpc: Add PACA fields specific to 64-bit Book3E processors 2009-08-20 10:25:08 +10:00
pci_32.c powerpc/pci: Merge ppc32 and ppc64 versions of phb_scan() 2009-09-02 15:45:53 +10:00
pci_64.c PCI/powerpc: support PCIe fundamental reset 2009-09-09 13:29:41 -07:00
pci_dn.c powerpc/pci: Move pseries code into pseries platform specific area 2009-05-21 15:44:24 +10:00
pci_of_scan.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-09-16 07:49:54 -07:00
pci-common.c powerpc: Change archdata dma_data to a union 2009-09-24 15:31:43 +10:00
perf_callchain.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
perf_event.c perf_event, powerpc: Fix compilation after big perf_counter rename 2009-09-22 09:30:40 +02:00
pmc.c
power4-pmu.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
power5-pmu.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
power5+-pmu.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
power6-pmu.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
power7-pmu.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
ppc32.h
ppc970-pmu.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
ppc_ksyms.c
ppc_save_regs.S
proc_ppc64.c
process.c powerpc: Move 64bit heap above 1TB on machines with 1TB segments 2009-09-24 15:31:44 +10:00
prom_init_check.sh
prom_init.c powerpc/prom_init: Evaluate mem kernel parameter for early allocation 2009-08-20 10:29:25 +10:00
prom_parse.c powerpc: Fix of_node_put() exit path in of_irq_map_one() 2009-04-20 12:18:43 -06:00
prom.c powerpc: Shield code specific to 64-bit server processors 2009-06-09 16:47:38 +10:00
ptrace32.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
ptrace.c powerpc: Fix booke user_disable_single_step() 2009-07-15 17:41:45 +10:00
reloc_64.S
rtas_flash.c
rtas_pci.c powerpc/pci: Clean up direct access to sysdata by RTAS 2009-05-21 15:44:23 +10:00
rtas-proc.c
rtas-rtc.c
rtas.c powerpc/pseries: Fix to handle slb resize across migration 2009-09-02 16:19:01 +10:00
setup_32.c powerpc/nvram: Enable use Generic NVRAM driver for different size chips 2009-09-11 16:02:11 +10:00
setup_64.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2009-09-15 09:51:09 -07:00
setup-common.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus 2009-09-23 18:14:11 -07:00
setup.h
signal_32.c
signal_64.c
signal.c
signal.h
smp-tbsync.c
smp.c cpumask: Use accessors for cpu_*_mask: powerpc 2009-09-24 09:34:48 +09:30
softemu8xx.c
stacktrace.c
suspend.c
swsusp_32.S
swsusp_64.c
swsusp_asm64.S
swsusp.c
sys_ppc32.c headers: utsname.h redux 2009-09-23 18:13:10 -07:00
syscalls.c
sysfs.c powerpc: Fix bug where perf_counters breaks oprofile 2009-09-11 11:27:58 +10:00
systbl_chk.c
systbl_chk.sh
systbl.S
tau_6xx.c
time.c Merge branch 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-23 09:46:15 -07:00
traps.c powerpc: Add PTRACE_SINGLEBLOCK support 2009-06-09 13:29:25 +10:00
udbg_16550.c trivial: fix typo "for for" in multiple files 2009-09-21 15:14:54 +02:00
udbg.c
vdso.c Use macros for .data.page_aligned section. 2009-09-21 06:27:08 +02:00
vecemu.c
vector.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
vio.c powerpc: Change archdata dma_data to a union 2009-09-24 15:31:43 +10:00
vmlinux.lds.S Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2009-09-15 09:51:09 -07:00