Messages in this thread | | | Subject | Re: [RFC][PATCH] Fix a race between rwsem and the scheduler | From | Benjamin Herrenschmidt <> | Date | Wed, 31 Aug 2016 07:25:01 +1000 |
| |
On Tue, 2016-08-30 at 15:04 +0200, Oleg Nesterov wrote: > > Confused... how this connects to UNLOCK+LOCK on rq->lock? A LOAD can > leak into the critical section. > > But context switch should imply mb() we can rely on?
Between setting of ->on_rq and returning to the task so it can change its state back to [UN]INTERRUPTIBLE, there will be at least one write barrier (spin unlock of the rq), possibly even a full barrier (context switch). The write barrier is enough so I didn't dig to make sure we always context switch in the scenario we're looking at but I think we do.
Cheers, Ben.
| |