lkml.org 
[lkml]   [2012]   [Nov]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch] x86/vsyscall: Add Kconfig option to use native vsyscalls, switch to it
On Tue, 20 Nov 2012, Ingo Molnar wrote:

> Subject: x86/vsyscall: Add Kconfig option to use native vsyscalls, switch to it
> From: Ingo Molnar <mingo@kernel.org>
>
> Apparently there's still plenty of systems out there triggering
> the vsyscall emulation page faults - causing hard to track down
> performance regressions on page fault intense workloads...
>
> Some people seem to have run into that with threading-intense
> Java workloads.
>
> So until there's a better solution to this, add a Kconfig switch
> to make the vsyscall mode configurable and turn native vsyscall
> support back on by default.
>
> Distributions whose libraries and applications use the vDSO and never
> access the vsyscall page can change the config option to off.
>
> Note, I don't think we want to expose the "none" option via a Kconfig
> switch - it breaks the ABI. So it's "native" versus "emulate", with
> "none" being available as a kernel boot option, for the super paranoid.
>
> For more background, see these upstream commits:
>
> 3ae36655b97a x86-64: Rework vsyscall emulation and add vsyscall= parameter
> 5cec93c216db x86-64: Emulate legacy vsyscalls
>
> Cc: Andy Lutomirski <luto@amacapital.net>
> Cc: Linus Torvalds <torvalds@linux-foundation.org>
> Signed-off-by: Ingo Molnar <mingo@kernel.org>

It's slightly better, not sure if it's worth changing everybody's default
for the small speedup here, though.

THP enabled:

numa/core at ec05a2311c35: 136918.34 SPECjbb2005 bops
numa/core at 01aa90068b12: 128315.19 SPECjbb2005 bops (-6.3%)
numa/core at 01aa90068b12 + patch: 128589.34 SPECjbb2005 bops (-6.1%)

THP disabled:

numa/core at ec05a2311c35: 122246.90 SPECjbb2005 bops
numa/core at 01aa90068b12: 99389.49 SPECjbb2005 bops (-18.7%)
numa/core at 01aa90068b12 + patch: 100726.34 SPECjbb2005 bops (-17.6%)

perf top w/ THP enabled:

92.56% perf-13343.map [.] 0x00007fd513d2ba7a
1.24% libjvm.so [.] instanceKlass::oop_push_contents(PSPromoti
1.01% libjvm.so [.] PSPromotionManager::drain_stacks_depth(boo
0.77% libjvm.so [.] PSPromotionManager::copy_to_survivor_space
0.57% libjvm.so [.] PSPromotionManager::claim_or_forward_inter
0.26% libjvm.so [.] Copy::pd_disjoint_words(HeapWord*, HeapWord*, unsi
0.22% libjvm.so [.] CardTableExtension::scavenge_contents_parallel(Obj
0.20% [kernel] [k] read_tsc
0.15% [kernel] [k] _raw_spin_lock
0.13% [kernel] [k] getnstimeofday
0.12% [kernel] [k] page_fault
0.11% [kernel] [k] generic_smp_call_function_interrupt
0.10% [kernel] [k] ktime_get
0.10% [kernel] [k] rcu_check_callbacks
0.09% [kernel] [k] ktime_get_update_offsets
0.09% libjvm.so [.] objArrayKlass::oop_push_contents(PSPromotionManage
0.08% [kernel] [k] flush_tlb_func
0.07% [kernel] [k] system_call
0.07% libjvm.so [.] oopDesc::size_given_klass(Klass*)
0.06% [kernel] [k] handle_mm_fault
0.06% [kernel] [k] task_tick_fair
0.05% libc-2.3.6.so [.] __gettimeofday
0.05% libjvm.so [.] os::javaTimeMillis()
0.05% [kernel] [k] handle_pte_fault
0.05% [kernel] [k] system_call_after_swapgs
0.04% [kernel] [k] mpol_misplaced
0.04% [kernel] [k] __do_page_fault
0.04% perf [.] 0x0000000000035903
0.04% [kernel] [k] copy_user_generic_string
0.04% [kernel] [k] task_numa_fault
0.04% [acpi_cpufreq] [.] 0x000000005f51a009
0.04% [kernel] [k] find_vma
0.04% [kernel] [k] run_timer_softirq
0.03% [kernel] [k] sysret_check
0.03% [kernel] [k] smp_call_function_many
0.03% [kernel] [k] update_cfs_shares
0.02% [kernel] [k] do_wp_page
0.02% [kernel] [k] get_vma_policy
0.02% [kernel] [k] update_curr
0.02% [kernel] [k] down_read_trylock
0.02% [kernel] [k] apic_timer_interrupt


\
 
 \ /
  Last update: 2012-11-21 02:21    [W:0.159 / U:0.944 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site