diff options
author | Vitaly Kuznetsov <[email protected]> | 2017-10-05 13:39:24 +0200 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2017-10-10 12:54:56 +0200 |
commit | 60d73a7c96601434dfdb56d5b9167ff3b850d8d7 (patch) | |
tree | 12248a7085e4fac767e9e20236d7a91fd47e40cf /tools/perf/scripts/python/export-to-postgresql.py | |
parent | a3b7424392924e778b608e30ee321f7b10cc94b8 (diff) |
x86/hyperv: Don't use percpu areas for pcpu_flush/pcpu_flush_ex structures
hv_do_hypercall() does virt_to_phys() translation and with some configs
(CONFIG_SLAB) this doesn't work for percpu areas, we pass wrong memory to
hypervisor and get #GP. We could use working slow_virt_to_phys() instead
but doing so kills the performance.
Move pcpu_flush/pcpu_flush_ex structures out of percpu areas and
allocate memory on first call. The additional level of indirection gives
us a small performance penalty, in future we may consider introducing
hypercall functions which avoid virt_to_phys() conversion and cache
physical addresses of pcpu_flush/pcpu_flush_ex structures somewhere.
Reported-by: Simon Xiao <[email protected]>
Signed-off-by: Vitaly Kuznetsov <[email protected]>
Cc: Dexuan Cui <[email protected]>
Cc: Haiyang Zhang <[email protected]>
Cc: Jork Loeser <[email protected]>
Cc: K. Y. Srinivasan <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Stephen Hemminger <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: [email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions