mbox series

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

Message ID 20210505002735.1684165-1-seanjc@google.com (mailing list archive)
Headers show
Series KVM: Fix tick-based accounting for x86 guests | expand

Message

Sean Christopherson May 5, 2021, 12:27 a.m. UTC
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@google.com
  - 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@tencent.com
  - https://lkml.kernel.org/r/20210413182933.1046389-1-seanjc@google.com


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(-)