Messages in this thread | | | Subject | Re: [PATCH v2 7/7] kvm/x86: rework guest entry logic | From | Nicolas Saenz Julienne <> | Date | Fri, 21 Jan 2022 18:40:20 +0100 |
| |
On Wed, 2022-01-19 at 10:58 +0000, Mark Rutland wrote: > For consistency and clarity, migrate x86 over to the generic helpers for > guest timing and lockdep/RCU/tracing management, and remove the > x86-specific helpers. > > Prior to this patch, the guest timing was entered in > kvm_guest_enter_irqoff() (called by svm_vcpu_enter_exit() and > svm_vcpu_enter_exit()), and was exited by the call to > vtime_account_guest_exit() within vcpu_enter_guest(). > > To minimize duplication and to more clearly balance entry and exit, both > entry and exit of guest timing are placed in vcpu_enter_guest(), using > the new guest_timing_{enter,exit}_irqoff() helpers. When context > tracking is used a small amount of additional time will be accounted > towards guests; tick-based accounting is unnaffected as IRQs are > disabled at this point and not enabled until after the return from the > guest. > > This also corrects (benign) mis-balanced context tracking accounting > introduced in commits: > > ae95f566b3d22ade ("KVM: X86: TSCDEADLINE MSR emulation fastpath") > 26efe2fd92e50822 ("KVM: VMX: Handle preemption timer fastpath") > > Where KVM can enter a guest multiple times, calling vtime_guest_enter() > without a corresponding call to vtime_account_guest_exit(), and with > vtime_account_system() called when vtime_account_guest() should be used. > As account_system_time() checks PF_VCPU and calls account_guest_time(), > this doesn't result in any functional problem, but is unnecessarily > confusing. > > Signed-off-by: Mark Rutland <mark.rutland@arm.com> > Cc: Borislav Petkov <bp@alien8.de> > Cc: Dave Hansen <dave.hansen@linux.intel.com> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: Jim Mattson <jmattson@google.com> > Cc: Joerg Roedel <joro@8bytes.org> > Cc: Paolo Bonzini <pbonzini@redhat.com> > Cc: Sean Christopherson <seanjc@google.com> > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Vitaly Kuznetsov <vkuznets@redhat.com> > Cc: Wanpeng Li <wanpengli@tencent.com> > ---
Reviewed-by: Nicolas Saenz Julienne <nsaenzju@redhat.com>
Thanks,
-- Nicolás Sáenz
| |