10.3.2.1.7 Comparison of Reader-Writer Locking and RCU Code

In the best case, the conversion from reader-writer locking to RCU is quite simple, as shown in Figures [*], [*], and [*], all taken from Wikipedia [MPA+06].

Figure: Converting Reader-Writer Locking to RCU: Data
\begin{figure*}{ \scriptsize\centering
\begin{verbatim}1 struct el { 1 struct...
...istmutex);
9 LIST_HEAD(head); 9 LIST_HEAD(head);\end{verbatim}
}\end{figure*}

Figure: Converting Reader-Writer Locking to RCU: Search
\begin{figure*}{ \scriptsize\centering
\begin{verbatim}1 int search(long key,...
...ead_unlock();
14 return 0; 14 return 0;
15 } 15 }\end{verbatim}
}\end{figure*}

Figure: Converting Reader-Writer Locking to RCU: Deletion
\begin{figure*}{ \scriptsize\centering
\begin{verbatim}1 int delete(long key)...
...(&listmutex);
15 return 0; 16 return 0;
16 } 17 }\end{verbatim}
}\end{figure*}

More-elaborate cases of replacing reader-writer locking with RCU are beyond the scope of this document.



Paul E. McKenney 2011-12-16