[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 03/12] evtchn: don't call Xen consumer callback with per-channel lock held
On 29.09.2020 12:16, Julien Grall wrote: > On 28/09/2020 11:57, Jan Beulich wrote: >> While there don't look to be any problems with this right now, the lock >> order implications from holding the lock can be very difficult to follow >> (and may be easy to violate unknowingly). > > I think this is a good idea given that we are disabling interrupts now. > Unfortunately... > >> The present callbacks don't >> (and no such callback should) have any need for the lock to be held. > > ... I think the lock is necessary for the vm_event subsystem to avoid > racing with the vm_event_disable(). > > The notification callback will use a data structure that is freed by > vm_event_disable(). There is a lock, but it is part of the data structure... Oh, indeed - somehow I didn't spot this despite looking there. > One solution would be to have the lock outside of the data structure. I don't think that's viable - the structures are intentionally separated from struct vcpu. I see two other options: Either free the structure via call_rcu(), or maintain a count of in-progress calls, and wait for it to drop to zero when closing the port. VM event maintainers / reviewers - what are your thoughts here? Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |