Thread (17 messages) flat view 17 messages, 7 authors, 2017-10-07

Re: [PATCH tip/core/rcu 1/3] membarrier: Provide register expedited private command

From: Andrea Parri <parri.andrea@gmail.com>
Date: 2017-10-07 15:10:18
Also in: linux-arch, lkml

On Fri, Oct 06, 2017 at 10:32:19AM +0200, Peter Zijlstra wrote:
quoted
AFAIU the scheduler rq->lock is held while preemption is disabled.
synchronize_sched() is used here to ensure that all pre-existing
preempt-off critical sections have completed.

So saying that we use synchronize_sched() to synchronize with rq->lock
would be stretching the truth a bit. It's actually only true because the
scheduler holding the rq->lock is surrounded by a preempt-off
critical section.
No, rq->lock is sufficient, note that rq->lock is a raw_spinlock_t which
implies !preempt. Yes, we also surround the rq->lock usage with a
slightly larger preempt_disable() section but that's not in fact
required for this.
That's what it is, according to the current sources: we seemed to agree that
a preempt-off critical section is what we rely on here and that the start of
this critical section is not marked by that raw_spin_lock.

  Andrea
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help