Figure
shows the functions that demark RCU read-side critical sections.
Lines 1-6 show __rcu_read_lock(), which begins an ``rcu''
read-side critical section.
line 3 disables preemption,
line 4 is a sparse marker noting the beginning of an RCU read-side critical
section,
and
line 5 updates lockdep state.
Lines 8-13 show __rcu_read_unlock(), which is the inverse of
__rcu_read_lock().
Lines 15-20 show __rcu_read_lock_bh() and lines 22-27 show
__rcu_read_unlock_bh(), which are analogous to the previous
two functions, but disable and enable bottom-half processing rather
than preemption.
Quick Quiz D.27:
I thought that RCU read-side processing was supposed to
be fast!
The functions shown in
Figure
have so much junk in them that they just have to be slow!
What gives here?
End Quick Quiz