aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
diff options
context:
space:
mode:
authorVitaly Kuznetsov <[email protected]>2017-10-05 11:39:24 +0000
committerIngo Molnar <[email protected]>2017-10-10 10:54:56 +0000
commit60d73a7c96601434dfdb56d5b9167ff3b850d8d7 (patch)
tree12248a7085e4fac767e9e20236d7a91fd47e40cf /drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
parentx86/hyperv: Clear vCPU banks between calls to avoid flushing unneeded vCPUs (diff)
downloadkernel-60d73a7c96601434dfdb56d5b9167ff3b850d8d7.tar.gz
kernel-60d73a7c96601434dfdb56d5b9167ff3b850d8d7.zip
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 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
0 files changed, 0 insertions, 0 deletions