rcu: Clarify and correct the rcu_preempt_qs() header comment
The rcu_preempt_qs() function only applies to the CPU, not the task. A task really is allowed to invoke this function while in an RCU-preempt read-side critical section, but only if it has first added itself to some leaf rcu_node structure's ->blkd_tasks list. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
Родитель
3b57a3994f
Коммит
c7037ff524
|
@ -294,13 +294,17 @@ static void rcu_preempt_ctxt_queue(struct rcu_node *rnp, struct rcu_data *rdp)
|
|||
}
|
||||
|
||||
/*
|
||||
* Record a preemptible-RCU quiescent state for the specified CPU. Note
|
||||
* that this just means that the task currently running on the CPU is
|
||||
* not in a quiescent state. There might be any number of tasks blocked
|
||||
* while in an RCU read-side critical section.
|
||||
* Record a preemptible-RCU quiescent state for the specified CPU.
|
||||
* Note that this does not necessarily mean that the task currently running
|
||||
* on the CPU is in a quiescent state: Instead, it means that the current
|
||||
* grace period need not wait on any RCU read-side critical section that
|
||||
* starts later on this CPU. It also means that if the current task is
|
||||
* in an RCU read-side critical section, it has already added itself to
|
||||
* some leaf rcu_node structure's ->blkd_tasks list. In addition to the
|
||||
* current task, there might be any number of other tasks blocked while
|
||||
* in an RCU read-side critical section.
|
||||
*
|
||||
* As with the other rcu_*_qs() functions, callers to this function
|
||||
* must disable preemption.
|
||||
* Callers to this function must disable preemption.
|
||||
*/
|
||||
static void rcu_preempt_qs(void)
|
||||
{
|
||||
|
|
Загрузка…
Ссылка в новой задаче