All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/11] KVM: x86: pvclock fixes and cleanups
@ 2025-02-01  1:38 Sean Christopherson
  2025-02-01  1:38 ` [PATCH v2 01/11] KVM: x86: Don't take kvm->lock when iterating over vCPUs in suspend notifier Sean Christopherson
                   ` (11 more replies)
  0 siblings, 12 replies; 20+ messages in thread
From: Sean Christopherson @ 2025-02-01  1:38 UTC (permalink / raw)
  To: Sean Christopherson, Paolo Bonzini, David Woodhouse, Paul Durrant
  Cc: kvm, linux-kernel, syzbot+352e553a86e0d75f5120, Paul Durrant,
	David Woodhouse, Vitaly Kuznetsov

Fix a lockdep splat in KVM's suspend notifier by simply removing a spurious
kvm->lock acquisition related to kvmclock, and then try to wrangle KVM's
pvclock handling into something approaching sanity (I made the mistake of
looking at how KVM handled PVCLOCK_GUEST_STOPPED).

The Xen changes are slightly better tested this time around, though given
how many bugs there were in v1, that isn't saying a whole lot.

Case in point, I had to shuffle the scariest patch (at first glance),
"KVM: x86/xen: Use guest's copy of pvclock when starting timer", to land
earlier in the series, because the existing usage of the cache pvclock's
"version" field in kvm_xen_start_timer() relies on the pvclock update to
persist _a_ version number to the cache.  Eww. :-(

v2:
 - Collect reviews. [Paul, Vitaly]
 - Account for the compat offset in xen_get_guest_pvclock().
 - Try both the compat and non-compat clocks in kvm_xen_start_timer().
 - Fix a horrendous uninitialized variable bug. [Paul]
 - Move the kvm_xen_start_timer() change earlier so that it wouldn't be
   transiently broken due to "version" always being '0'.
 - Shuffle patches so that the "set PVCLOCK_GUEST_STOPPED only for
   kvmclock" is fully isolated from "Don't bleed PVCLOCK_GUEST_STOPPED". [Paul]

v1: https://lore.kernel.org/all/20250118005552.2626804-1-seanjc@google.com

Sean Christopherson (11):
  KVM: x86: Don't take kvm->lock when iterating over vCPUs in suspend
    notifier
  KVM: x86: Eliminate "handling" of impossible errors during SUSPEND
  KVM: x86: Drop local pvclock_flags variable in kvm_guest_time_update()
  KVM: x86: Process "guest stopped request" once per guest time update
  KVM: x86/xen: Use guest's copy of pvclock when starting timer
  KVM: x86: Don't bleed PVCLOCK_GUEST_STOPPED across PV clocks
  KVM: x86: Set PVCLOCK_GUEST_STOPPED only for kvmclock, not for Xen PV
    clock
  KVM: x86: Pass reference pvclock as a param to
    kvm_setup_guest_pvclock()
  KVM: x86: Remove per-vCPU "cache" of its reference pvclock
  KVM: x86: Setup Hyper-V TSC page before Xen PV clocks (during clock
    update)
  KVM: x86: Override TSC_STABLE flag for Xen PV clocks in
    kvm_guest_time_update()

 arch/x86/include/asm/kvm_host.h |   3 +-
 arch/x86/kvm/x86.c              | 115 ++++++++++++++++----------------
 arch/x86/kvm/xen.c              |  69 +++++++++++++++++--
 3 files changed, 121 insertions(+), 66 deletions(-)


base-commit: eb723766b1030a23c38adf2348b7c3d1409d11f0
-- 
2.48.1.362.g079036d154-goog


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2025-02-15  0:56 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-01  1:38 [PATCH v2 00/11] KVM: x86: pvclock fixes and cleanups Sean Christopherson
2025-02-01  1:38 ` [PATCH v2 01/11] KVM: x86: Don't take kvm->lock when iterating over vCPUs in suspend notifier Sean Christopherson
2025-02-01  1:38 ` [PATCH v2 02/11] KVM: x86: Eliminate "handling" of impossible errors during SUSPEND Sean Christopherson
2025-02-01  1:38 ` [PATCH v2 03/11] KVM: x86: Drop local pvclock_flags variable in kvm_guest_time_update() Sean Christopherson
2025-02-01  1:38 ` [PATCH v2 04/11] KVM: x86: Process "guest stopped request" once per guest time update Sean Christopherson
2025-02-04  9:19   ` Paul Durrant
2025-02-01  1:38 ` [PATCH v2 05/11] KVM: x86/xen: Use guest's copy of pvclock when starting timer Sean Christopherson
2025-02-04  9:26   ` Paul Durrant
2025-02-01  1:38 ` [PATCH v2 06/11] KVM: x86: Don't bleed PVCLOCK_GUEST_STOPPED across PV clocks Sean Christopherson
2025-02-04  9:28   ` Paul Durrant
2025-02-01  1:38 ` [PATCH v2 07/11] KVM: x86: Set PVCLOCK_GUEST_STOPPED only for kvmclock, not for Xen PV clock Sean Christopherson
2025-02-04  9:31   ` Paul Durrant
2025-02-01  1:38 ` [PATCH v2 08/11] KVM: x86: Pass reference pvclock as a param to kvm_setup_guest_pvclock() Sean Christopherson
2025-02-04  9:33   ` Paul Durrant
2025-02-04  9:38     ` Paul Durrant
2025-02-04 19:23       ` Sean Christopherson
2025-02-01  1:38 ` [PATCH v2 09/11] KVM: x86: Remove per-vCPU "cache" of its reference pvclock Sean Christopherson
2025-02-01  1:38 ` [PATCH v2 10/11] KVM: x86: Setup Hyper-V TSC page before Xen PV clocks (during clock update) Sean Christopherson
2025-02-01  1:38 ` [PATCH v2 11/11] KVM: x86: Override TSC_STABLE flag for Xen PV clocks in kvm_guest_time_update() Sean Christopherson
2025-02-15  0:50 ` [PATCH v2 00/11] KVM: x86: pvclock fixes and cleanups Sean Christopherson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.