[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <747f1eac-c620-d7cb-86a1-a2c575cd2ef9@rbox.co>
Date: Fri, 24 Feb 2023 19:18:02 +0100
From: Michal Luczaj <mhal@...x.co>
To: Paolo Bonzini <pbonzini@...hat.com>, linux-kernel@...r.kernel.org,
kvm@...r.kernel.org
Cc: seanjc@...gle.com, David Woodhouse <dwmw@...zon.co.uk>
Subject: Re: [PATCH] KVM: x86: fix deadlock for KVM_XEN_EVTCHN_RESET
On 28/12/2022 12:04, Paolo Bonzini wrote:
> While KVM_XEN_EVTCHN_RESET is usually called with no vCPUs running,
> if that happened it could cause a deadlock. This is due to
> kvm_xen_eventfd_reset() doing a synchronize_srcu() inside
> a kvm->lock critical section.
>
> [...]
>
> + /*
> + * Because synchronize_srcu() cannot be called inside the
> + * critical section, first collect all the evtchnfd objects
> + * in an array as they are removed from evtchn_ports.
> + */
With the recent changes regarding the locking order (locking.rst:
"synchronize_srcu(&kvm->srcu) is called inside critical sections for kvm->lock,
vcpu->mutex and kvm->slots_lock"), is this comment still valid?
Or is there a rule that forbids synchronize_srcu() under the newly introduced
kvm->arch.xen.xen_lock?
thanks,
Michal
Powered by blists - more mailing lists