Re: [PATCH 01/10] KVM: x86: Don't take kvm->lock when iterating over vCPUs in suspend notifier

From: Paul Durrant
Date: Tue Jan 21 2025 - 11:01:49 EST


On 18/01/2025 00:55, Sean Christopherson wrote:
When queueing vCPU PVCLOCK updates in response to SUSPEND or HIBERNATE,
don't take kvm->lock as doing so can trigger a largely theoretical
deadlock, it is perfectly safe to iterate over the xarray of vCPUs without
holding kvm->lock, and kvm->lock doesn't protect kvm_set_guest_paused() in
any way (pv_time.active and pvclock_set_guest_stopped_request are
protected by vcpu->mutex, not kvm->lock).

Reported-by: syzbot+352e553a86e0d75f5120@xxxxxxxxxxxxxxxxxxxxxxxxx
Closes: https://lore.kernel.org/all/677c0f36.050a0220.3b3668.0014.GAE@xxxxxxxxxx
Fixes: 7d62874f69d7 ("kvm: x86: implement KVM PM-notifier")
Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx>

Reviewed-by: Paul Durrant <paul@xxxxxxx>