Commit acb6258a authored by Jiunn Chang's avatar Jiunn Chang Committed by Jonathan Corbet

doc: RCU callback locks need only _bh, not necessarily _irq

The UP.rst file calls for locks acquired within RCU callback functions
to use _irq variants (spin_lock_irqsave() or similar), which does work,
but can be overkill.  This commit therefore instead calls for _bh variants
(spin_lock_bh() or similar), while noting that _irq does work.
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
Signed-off-by: default avatarJiunn Chang <c0d1n61at3@gmail.com>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 62ee81b5
...@@ -113,12 +113,13 @@ Answer to Quick Quiz #1: ...@@ -113,12 +113,13 @@ Answer to Quick Quiz #1:
Answer to Quick Quiz #2: Answer to Quick Quiz #2:
What locking restriction must RCU callbacks respect? What locking restriction must RCU callbacks respect?
Any lock that is acquired within an RCU callback must be Any lock that is acquired within an RCU callback must be acquired
acquired elsewhere using an _irq variant of the spinlock elsewhere using an _bh variant of the spinlock primitive.
primitive. For example, if "mylock" is acquired by an For example, if "mylock" is acquired by an RCU callback, then
RCU callback, then a process-context acquisition of this a process-context acquisition of this lock must use something
lock must use something like spin_lock_irqsave() to like spin_lock_bh() to acquire the lock. Please note that
acquire the lock. it is also OK to use _irq variants of spinlocks, for example,
spin_lock_irqsave().
If the process-context code were to simply use spin_lock(), If the process-context code were to simply use spin_lock(),
then, since RCU callbacks can be invoked from softirq context, then, since RCU callbacks can be invoked from softirq context,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment