[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 2/2] xen/rwlock: add check_lock() handling to rwlocks
On 03.11.2020 11:17, Jürgen Groß wrote: > On 03.11.20 11:04, Jan Beulich wrote: >> This said - wouldn't what you suggest be wrong if we had >> actual preemption in the hypervisor? Preemption hitting >> between e.g. these two lines >> >> cnts = atomic_read(&lock->cnts); >> if ( likely(_can_read_lock(cnts)) ) >> >> would not yield the intended result, would it? (It wouldn't >> affect correctness afaics, because the caller has to be >> prepared anyway that the attempt fails, but the amount of >> effectively false negatives would grow, as would the number >> of cases where the slower path is taken for no reason.) > > And this in turn would hit _spin_trylock() the same way. True. > IMO we should harmonize all the trylock variants in this regard: > either they have an as small as possible preemption disabled > section or they have the initial test for success being possible > at all in this section. > >> Question therefore is how much we care about keeping code >> ready for "real" preemption, when we have ample other places >> that would need changing first, before such could be enabled. > > Yes. And depending on the answer the route to go (wide or narrow > no-preemption section) wither the rwlock or the spinlock trylock > variants should be adapted. Well, personally I'd slightly prefer the adjustment as you did suggest, but Julien's subsequent reply points towards the other direction. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |