[PATCH v4 0/8] KVM: Fix tick-based accounting for x86 guests

From: Sean Christopherson
Date: Tue May 04 2021 - 20:27:48 EST


Fix tick-based accounting for x86 guests, and do additional cleanups to
further disentangle guest time accounting and to deduplicate code.

v4:
- Add R-b's (dropped one due to code change). [Christian]
- Drop instrumentation annotation shuffling since s390 may be gaining
support. [Christian].
- Drop "irqs_off" from context_tracking_guest_exit(). [Frederic]
- Account guest time after enabling IRQs, even when using context
tracking to precisely account time. [Frederic]

v3 (delta from Wanpeng's v2):
- https://lkml.kernel.org/r/20210415222106.1643837-1-seanjc@xxxxxxxxxx
- s/context_guest/context_tracking_guest, purely to match the existing
functions. I have no strong opinion either way.
- Split only the "exit" functions.
- Partially open code vcpu_account_guest_exit() and
__vtime_account_guest_exit() in x86 to avoid churn when segueing into
my cleanups (see above).

older:
- https://lkml.kernel.org/r/1618298169-3831-1-git-send-email-wanpengli@xxxxxxxxxxx
- https://lkml.kernel.org/r/20210413182933.1046389-1-seanjc@xxxxxxxxxx


Sean Christopherson (5):
sched/vtime: Move vtime accounting external declarations above inlines
sched/vtime: Move guest enter/exit vtime accounting to vtime.h
context_tracking: Consolidate guest enter/exit wrappers
context_tracking: KVM: Move guest enter/exit wrappers to KVM's domain
KVM: x86: Consolidate guest enter/exit logic to common helpers

Wanpeng Li (3):
context_tracking: Move guest exit context tracking to separate helpers
context_tracking: Move guest exit vtime accounting to separate helpers
KVM: x86: Defer vtime accounting 'til after IRQ handling

arch/x86/kvm/svm/svm.c | 39 +--------
arch/x86/kvm/vmx/vmx.c | 39 +--------
arch/x86/kvm/x86.c | 9 ++
arch/x86/kvm/x86.h | 45 ++++++++++
include/linux/context_tracking.h | 92 ++++-----------------
include/linux/kvm_host.h | 45 ++++++++++
include/linux/vtime.h | 138 +++++++++++++++++++------------
7 files changed, 205 insertions(+), 202 deletions(-)

--
2.31.1.527.g47e6f16901-goog