Re: [PATCH v2 1/2] locking: Implement an algorithm choice for Wound-Wait mutexes

From: Andrea Parri
Date: Thu Jun 14 2018 - 07:49:59 EST


[...]

> >>+ /*
> >>+ * wake_up_process() paired with set_current_state() inserts
> >>+ * sufficient barriers to make sure @owner either sees it's
> >>+ * wounded or has a wakeup pending to re-read the wounded
> >>+ * state.
> >IIUC, "sufficient barriers" = full memory barriers (here). (You may
> >want to be more specific.)
>
> Thanks for reviewing!
> OK. What about if someone relaxes that in the future?

This is actually one of my main concerns ;-) as, IIUC, those barriers are
not only sufficient but also necessary: anything "less than a full barrier"
(in either wake_up_process() or set_current_state()) would _not_ guarantee
the "condition" above unless I'm misunderstanding it.

But am I misunderstanding it? Which barriers/guarantee do you _need_ from
the above mentioned pairing? (hence my comment...)

Andrea