[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210330165958.3094759-1-pbonzini@redhat.com>
Date: Tue, 30 Mar 2021 12:59:56 -0400
From: Paolo Bonzini <pbonzini@...hat.com>
To: linux-kernel@...r.kernel.org, kvm@...r.kernel.org
Cc: mtosatti@...hat.com, vkuznets@...hat.com, dwmw@...zon.co.uk
Subject: [PATCH 0/2] KVM: x86: fix lockdep splat due to Xen runstate update
pvclock_gtod_sync_lock can be taken with interrupts disabled if the
preempt notifier calls get_kvmclock_ns to update the Xen
runstate information:
spin_lock include/linux/spinlock.h:354 [inline]
get_kvmclock_ns+0x25/0x390 arch/x86/kvm/x86.c:2587
kvm_xen_update_runstate+0x3d/0x2c0 arch/x86/kvm/xen.c:69
kvm_xen_update_runstate_guest+0x74/0x320 arch/x86/kvm/xen.c:100
kvm_xen_runstate_set_preempted arch/x86/kvm/xen.h:96 [inline]
kvm_arch_vcpu_put+0x2d8/0x5a0 arch/x86/kvm/x86.c:4062
So change the users of the spinlock to spin_lock_irqsave and
spin_unlock_irqrestore. Before doing that, patch 1 just makes
the pvclock_gtod_sync_lock critical sections as small as possible
so that the resulting irq-disabled sections are easier to review.
Paolo
Paolo Bonzini (2):
KVM: x86: reduce pvclock_gtod_sync_lock critical sections
KVM: x86: disable interrupts while pvclock_gtod_sync_lock is taken
arch/x86/kvm/x86.c | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
--
2.26.2
Powered by blists - more mailing lists