Hi Randy, > > +MEMBARRIER_CMD_{PRIVATE,GLOBAL}_EXPEDITED - Architecture requirements > > +===================================================================== > > + > > +Memory barriers before updating rq->curr > > +---------------------------------------- > > + > > +The command requires each architecture to have a full memory barrier after > > +coming from user-space, before updating rq->curr. This barrier is implied > > +by the sequence rq_lock(); smp_mb__after_spinlock() in __schedule(). The > > +barrier matches a full barrier in the proximity of the membarrier system > > +call exit, cf. membarrier_{private,global}_expedited(). > > + > > What does "The command" refer to above and below, please? The term was meant to refer to any of MEMBARRIER_CMD_PRIVATE_EXPEDITED and MEMBARRIER_CMD_GLOBAL_EXPEDITED (from the section title); FWIW, this seems to align with the terminology adopted in MEMBARRIER(2) for example. Mmh, unless I get a better idea, I'll expand those occurrences to: "The commands MEMBARRIER_CMD_PRIVATE_EXPEDITED and MEMBARRIER_CMD_GLOBAL_EXPEDIDED require [...]" Andrea