]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: x86: Fix perf timer mode IP reporting
authorAndi Kleen <ak@linux.intel.com>
Wed, 26 Jul 2017 00:20:32 +0000 (17:20 -0700)
committerRadim Krčmář <rkrcmar@redhat.com>
Wed, 28 Mar 2018 14:12:59 +0000 (16:12 +0200)
commit150bdd4aeba96961ea7a8739fb5b900bb5108f6d
tree7921a43d1f5d4fde1fe36ebdb12e889fbeed1430
parent25e240312ed3b88e9a4319280e855c0e664f1caa
KVM: x86: Fix perf timer mode IP reporting

KVM and perf have a special backdoor mechanism to report the IP for interrupts
re-executed after vm exit. This works for the NMIs that perf normally uses.

However when perf is in timer mode it doesn't work because the timer interrupt
doesn't get this special treatment. This is common when KVM is running
nested in another hypervisor which may not implement the PMU, so only
timer mode is available.

Call the functions to set up the backdoor IP also for non NMI interrupts.

I renamed the functions to set up the backdoor IP reporting to be more
appropiate for their new use.  The SVM change is only compile tested.

v2: Moved the functions inline.
For the normal interrupt case the before/after functions are now
called from x86.c, not arch specific code.
For the NMI case we still need to call it in the architecture
specific code, because it's already needed in the low level *_run
functions.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
[Removed unnecessary calls from arch handle_external_intr. - Radim]
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
arch/x86/kvm/svm.c
arch/x86/kvm/vmx.c
arch/x86/kvm/x86.c
arch/x86/kvm/x86.h