# LaTeX2HTML 2008 (1.71)
# Associate images original text with physical files.


$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1437#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="301" HEIGHT="326" BORDER="0"
 SRC="|."$dir".q|img254.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void rcu_enter_nohz(void)
2 {
...
...
23 local_irq_restore(flags);
24 smp_mb();
25 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1629#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="326" HEIGHT="433" BORDER="0"
 SRC="|."$dir".q|img306.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void rcu_enter_nohz(void)
2 {
...
...
25 local_irq_restore(flags);
26 smp_mb();
27 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}center{{small{picture{(170,170)(0,0){par{%Addresses{par{put(0,0){makeboxt{}}put(100,150){{framebox{(}{80,10){{tt{}}picture{center{{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="312" HEIGHT="98" BORDER="0"
 SRC="|."$dir".q|img191.png"
 ALT="\begin{figure}\begin{center}
\small
\begin{picture}(170,170)(0,0)
\par
% Address...
...
\put(100,150){\framebox{(}80,10){\tt }}
\end{picture}\end{center}
\end{figure}">|; 

$key = q/{figure}{{tt{{scriptsize{preform{<verbatim_mark>verbatim1193#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="315" HEIGHT="15" BORDER="0"
 SRC="|."$dir".q|img207.png"
 ALT="\begin{figure}{\tt\scriptsize
\begin{verbatim}1 struct el *insert(long key, l...
...}
23 p = p-&gt;next;
24 };
25 return (NULL);
26 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim929#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="341" HEIGHT="74" BORDER="0"
 SRC="|."$dir".q|img157.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void synchronize_rcu(void)
2 {...
... 16 spin_unlock(&amp;rcu_gp_lock);
17 smp_mb();
18 }\end{verbatim}
}\end{figure}">|; 

$key = q/{picture}(6,185)(0,0){rotatebox{90}{IncoherentInstructionCacheslashPipeline?}{{picture};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="2" HEIGHT="12" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img205.png"
 ALT="\begin{picture}(6,185)(0,0)
\rotatebox{90}{Incoherent Instruction Cache/Pipeline?}
\end{picture}">|; 

$key = q/resizebox{6in}{!}{includegraphics{appendixslashrcuimplslashRCUTreeQSScan}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="322" HEIGHT="161" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img252.png"
 ALT="\resizebox{6in}{!}{\includegraphics{appendix/rcuimpl/RCUTreeQSScan}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashRCUpreemptListsCompare}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="310" HEIGHT="225" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img270.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/RCUpreemptListsCompare}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1481#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="172" HEIGHT="351" BORDER="0"
 SRC="|."$dir".q|img276.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void rcu_check_mb(int cp...
...per_cpu(rcu_mb_flag, cpu) = rcu_mb_done;
6 }
7 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim505#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="298" HEIGHT="41" BORDER="0"
 SRC="|."$dir".q|img31.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 long counter = 0;
2
3 void i...
...ng read_count(void)
9 {
10 return counter;
11 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashwhymbslashcacheSBfIQ}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="260" HEIGHT="259" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img196.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/whymb/cacheSBfIQ}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim650#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="316" HEIGHT="283" BORDER="0"
 SRC="|."$dir".q|img72.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct hash_table
2 {
3 long ...
...4 spin_unlock(&amp;bp-&gt;hash_lock);
35 return 0;
36 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim517#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="312" HEIGHT="480" BORDER="0"
 SRC="|."$dir".q|img47.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 int add_count(unsigned long del...
...61 spin_unlock(&amp;gblcnt_mutex);
62 return 1;
63 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure*}{{scriptsize{{centering{preform{<verbatim_mark>verbatim783#preform{}{{{figure*};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="323" HEIGHT="281" BORDER="0"
 SRC="|."$dir".q|img130.png"
 ALT="\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*}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim513#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="312" HEIGHT="530" BORDER="0"
 SRC="|."$dir".q|img43.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void globalize_count(voi...
...idx] = NULL;
37 spin_unlock(&amp;gblcnt_mutex);
38 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{<comment_mark>1509preform{<verbatim_mark>verbatim1537#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="257" HEIGHT="260" BORDER="0"
 SRC="|."$dir".q|img299.png"
 ALT="\begin{figure}{ % \scriptsize
\begin{verbatim}1 proctype qrcu_reader(byte me)...
...rogress[me] = 2;
19 atomic { ctr[myidx]- }
20 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1483#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="331" HEIGHT="391" BORDER="0"
 SRC="|."$dir".q|img278.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static int rcu_try_flip_idle(vo...
...flip_flag, cpu) = rcu_flipped;
15 return 1;
16 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{2.7in}{!}{includegraphics{deferslashRCUReplacement}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="228" HEIGHT="189" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img124.png"
 ALT="\resizebox{2.7in}{!}{\includegraphics{defer/RCUReplacement}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{introslashFourTaskOrder}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="316" HEIGHT="283" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img6.png"
 ALT="\resizebox{3in}{!}{\includegraphics{intro/FourTaskOrder}}">|; 

$key = q/resizebox{6in}{!}{includegraphics{appendixslashrcuimplslashRCUTreeInit}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="349" HEIGHT="593" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img236.png"
 ALT="\resizebox{6in}{!}{\includegraphics{appendix/rcuimpl/RCUTreeInit}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim787#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="496" HEIGHT="187" BORDER="0"
 SRC="|."$dir".q|img134.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 int delete(int key)
2 {
3 str...
...&gt;lock);
23 rcu_read_unlock();
24 return 0;
25 }\end{verbatim}
}\end{figure}">|; 

$key = q/includegraphics{advsyncslashSpeculativeLoadBarrier};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="553" HEIGHT="196" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img176.png"
 ALT="\includegraphics{advsync/SpeculativeLoadBarrier}">|; 

$key = q/f=100;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="333" HEIGHT="41" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img92.png"
 ALT="$f=100$">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashwhymbslashcacheSB}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="175" HEIGHT="62" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img194.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/whymb/cacheSB}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{countslashGlobalInc}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="139" HEIGHT="135" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img35.png"
 ALT="\resizebox{3in}{!}{\includegraphics{count/GlobalInc}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1484#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="340" HEIGHT="161" BORDER="0"
 SRC="|."$dir".q|img279.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static int rcu_try_flip_waitack...
...rcupreempt_trace_try_flip_a2);
13 return 1;
14 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{<comment_mark>1508preform{<verbatim_mark>verbatim1536#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="350" HEIGHT="242" BORDER="0"
 SRC="|."$dir".q|img298.png"
 ALT="\begin{figure}{ % \scriptsize
\begin{verbatim}1  ...">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashRCUrt-MBnowaste}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="353" HEIGHT="556" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img286.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/RCUrt-MBnowaste}}">|; 

$key = q/{figure}{{centering{preform{<verbatim_mark>verbatim1021#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="289" HEIGHT="225" BORDER="0"
 SRC="|."$dir".q|img161.png"
 ALT="\begin{figure}{ \centering
\begin{verbatim}1 thread0(void)
2 {
3 A = 1;
4 ...
... continue;
20 smp_mb();
21 assert(A != 0);
22 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{CodeSamplesslashcountslashatomic}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="29" HEIGHT="32" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img33.png"
 ALT="\resizebox{3in}{!}{\includegraphics{CodeSamples/count/atomic}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1440#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="342" HEIGHT="556" BORDER="0"
 SRC="|."$dir".q|img257.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static int
2 dyntick_save_prog...
...et)
15 rdp-&gt;dynticks_fqs++;
16 return ret;
17 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1421#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="200" HEIGHT="340" BORDER="0"
 SRC="|."$dir".q|img235.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 int rcu_needs_cpu(int cpu)
2 {...
...ault:
25 break;
26 }
27 return NOTIFY_OK;
28 }\end{verbatim}
}\end{figure}">|; 

$key = q/{displaymath}frac{L_N}{NL_1}{displaymath};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="323" HEIGHT="238" BORDER="0"
 SRC="|."$dir".q|img27.png"
 ALT="\begin{displaymath}
\frac{L_N}{N L_1}
\end{displaymath}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1485#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="313" HEIGHT="85" BORDER="0"
 SRC="|."$dir".q|img280.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static int rcu_try_flip_waitzer...
...rcupreempt_trace_try_flip_z2);
18 return 1;
19 }\end{verbatim}
}\end{figure}">|; 

$key = q/{picture}(6,185)(0,0){rotatebox{90}{LoadsReorderedAfterLoads?}{{picture};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="307" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img198.png"
 ALT="\begin{picture}(6,185)(0,0)
\rotatebox{90}{Loads Reordered After Loads?}
\end{picture}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1226#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="402" HEIGHT="201" BORDER="0"
 SRC="|."$dir".q|img212.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}int init_srcu_struct(struct srcu_s...
...ng srcu_batches_completed(struct srcu_struct *sp);\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim918#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="228" HEIGHT="61" BORDER="0"
 SRC="|."$dir".q|img144.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void rcu_read_lock(void)...
...}
27 __get_thread_var(rcu_nesting) = n - 1;
28 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashTreeClassicRCU}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="275" HEIGHT="161" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img222.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/TreeClassicRCU}}">|; 

$key = q/includegraphics{advsyncslashWriteBarrierOrdering};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="346" HEIGHT="196" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img168.png"
 ALT="\includegraphics{advsync/WriteBarrierOrdering}">|; 

$key = q/resizebox{3in}{!}{includegraphics{deferslashGracePeriodGood}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="220" HEIGHT="25" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img121.png"
 ALT="\resizebox{3in}{!}{\includegraphics{defer/GracePeriodGood}}">|; 

$key = q/f=10;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img91.png"
 ALT="$f=10$">|; 

$key = q/includegraphics{SMPdesignslashLockGranularity};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="171" HEIGHT="113" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img67.png"
 ALT="\includegraphics{SMPdesign/LockGranularity}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim923#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="241" HEIGHT="61" BORDER="0"
 SRC="|."$dir".q|img151.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 DEFINE_SPINLOCK(rcu_gp_lock);
...
...);
4 DEFINE_PER_THREAD(long, rcu_reader_gp_snap);\end{verbatim}
}\end{figure}">|; 

$key = q/N+1;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="11" HEIGHT="14" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img327.png"
 ALT="$N+1$">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashGracePeriodGood}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="319" HEIGHT="199" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img269.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/GracePeriodGood}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1234#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="245" HEIGHT="241" BORDER="0"
 SRC="|."$dir".q|img219.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void srcu_read_unlock(struct sr...
...ocessor_id())-&gt;c[idx]-;
7 preempt_enable();
8 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashwhymbslashcacheSBf}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="285" HEIGHT="283" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img195.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/whymb/cacheSBf}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim926#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="41" HEIGHT="34" BORDER="0"
 SRC="|."$dir".q|img154.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void rcu_read_lock(void)...
... 38 spin_unlock(&amp;rcu_gp_lock);
39 smp_mb();
40 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim518#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="288" HEIGHT="97" BORDER="0"
 SRC="|."$dir".q|img48.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 unsigned long read_count(void)
...
... spin_unlock(&amp;gblcnt_mutex);
17 return sum;
18 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{SMPdesignslashlockdeq}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="312" HEIGHT="442" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img59.png"
 ALT="\resizebox{3in}{!}{\includegraphics{SMPdesign/lockdeq}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{SMPdesignslashallocatorcache}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="315" HEIGHT="274" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img97.png"
 ALT="\resizebox{3in}{!}{\includegraphics{SMPdesign/allocatorcache}}">|; 

$key = q/includegraphics{advsyncslashSpeculativeLoad};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="553" HEIGHT="208" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img175.png"
 ALT="\includegraphics{advsync/SpeculativeLoad}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim920#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="241" HEIGHT="61" BORDER="0"
 SRC="|."$dir".q|img147.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 DEFINE_SPINLOCK(rcu_gp_lock);
...
...nesting);
5 DEFINE_PER_THREAD(int, rcu_read_idx);\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{SMPdesignslashCPUvsEnet}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="181" HEIGHT="86" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img68.png"
 ALT="\resizebox{3in}{!}{\includegraphics{SMPdesign/CPUvsEnet}}">|; 

$key = q/{displaymath}T=frac{1}{mu-nlambda_0}{displaymath};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="9" HEIGHT="15" BORDER="0"
 SRC="|."$dir".q|img82.png"
 ALT="\begin{displaymath}
T = \frac{1}{\mu - n \lambda_0}
\end{displaymath}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim331#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="250" BORDER="0"
 SRC="|."$dir".q|img21.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 int x = 0;
2
3 void *mythrea...
...ent process sees x=%d\n'', x);
24 return 0;
25 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim655#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="314" BORDER="0"
 SRC="|."$dir".q|img101.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void memblock_free(struct membl...
...tex);
15 }
16 pcpp-&gt;pool[++pcpp-&gt;cur] = p;
17 }\end{verbatim}
}\end{figure}">|; 

$key = q/{picture}(6,185)(0,0){rotatebox{90}{AtomicInstructionsReorderedWithLoads?}{{picture};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="3" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img202.png"
 ALT="\begin{picture}(6,185)(0,0)
\rotatebox{90}{Atomic Instructions Reordered With Loads?}
\end{picture}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim648#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="336" HEIGHT="620" BORDER="0"
 SRC="|."$dir".q|img69.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct hash_table
2 {
3 long ...
...0 }
21 cur = cur-&gt;next;
22 }
23 return 0;
24 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{centering{preform{<verbatim_mark>verbatim1022#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="311" HEIGHT="887" BORDER="0"
 SRC="|."$dir".q|img162.png"
 ALT="\begin{figure}{ \centering
\begin{verbatim}1 state.variable = mycpu;
2 lastt...
...();
6 if (lasttb - firsttb &gt; 1000)
7 break;
8 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1521#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="346" HEIGHT="238" BORDER="0"
 SRC="|."$dir".q|img288.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1  ...">|; 

$key = q/resizebox{3in}{!}{includegraphics{cartoonsslashpipeline}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="214" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img9.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cartoons/pipeline}}">|; 

$key = q/{displaymath}epsilon=frac{T_rR_i}{2}{displaymath};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="258" HEIGHT="429" BORDER="0"
 SRC="|."$dir".q|img322.png"
 ALT="\begin{displaymath}
\epsilon = \frac{T_r R_i}{2}
\end{displaymath}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim333#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="200" HEIGHT="123" BORDER="0"
 SRC="|."$dir".q|img22.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 pthread_mutex_t lock_a = PTHREA...
...ock'');
46 exit(-1);
47 }
48 return NULL;
49 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{cartoonsslashRCUCallbacks}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="253" HEIGHT="327" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img211.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cartoons/RCUCallbacks}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1229#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="253" HEIGHT="327" BORDER="0"
 SRC="|."$dir".q|img213.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 int readside(void)
2 {
3 int ...
...ize_srcu(&amp;ss);
22 cleanup_srcu_struct(&amp;ss);
23 }\end{verbatim}
}\end{figure}">|; 

$key = q/y=1;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="22" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img34.png"
 ALT="$y=1$">|; 

$key = q/{figure*}{{scriptsize{preform{<verbatim_mark>verbatim1525#preform{}{{{figure*};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="291" HEIGHT="300" BORDER="0"
 SRC="|."$dir".q|img290.png"
 ALT="\begin{figure*}{ \scriptsize
\begin{verbatim}Starting :init: with pid 0
1: pr...
... (state 24) &lt;valid end state&gt;
3 processes created\end{verbatim}
}\end{figure*}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim514#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="288" HEIGHT="86" BORDER="0"
 SRC="|."$dir".q|img44.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 unsigned long __thread counter ...
...NLOCK(gblcnt_mutex);
8  ...">|; 

$key = q/{displaymath}e=frac{1slashlambda_0}{T+1slashlambda_0}{displaymath};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="15" HEIGHT="30" BORDER="0"
 SRC="|."$dir".q|img83.png"
 ALT="\begin{displaymath}
e = \frac{1 / \lambda_0}{T + 1 / \lambda_0}
\end{displaymath}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim913#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="312" HEIGHT="340" BORDER="0"
 SRC="|."$dir".q|img139.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 atomic_t rcu_refcnt;
2
3 stat...
...{
19 poll(NULL, 0, 10);
20 }
21 smp_mb();
22 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{centering{preform{<verbatim_mark>verbatim2904#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="46" HEIGHT="34" BORDER="0"
 SRC="|."$dir".q|img317.png"
 ALT="\begin{figure}{ \centering
\begin{verbatim}1 spin_lock(&amp;mylock);
2 p = searc...
...&amp;mylock);
8 synchronize_rcu();
9 kfree(p);
10 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1448#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="628" HEIGHT="344" BORDER="0"
 SRC="|."$dir".q|img266.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void print_cpu_stall(str...
...(&amp;rnp-&gt;lock, flags);
17 set_need_resched();
18 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1449#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="353" HEIGHT="784" BORDER="0"
 SRC="|."$dir".q|img267.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void print_other_cpu_sta...
..._start));
34 force_quiescent_state(rsp, 0);
35 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{deferslashrwlockRCUupdate}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="308" HEIGHT="789" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img128.png"
 ALT="\resizebox{3in}{!}{\includegraphics{defer/rwlockRCUupdate}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1435#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="347" HEIGHT="593" BORDER="0"
 SRC="|."$dir".q|img251.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void
2 cpu_quiet_msk(un...
...cessor_id()]);
26 rcu_start_gp(rsp, flags);
27 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1631#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="300" HEIGHT="23" BORDER="0"
 SRC="|."$dir".q|img308.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void rcu_irq_enter(void)
2 {
...
...cu_bh_data).nxtlist)
25 set_need_resched();
26 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashGracePeriodBad}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="299" HEIGHT="84" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img268.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/GracePeriodBad}}">|; 

$key = q/lambda_0;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="13" HEIGHT="15" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img79.png"
 ALT="$\lambda_0$">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1420#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="683" HEIGHT="547" BORDER="0"
 SRC="|."$dir".q|img234.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void
2 __rcu_process_ca...
... &amp;__get_cpu_var(rcu_bh_data));
29 smp_mb();
30 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1480#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="260" BORDER="0"
 SRC="|."$dir".q|img275.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void rcu_check_callbacks(int cp...
...2 spin_unlock_irqrestore(&amp;rdp-&gt;lock, flags);
13 }\end{verbatim}
}\end{figure}">|; 

$key = q/{displaymath}e=frac{f-n}{f-(n-1)}{displaymath};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="12" HEIGHT="16" BORDER="0"
 SRC="|."$dir".q|img88.png"
 ALT="\begin{displaymath}
e = \frac{f - n}{f - (n - 1)}
\end{displaymath}">|; 

$key = q/includegraphics{advsyncslashMemoryBarrierPairing};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="344" HEIGHT="109" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img167.png"
 ALT="\includegraphics{advsync/MemoryBarrierPairing}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim510#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="216" HEIGHT="200" BORDER="0"
 SRC="|."$dir".q|img40.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 unsigned long __thread counter ...
...ADS] = { NULL };
7 DEFINE_SPINLOCK(gblcnt_mutex);\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1423#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="341" HEIGHT="377" BORDER="0"
 SRC="|."$dir".q|img238.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void __init rcu_init_one...
... - 1];
32 }
33 rnp-&gt;level = i;
34 }
35 }
36 }\end{verbatim}
}\end{figure}">|; 

$key = q/T_r;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="315" HEIGHT="148" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img324.png"
 ALT="$T_r$">|; 

$key = q/resizebox{3in}{!}{includegraphics{cartoonsslashbarrier}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="345" HEIGHT="281" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img12.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cartoons/barrier}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim911#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="322" HEIGHT="283" BORDER="0"
 SRC="|."$dir".q|img137.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void rcu_read_lock(void)...
...rcu_gp_lock);
14 spin_unlock(&amp;rcu_gp_lock);
15 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{countslashcount_lim}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="222" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img41.png"
 ALT="\resizebox{3in}{!}{\includegraphics{count/count_lim}}">|; 

$key = q/includegraphics{advsyncslashMemoryArchitecture};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="553" HEIGHT="231" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img178.png"
 ALT="\includegraphics{advsync/MemoryArchitecture}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim566#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="143" BORDER="0"
 SRC="|."$dir".q|img65.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct element *pdeq_dequeue_l(...
...eright(d-&gt;lidx);
48 spin_unlock(&amp;d-&gt;rlock);
49 }\end{verbatim}
}\end{figure}">|; 

$key = q/T;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="36" HEIGHT="32" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img84.png"
 ALT="$T$">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim736#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="90" BORDER="0"
 SRC="|."$dir".q|img120.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct foo {
2 struct hlist_no...
...p-&gt;c = 3;
15 hlist_add_head_rcu(&amp;p-&gt;list, &amp;head);\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1434#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="308" BORDER="0"
 SRC="|."$dir".q|img250.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void
2 cpu_quiet(int cp...
... cpu_quiet_msk(mask, rsp, rnp, flags);
25 }
26 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{deferslashRCUDeletion}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="309" HEIGHT="71" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img123.png"
 ALT="\resizebox{3in}{!}{\includegraphics{defer/RCUDeletion}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim519#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="370" HEIGHT="149" BORDER="0"
 SRC="|."$dir".q|img49.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void globalize_count(voi...
...idx] = NULL;
72 spin_unlock(&amp;gblcnt_mutex);
73 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1482#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="345" HEIGHT="401" BORDER="0"
 SRC="|."$dir".q|img277.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void rcu_try_flip(void)
...
...ck_irqrestore(&amp;rcu_ctrlblk.fliplock, flags);
28 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{countslashPerThreadInc}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="316" HEIGHT="295" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img37.png"
 ALT="\resizebox{3in}{!}{\includegraphics{count/PerThreadInc}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{deferslashrefRCUperfwtPREEMPT}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="407" HEIGHT="112" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img133.png"
 ALT="\resizebox{3in}{!}{\includegraphics{defer/refRCUperfwtPREEMPT}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim521#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="334" HEIGHT="225" BORDER="0"
 SRC="|."$dir".q|img52.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void globalize_count(voi...
...r = globalcount;
62 globalcount -= counter;
63 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1425#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="611" HEIGHT="344" BORDER="0"
 SRC="|."$dir".q|img240.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void
2 rcu_init_percpu_...
...dp, lastcomp);
42 local_irq_restore(flags);
43 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{introslashFourTaskCategories}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="316" HEIGHT="291" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img5.png"
 ALT="\resizebox{3in}{!}{\includegraphics{intro/FourTaskCategories}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim708#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="224" HEIGHT="238" BORDER="0"
 SRC="|."$dir".q|img114.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct file *fget(unsigned int ...
...uhead);
40 kmem_cache_free(filp_cachep, f);
41 }\end{verbatim}
}\end{figure}">|; 

$key = q/rightarrow;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="164" HEIGHT="414" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img165.png"
 ALT="$\rightarrow$">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1446#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="346" HEIGHT="161" BORDER="0"
 SRC="|."$dir".q|img264.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void
2 record_gp_stall_...
... =
6 jiffies + RCU_SECONDS_TILL_STALL_CHECK;
7 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure*}{{scriptsize{{centering{preform{<verbatim_mark>verbatim784#preform{}{{{figure*};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="322" HEIGHT="283" BORDER="0"
 SRC="|."$dir".q|img131.png"
 ALT="\begin{figure*}{ \scriptsize\centering
\begin{verbatim}1 int delete(long key)...
...(&amp;listmutex);
15 return 0; 16 return 0;
16 } 17 }\end{verbatim}
}\end{figure*}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim671#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="319" HEIGHT="305" BORDER="0"
 SRC="|."$dir".q|img106.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 spin_lock(&amp;lock2);
2 layer_2_p...
...unlock(&amp;lock2);
7 spin_unlock(&amp;nextlayer-&gt;lock1);\end{verbatim}
}\end{figure}">|; 

$key = q/muslashlambda_0;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="323" HEIGHT="40" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img86.png"
 ALT="$\mu / \lambda_0$">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim515#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="307" HEIGHT="349" BORDER="0"
 SRC="|."$dir".q|img45.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void balance_count(void)...
...r = globalcount;
11 globalcount -= counter;
12 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1427#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="335" HEIGHT="454" BORDER="0"
 SRC="|."$dir".q|img242.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void
2 __rcu_offline_cp...
...;
46 __rcu_offline_cpu(cpu, &amp;rcu_bh_state);
47 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim338#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="349" HEIGHT="313" BORDER="0"
 SRC="|."$dir".q|img25.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 pthread_rwlock_t rwl = PTHREAD_...
...9 readcounts[me] = loopcnt;
40 return NULL;
41 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim509#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="222" BORDER="0"
 SRC="|."$dir".q|img39.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 long __thread counter = 0;
2 l...
...[idx] = NULL;
41 spin_unlock(&amp;final_mutex);
42 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{SMPdesignslashlockdeqhash}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="286" HEIGHT="276" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img61.png"
 ALT="\resizebox{3in}{!}{\includegraphics{SMPdesign/lockdeqhash}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{cartoonsslashManyHappy}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="294" HEIGHT="301" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img73.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cartoons/ManyHappy}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{SMPdesignslashmipsperbuck}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="748" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img2.png"
 ALT="\resizebox{3in}{!}{\includegraphics{SMPdesign/mipsperbuck}}">|; 

$key = q/O(logN);MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="335" HEIGHT="327" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img312.png"
 ALT="$O(log N)$">|; 

$key = q/includegraphics{advsyncslashReadBarrierSupplied1};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="608" HEIGHT="277" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img173.png"
 ALT="\includegraphics{advsync/ReadBarrierSupplied1}">|; 

$key = q/1slashlambda_0;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img80.png"
 ALT="$1 / \lambda_0$">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim916#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="287" HEIGHT="238" BORDER="0"
 SRC="|."$dir".q|img142.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void synchronize_rcu(void)
2 {...
... 19 spin_unlock(&amp;rcu_gp_lock);
20 smp_mb();
21 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashRCUpreemptStates}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="338" HEIGHT="202" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img273.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/RCUpreemptStates}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1447#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="332" HEIGHT="504" BORDER="0"
 SRC="|."$dir".q|img265.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void
2 check_cpu_stall(...
...LAY) {
14 print_other_cpu_stall(rsp);
15 }
16 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashBigTreeClassicRCUBHdyntick}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="344" HEIGHT="98" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img227.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/BigTreeClassicRCUBHdyntick}}">|; 

$key = q/includegraphics{advsyncslashAbstractMemoryAccessModel};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="345" HEIGHT="230" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img164.png"
 ALT="\includegraphics{advsync/AbstractMemoryAccessModel}">|; 

$key = q/resizebox{3in}{!}{includegraphics{cartoonsslashatomic}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="346" HEIGHT="367" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img11.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cartoons/atomic}}">|; 

$key = q/mu;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="294" HEIGHT="453" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img76.png"
 ALT="$\mu$">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1488#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="342" HEIGHT="174" BORDER="0"
 SRC="|."$dir".q|img283.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void __rcu_read_lock(void)
2 {...
...) = idx;
18 local_irq_restore(flags);
19 }
20 }\end{verbatim}
}\end{figure}">|; 

$key = q/epsilon;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="248" HEIGHT="167" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img323.png"
 ALT="$\epsilon$">|; 

$key = q/includegraphics{advsyncslashReadBarrierSupplied};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="606" HEIGHT="219" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img172.png"
 ALT="\includegraphics{advsync/ReadBarrierSupplied}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim919#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="253" HEIGHT="352" BORDER="0"
 SRC="|."$dir".q|img145.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void flip_counter_and_wa...
... 24 spin_unlock(&amp;rcu_gp_lock);
25 smp_mb();
26 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{introslashGenerality}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="365" HEIGHT="659" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img4.png"
 ALT="\resizebox{3in}{!}{\includegraphics{intro/Generality}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim506#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="20" HEIGHT="18" BORDER="0"
 SRC="|."$dir".q|img32.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 atomic_t counter = ATOMIC_INIT(...
...void)
9 {
10 return atomic_read(&amp;counter);
11 }\end{verbatim}
}\end{figure}">|; 

$key = q/{picture}(6,185)(0,0){rotatebox{90}{LoadsReorderedAfterStores?}{{picture};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="307" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img199.png"
 ALT="\begin{picture}(6,185)(0,0)
\rotatebox{90}{Loads Reordered After Stores?}
\end{picture}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashTreeMapping}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="330" HEIGHT="98" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img223.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/TreeMapping}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1445#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="293" HEIGHT="148" BORDER="0"
 SRC="|."$dir".q|img263.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void
2 force_quiescent_...
...pin_unlock_irqrestore(&amp;rsp-&gt;fqslock, flags);
62 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{SMPdesignslashsmpalloc}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="316" HEIGHT="188" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img102.png"
 ALT="\resizebox{3in}{!}{\includegraphics{SMPdesign/smpalloc}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1630#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="300" HEIGHT="161" BORDER="0"
 SRC="|."$dir".q|img307.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void rcu_nmi_enter(void)
2 {
...
...ATELIMIT(rdtp-&gt;dynticks_nmi &amp; 0x1, &amp;rcu_rs);
24 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim334#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="169" HEIGHT="187" BORDER="0"
 SRC="|."$dir".q|img23.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 printf(''Creating two threads u...
...
17 perror(''pthread_join'');
18 exit(-1);
19 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim706#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="195" HEIGHT="340" BORDER="0"
 SRC="|."$dir".q|img112.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct kref {
2 atomic_t refco...
...ase(kref);
25 return 1;
26 }
27 return 0;
28 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1418#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="342" HEIGHT="804" BORDER="0"
 SRC="|."$dir".q|img232.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void
2 __call_rcu(struc...
...{
46 __call_rcu(head, func, &amp;rcu_bh_state);
47 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1539#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="330" HEIGHT="289" BORDER="0"
 SRC="|."$dir".q|img301.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 proctype qrcu_updater(byte me)
...
...ert(sum == 0);
54 break
55 od
56 }
57 od
58 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure*}{{scriptsize{{centering{preform{<verbatim_mark>verbatim782#preform{}{{{figure*};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="322" HEIGHT="281" BORDER="0"
 SRC="|."$dir".q|img129.png"
 ALT="\begin{figure*}{ \scriptsize\centering
\begin{verbatim}1 struct el { 1 struct...
...istmutex);
9 LIST_HEAD(head); 9 LIST_HEAD(head);\end{verbatim}
}\end{figure*}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1230#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="345" HEIGHT="230" BORDER="0"
 SRC="|."$dir".q|img214.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct srcu_struct_array {
2 i...
...t_array *per_cpu_ref;
7 struct mutex mutex;
8 };\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1527#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="305" HEIGHT="504" BORDER="0"
 SRC="|."$dir".q|img292.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}(Spin Version 4.2.5 - 2 April 200...
...es)
unreached in proctype :init:
(0 of 24 states)\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashwhymbslashhostileordering}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="284" HEIGHT="282" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img197.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/whymb/hostileordering}}">|; 

$key = q/{figure}{<comment_mark>1510preform{<verbatim_mark>verbatim1538#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="290" HEIGHT="833" BORDER="0"
 SRC="|."$dir".q|img300.png"
 ALT="\begin{figure}{ % \scriptsize
\begin{verbatim}1  ...">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashwhymbslashcacheSC}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="259" HEIGHT="36" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img159.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/whymb/cacheSC}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{cartoonsslashOneFighting}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="173" HEIGHT="317" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img71.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cartoons/OneFighting}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashAdvanceRCUCallbacks}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="317" HEIGHT="593" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img246.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/AdvanceRCUCallbacks}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1626#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="265" HEIGHT="376" BORDER="0"
 SRC="|."$dir".q|img303.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}static inline void rcu_enter_nohz...
...t_cpu_var(dynticks_progress_counter)++;
+ mb();
}\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{SMPdesignslashmatmuleff}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="304" HEIGHT="295" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img93.png"
 ALT="\resizebox{3in}{!}{\includegraphics{SMPdesign/matmuleff}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{cartoonsslashPhoneBooth}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="344" HEIGHT="333" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img14.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cartoons/PhoneBooth}}">|; 

$key = q/{displaymath}lambda=nlambda_0{displaymath};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="345" HEIGHT="371" BORDER="0"
 SRC="|."$dir".q|img77.png"
 ALT="\begin{displaymath}
\lambda = n \lambda_0
\end{displaymath}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim927#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="270" HEIGHT="49" BORDER="0"
 SRC="|."$dir".q|img155.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 DEFINE_SPINLOCK(rcu_gp_lock);
...
...= 0;
3 DEFINE_PER_THREAD(long, rcu_reader_qs_gp);\end{verbatim}
}\end{figure}">|; 

$key = q/O(N);MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="340" HEIGHT="211" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img313.png"
 ALT="$O(N)$">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim672#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="345" HEIGHT="302" BORDER="0"
 SRC="|."$dir".q|img107.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 retry:
2 spin_lock(&amp;lock2);
3...
...nlock(&amp;lock2);
17 spin_unlock(&amp;nextlayer-&gt;lock1);\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{SMPdesignslashclockfreq}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="374" HEIGHT="836" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img1.png"
 ALT="\resizebox{3in}{!}{\includegraphics{SMPdesign/clockfreq}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{SMPdesignslashlockdeqhash1R}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="298" HEIGHT="299" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img62.png"
 ALT="\resizebox{3in}{!}{\includegraphics{SMPdesign/lockdeqhash1R}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim917#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="261" HEIGHT="275" BORDER="0"
 SRC="|."$dir".q|img143.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 DEFINE_SPINLOCK(rcu_gp_lock);
...
...nesting);
5 DEFINE_PER_THREAD(int, rcu_read_idx);\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{deferslashRCUenvAPI}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="323" HEIGHT="281" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img136.png"
 ALT="\resizebox{3in}{!}{\includegraphics{defer/RCUenvAPI}}">|; 

$key = q/n;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="344" HEIGHT="333" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img78.png"
 ALT="$n$">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim507#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="216" HEIGHT="136" BORDER="0"
 SRC="|."$dir".q|img36.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 DEFINE_PER_THREAD(long, counter...
...m += per_thread(counter, t);
15 return sum;
16 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1417#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="342" HEIGHT="516" BORDER="0"
 SRC="|."$dir".q|img231.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void __rcu_read_lock(void)
2 {...
...25 __release(RCU_BH);
26 local_bh_enable();
27 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1432#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="325" HEIGHT="314" BORDER="0"
 SRC="|."$dir".q|img248.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void rcu_qsctr_inc(int cpu)
2 ...
...p-&gt;passed_quiesc_completed = rdp-&gt;completed;
13 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim522#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="342" HEIGHT="925" BORDER="0"
 SRC="|."$dir".q|img53.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 int add_count(unsigned long del...
...69 spin_unlock(&amp;gblcnt_mutex);
70 return 1;
71 }\end{verbatim}
}\end{figure}">|; 

$key = q/{picture}(6,185)(0,0){rotatebox{90}{DependentLoadsReordered?}{{picture};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="219" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img204.png"
 ALT="\begin{picture}(6,185)(0,0)
\rotatebox{90}{Dependent Loads Reordered?}
\end{picture}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1428#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="300" HEIGHT="352" BORDER="0"
 SRC="|."$dir".q|img243.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 long rcu_batches_completed(void...
..._state *rsp)
28 {
29 return &amp;rsp-&gt;node[0];
30 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{deferslashLinux_hlist}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="228" HEIGHT="176" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img119.png"
 ALT="\resizebox{3in}{!}{\includegraphics{defer/Linux_hlist}}">|; 

$key = q/{figure}{<comment_mark>1498preform{<verbatim_mark>verbatim1529#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="359" HEIGHT="253" BORDER="0"
 SRC="|."$dir".q|img293.png"
 ALT="\begin{figure}{ % \scriptsize
\begin{verbatim}1 i = 0;
2 sum = 0;
3 do
4 :...
...U_READERS -&gt;
9 assert(sum == 0);
10 break
11 od\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim738#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="228" HEIGHT="189" BORDER="0"
 SRC="|."$dir".q|img122.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct foo {
2 struct list_hea...
...t, &amp;q-&gt;list);
20 synchronize_rcu();
21 kfree(p);\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{toolsoftradeslashshellparallel}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="346" HEIGHT="437" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img17.png"
 ALT="\resizebox{3in}{!}{\includegraphics{toolsoftrade/shellparallel}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{cartoonsslashManyFighting}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="294" HEIGHT="390" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img74.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cartoons/ManyFighting}}">|; 

$key = q/resizebox{6in}{!}{includegraphics{appendixslashrcuimplslashRCUTreeLeafScan}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="349" HEIGHT="250" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img262.png"
 ALT="\resizebox{6in}{!}{\includegraphics{appendix/rcuimpl/RCUTreeLeafScan}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1436#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="299" HEIGHT="160" BORDER="0"
 SRC="|."$dir".q|img253.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void rcu_do_batch(struct...
...invoke(rdp))
43 raise_softirq(RCU_SOFTIRQ);
44 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim705#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="260" HEIGHT="213" BORDER="0"
 SRC="|."$dir".q|img111.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct sref {
2 int refcount;
...
...ase(sref);
23 return 1;
24 }
25 return 0;
26 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim654#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="294" HEIGHT="491" BORDER="0"
 SRC="|."$dir".q|img100.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct memblock *memblock_alloc...
...= NULL;
21 return p;
22 }
23 return NULL;
24 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1232#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="255" HEIGHT="289" BORDER="0"
 SRC="|."$dir".q|img217.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 int srcu_readers_active_idx(str...
...p-&gt;per_cpu_ref);
28 sp-&gt;per_cpu_ref = NULL;
29 }\end{verbatim}
}\end{figure}">|; 

$key = q/R_i;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="157" HEIGHT="238" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img325.png"
 ALT="$R_i$">|; 

$key = q/resizebox{3in}{!}{includegraphics{deferslashrwlockRCUperf}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="338" HEIGHT="202" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img125.png"
 ALT="\resizebox{3in}{!}{\includegraphics{defer/rwlockRCUperf}}">|; 

$key = q/includegraphics[scale=.7]{SMPdesignslashDiningPhilosopher5TB};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="255" HEIGHT="900" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img57.png"
 ALT="\includegraphics[scale=.7]{SMPdesign/DiningPhilosopher5TB}">|; 

$key = q/{figure}{{tt{{scriptsize{preform{<verbatim_mark>verbatim2909#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="311" HEIGHT="479" BORDER="0"
 SRC="|."$dir".q|img318.png"
 ALT="\begin{figure}{ \tt\scriptsize
\begin{verbatim}1 struct profile_buffer {
2 l...
... NULL);
32 synchronize_rcu();
33 kfree(p);
34 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim328#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="293" BORDER="0"
 SRC="|."$dir".q|img19.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void waitall(void)
2 {
3 int ...
... perror(''wait'');
12 exit(-1);
13 }
14 }
15 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{deferslashrwlockRCUperfwtPREEMPT}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="388" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img127.png"
 ALT="\resizebox{3in}{!}{\includegraphics{defer/rwlockRCUperfwtPREEMPT}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{SMPdesignslashsynceff}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="339" HEIGHT="50" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img89.png"
 ALT="\resizebox{3in}{!}{\includegraphics{SMPdesign/synceff}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim2912#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="230" HEIGHT="185" BORDER="0"
 SRC="|."$dir".q|img321.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void foo(void)
2 {
3 spin_loc...
...);
17 do_whatever();
18 rcu_read_unlock();
19 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}center{picture{(213,160)(0,25){par{%FirstCPU{par{put(0,50){{framebox{(}{ut(45,25){makebox(120,20)[c]{Interconnect}}picture{center{{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="208" HEIGHT="18" BORDER="0"
 SRC="|."$dir".q|img208.png"
 ALT="\begin{figure}\begin{center}
\begin{picture}(213,160)(0,25)
\par
% First CPU
\pa...
...45,25){\makebox(120,20)[c]{Interconnect}}
\end{picture}\end{center}
\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1433#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="294" HEIGHT="250" BORDER="0"
 SRC="|."$dir".q|img249.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void
2 rcu_check_quiesc...
...rsp, rdp,
12 rdp-&gt;passed_quiesc_completed);
13 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{cartoonsslashtollbooth}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="346" HEIGHT="305" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img13.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cartoons/tollbooth}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim921#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="252" HEIGHT="352" BORDER="0"
 SRC="|."$dir".q|img148.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void rcu_read_lock(void)...
...}
27 __get_thread_var(rcu_nesting) = n - 1;
28 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim653#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="305" HEIGHT="317" BORDER="0"
 SRC="|."$dir".q|img98.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1  ...">|; 

$key = q/resizebox{3in}{!}{includegraphics{lockingslashLockingTheHero}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="323" HEIGHT="302" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img104.png"
 ALT="\resizebox{3in}{!}{\includegraphics{locking/LockingTheHero}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1095#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="415" HEIGHT="222" BORDER="0"
 SRC="|."$dir".q|img183.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 /* WARNING: BUGGY CODE. */
2 v...
...);
17 producer_done = 1;
18 return (NULL);
19 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1487#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="299" HEIGHT="200" BORDER="0"
 SRC="|."$dir".q|img282.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void __rcu_advance_callb...
...g, cpu) = rcu_flip_seen;
42 smp_mb();
43 }
44 }\end{verbatim}
}\end{figure}">|; 

$key = q/N-1;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="556" HEIGHT="191" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img181.png"
 ALT="$N-1$">|; 

$key = q/includegraphics{advsyncslashSplitCache};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="557" HEIGHT="156" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img179.png"
 ALT="\includegraphics{advsync/SplitCache}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1431#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="341" HEIGHT="378" BORDER="0"
 SRC="|."$dir".q|img247.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void
2 rcu_start_gp(str...
...n_unlock_irqrestore(&amp;rsp-&gt;onofflock, flags);
47 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{centering{preform{<verbatim_mark>verbatim2911#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="64" HEIGHT="31" BORDER="0"
 SRC="|."$dir".q|img320.png"
 ALT="\begin{figure}{ \centering
\begin{verbatim}1 rcu_read_lock();
2 preempt_disa...
.... */
6
7 preempt_enable();
8 rcu_read_unlock();\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{CodeSamplesslashtoolsoftradeslashrwlockscale}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="317" HEIGHT="619" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img26.png"
 ALT="\resizebox{3in}{!}{\includegraphics{CodeSamples/toolsoftrade/rwlockscale}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim734#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="353" HEIGHT="518" BORDER="0"
 SRC="|."$dir".q|img118.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct foo {
2 struct list_hea...
...;
14 p-&gt;c = 3;
15 list_add_rcu(&amp;p-&gt;list, &amp;head);\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1523#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="294" HEIGHT="353" BORDER="0"
 SRC="|."$dir".q|img289.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}pan: assertion violated ((sum&lt;2)\v...
...onflicts: 0 (resolved)2.622 memory usage (Mbyte)\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1419#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="341" HEIGHT="560" BORDER="0"
 SRC="|."$dir".q|img233.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static int __rcu_pending(struct...
...(cpu);
44 }
45 raise_softirq(RCU_SOFTIRQ);
46 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim928#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="317" HEIGHT="378" BORDER="0"
 SRC="|."$dir".q|img156.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void rcu_read_lock(void)...
...nline(void)
26 {
27 rcu_quiescent_state();
28 }\end{verbatim}
}\end{figure}">|; 

$key = q/includegraphics{advsyncslashReadBarrierNeeded};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="396" HEIGHT="82" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img171.png"
 ALT="\includegraphics{advsync/ReadBarrierNeeded}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim327#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="345" HEIGHT="366" BORDER="0"
 SRC="|."$dir".q|img18.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 pid = fork();
2 if (pid == 0) ...
... 8 } else {
9 /* parent, pid == child ID */
10 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1627#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="216" HEIGHT="261" BORDER="0"
 SRC="|."$dir".q|img304.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}- if ((curr - snap) &gt; 2 \vert\vert...
...f ((curr - snap) &gt; 2 \vert\vert (curr &amp; 0x1) == 0)\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1442#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="241" HEIGHT="253" BORDER="0"
 SRC="|."$dir".q|img259.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void
2 dyntick_record_c...
...p)
10 {
11 return rsp-&gt;dynticks_completed;
12 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1444#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="340" HEIGHT="211" BORDER="0"
 SRC="|."$dir".q|img261.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static int
2 rcu_process_dynti...
...(&amp;rnp_cur-&gt;lock, flags);
38 }
39 return 0;
40 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashRCUrt-MBwaste}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="319" HEIGHT="174" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img285.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/RCUrt-MBwaste}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{introslashPPGrelation}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="745" HEIGHT="837" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img3.png"
 ALT="\resizebox{3in}{!}{\includegraphics{intro/PPGrelation}}">|; 

$key = q/f;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="326" HEIGHT="42" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img87.png"
 ALT="$f$">|; 

$key = q/L_1;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="331" HEIGHT="311" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img30.png"
 ALT="$L_1$">|; 

$key = q/includegraphics{advsyncslashDataDependencySupplied};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="13" HEIGHT="32" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img170.png"
 ALT="\includegraphics{advsync/DataDependencySupplied}">|; 

$key = q/includegraphics{appendixslashwhymbslashcacheSCwrite};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="211" HEIGHT="49" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img193.png"
 ALT="\includegraphics{appendix/whymb/cacheSCwrite}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1632#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="157" HEIGHT="150" BORDER="0"
 SRC="|."$dir".q|img309.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static int
2 dyntick_save_prog...
...et)
15 rdp-&gt;dynticks_fqs++;
16 return ret;
17 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim329#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="151" BORDER="0"
 SRC="|."$dir".q|img20.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 int x = 0;
2 int pid;
3
4 p...
...);
15 printf(''Parent process sees x=%d\n'', x);
\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim682#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="183" HEIGHT="206" BORDER="0"
 SRC="|."$dir".q|img109.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 int delete(int key)
2 {
3 int...
...nlock(&amp;p-&gt;lock);
13 kfree(p);
14 return 1;
15 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1113#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="287" HEIGHT="238" BORDER="0"
 SRC="|."$dir".q|img187.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void *thread_test(void *arg)
2...
...,
6 myarg, smp_thread_id());
7 return NULL;
8 }\end{verbatim}
}\end{figure}">|; 

$key = q/{picture}(6,185)(0,0){rotatebox{90}{StoresReorderedAfterLoads?}{{picture};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="264" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img201.png"
 ALT="\begin{picture}(6,185)(0,0)
\rotatebox{90}{Stores Reordered After Loads?}
\end{picture}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim520#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="341" HEIGHT="798" BORDER="0"
 SRC="|."$dir".q|img51.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1  ...">|; 

$key = q/resizebox{3in}{!}{includegraphics{SMPdesignslashlockdeqpair}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="286" HEIGHT="276" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img60.png"
 ALT="\resizebox{3in}{!}{\includegraphics{SMPdesign/lockdeqpair}}">|; 

$key = q/resizebox{2in}{!}{includegraphics{countslashsig-theft}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="311" HEIGHT="416" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img50.png"
 ALT="\resizebox{2in}{!}{\includegraphics{count/sig-theft}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{cpuslashSystemArch}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="346" HEIGHT="331" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img15.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cpu/SystemArch}}">|; 

$key = q/{figure*}{preform{<verbatim_mark>verbatim1416#preform{}{{{figure*};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="342" HEIGHT="395" BORDER="0"
 SRC="|."$dir".q|img230.png"
 ALT="\begin{figure*}{
\begin{verbatim}1  ...">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim683#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="193" HEIGHT="87" BORDER="0"
 SRC="|."$dir".q|img110.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 int delete(int key)
2 {
3 int...
...spin_unlock(sp);
17 kfree(p);
18 return 1;
19 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{deferslashrefRCUperfPREEMPT}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="236" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img132.png"
 ALT="\resizebox{3in}{!}{\includegraphics{defer/refRCUperfPREEMPT}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim649#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="347" HEIGHT="709" BORDER="0"
 SRC="|."$dir".q|img70.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 spinlock_t hash_lock;
2
3 str...
...}
29 spin_unlock(&amp;hash_lock);
30 return 0;
31 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim511#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="349" HEIGHT="632" BORDER="0"
 SRC="|."$dir".q|img42.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 int add_count(unsigned long del...
... spin_unlock(&amp;gblcnt_mutex);
49 return sum;
50 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1096#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="345" HEIGHT="259" BORDER="0"
 SRC="|."$dir".q|img184.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 /* WARNING: BUGGY CODE. */
2 v...
...j].c - ssc[j - 1].c);
51 consumer_done = 1;
52 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{<comment_mark>1520preform{<verbatim_mark>verbatim1540#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="315" HEIGHT="166" BORDER="0"
 SRC="|."$dir".q|img302.png"
 ALT="\begin{figure}{ % \scriptsize
\begin{verbatim}1 init {
2 int i;
3
4 atomic...
...: i &gt;= N_QRCU_UPDATERS -&gt; break
21 od
22 }
23 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{countslashGlobalTreeInc}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="342" HEIGHT="302" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img311.png"
 ALT="\resizebox{3in}{!}{\includegraphics{count/GlobalTreeInc}}">|; 

$key = q/includegraphics{advsyncslashDataDependencyNeeded};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="22" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img169.png"
 ALT="\includegraphics{advsync/DataDependencyNeeded}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim523#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="231" HEIGHT="331" BORDER="0"
 SRC="|."$dir".q|img54.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 unsigned long read_count(void)
...
... spin_unlock(&amp;gblcnt_mutex);
12 return sum;
13 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{<comment_mark>1501preform{<verbatim_mark>verbatim1532#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="329" HEIGHT="276" BORDER="0"
 SRC="|."$dir".q|img296.png"
 ALT="\begin{figure}{ % \scriptsize
\begin{verbatim}1  ...">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1489#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="299" HEIGHT="238" BORDER="0"
 SRC="|."$dir".q|img284.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void __rcu_read_unlock(void)
2...
...idx])-;
17 local_irq_restore(flags);
18 }
19 }\end{verbatim}
}\end{figure}">|; 

$key = q/includegraphics{SMPdesignslashParallelFastpath};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="13" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img94.png"
 ALT="\includegraphics{SMPdesign/ParallelFastpath}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashBigTreeClassicRCU}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="230" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img225.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/BigTreeClassicRCU}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{deferslashrwlockRCUperfPREEMPT}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="325" HEIGHT="265" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img126.png"
 ALT="\resizebox{3in}{!}{\includegraphics{defer/rwlockRCUperfPREEMPT}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1443#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="258" HEIGHT="302" BORDER="0"
 SRC="|."$dir".q|img260.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static int rcu_implicit_offline...
...hed();
11 rdp-&gt;resched_ipi++;
12 return 0;
13 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{cartoonsslashtrackmeet}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="212" HEIGHT="152" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img7.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cartoons/trackmeet}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{advsyncslashMoreThanOneValue}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="228" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img163.png"
 ALT="\resizebox{3in}{!}{\includegraphics{advsync/MoreThanOneValue}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim651#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="53" HEIGHT="32" BORDER="0"
 SRC="|."$dir".q|img95.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 rwlock_t hash_lock;
2
3 struc...
...}
29 read_unlock(&amp;hash_lock);
30 return 0;
31 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1424#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="300" HEIGHT="352" BORDER="0"
 SRC="|."$dir".q|img239.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1  ...">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1534#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="332" HEIGHT="201" BORDER="0"
 SRC="|."$dir".q|img297.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}(Spin Version 4.2.5 - 2 April 200...
...es)
unreached in proctype :init:
(0 of 22 states)\end{verbatim}
}\end{figure}">|; 

$key = q/2N;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="284" HEIGHT="263" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img146.png"
 ALT="$2N$">|; 

$key = q/resizebox{3in}{2in}{includegraphics{cartoonsslashLD,ACQ}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="18" HEIGHT="25" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img210.png"
 ALT="\resizebox{3in}{2in}{\includegraphics{cartoons/LD,ACQ}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{cartoonsslashShavingTheMandelbrotSet}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="605" HEIGHT="245" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img182.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cartoons/ShavingTheMandelbrotSet}}">|; 

$key = q/includegraphics[scale=.7]{SMPdesignslashDiningPhilosopher5PEM};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="222" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img315.png"
 ALT="\includegraphics[scale=.7]{SMPdesign/DiningPhilosopher5PEM}">|; 

$key = q/Oleft(1right);MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="26" HEIGHT="14" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img150.png"
 ALT="$O\left(1\right)$">|; 

$key = q/resizebox{1.5in}{!}{includegraphics{SMPdesignslashlockdeqhashlots}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="344" HEIGHT="361" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img63.png"
 ALT="\resizebox{1.5in}{!}{\includegraphics{SMPdesign/lockdeqhashlots}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{cpuslash3DI}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="345" HEIGHT="394" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img16.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cpu/3DI}}">|; 

$key = q/{displaymath}e=frac{frac{mu}{lambda_0}-n}{frac{mu}{lambda_0}-(n-1)}{displaymath};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="73" HEIGHT="42" BORDER="0"
 SRC="|."$dir".q|img85.png"
 ALT="\begin{displaymath}
e = \frac{\frac{\mu}{\lambda_0} - n}{\frac{\mu}{\lambda_0} - (n - 1)}
\end{displaymath}">|; 

$key = q/2N+1;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="310" HEIGHT="37" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img326.png"
 ALT="$2N+1$">|; 

$key = q/resizebox{3in}{!}{includegraphics{SMPdesignslashAllocatorPool}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="294" HEIGHT="390" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img99.png"
 ALT="\resizebox{3in}{!}{\includegraphics{SMPdesign/AllocatorPool}}">|; 

$key = q/lambda;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="346" HEIGHT="318" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img75.png"
 ALT="$\lambda$">|; 

$key = q/{figure}{{centering{preform{<verbatim_mark>verbatim2910#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="286" HEIGHT="276" BORDER="0"
 SRC="|."$dir".q|img319.png"
 ALT="\begin{figure}{ \centering
\begin{verbatim}1 idx = srcu_read_lock(&amp;ssa);
2 s...
...ronize_srcu(&amp;ssa);
9 srcu_read_unlock(&amp;ssb, idx);\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim652#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="60" HEIGHT="32" BORDER="0"
 SRC="|."$dir".q|img96.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct hash_table
2 {
3 long ...
...spin_unlock(&amp;bp-&gt;bucket_lock);
38 return 0;
39 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1429#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="329" HEIGHT="542" BORDER="0"
 SRC="|."$dir".q|img244.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void note_new_gpnum(stru...
...23 local_irq_restore(flags);
24 return ret;
25 }\end{verbatim}
}\end{figure}">|; 

$key = q/{picture}(6,185)(0,0){rotatebox{90}{StoresReorderedAfterStores?}{{picture};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="357" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img200.png"
 ALT="\begin{picture}(6,185)(0,0)
\rotatebox{90}{Stores Reordered After Stores?}
\end{picture}">|; 

$key = q/resizebox{3in}{2in}{includegraphics{cartoonsslashCPU_toon_outoforder_colored}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="242" HEIGHT="352" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img160.png"
 ALT="\resizebox{3in}{2in}{\includegraphics{cartoons/CPU_toon_outoforder_colored}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashBigTreeClassicRCUBH}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="344" HEIGHT="301" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img226.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/BigTreeClassicRCUBH}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim567#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="599" BORDER="0"
 SRC="|."$dir".q|img66.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct list_head *pdeq_dequeue_...
..._r(e, &amp;d-&gt;rdeq);
55 spin_unlock(&amp;d-&gt;rlock);
56 }\end{verbatim}
}\end{figure}">|; 

$key = q/m+2sn;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="64" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img316.png"
 ALT="$m+2sn$">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim925#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="296" HEIGHT="467" BORDER="0"
 SRC="|."$dir".q|img153.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 DEFINE_SPINLOCK(rcu_gp_lock);
...
...tr = 0;
6 DEFINE_PER_THREAD(long, rcu_reader_gp);\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{cartoonsslashref}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="214" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img10.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cartoons/ref}}">|; 

$key = q/includegraphics{appendixslashrcuimplslashsrcuds};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="345" HEIGHT="224" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img215.png"
 ALT="\includegraphics{appendix/rcuimpl/srcuds}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim924#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="252" HEIGHT="352" BORDER="0"
 SRC="|."$dir".q|img152.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void rcu_read_lock(void)...
... 28 spin_unlock(&amp;rcu_gp_lock);
29 smp_mb();
30 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim565#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="340" HEIGHT="58" BORDER="0"
 SRC="|."$dir".q|img64.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct pdeq {
2 spinlock_t llo...
...
5 int ridx;
6 struct deq bkt[DEQ_N_BKTS];
7 };\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{<comment_mark>1500preform{<verbatim_mark>verbatim1531#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="187" HEIGHT="123" BORDER="0"
 SRC="|."$dir".q|img295.png"
 ALT="\begin{figure}{ % \scriptsize
\begin{verbatim}1  ...">|; 

$key = q/resizebox{3in}{!}{includegraphics{lockingslashDeadlockCycle}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="335" HEIGHT="212" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img105.png"
 ALT="\resizebox{3in}{!}{\includegraphics{locking/DeadlockCycle}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1439#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="611" HEIGHT="344" BORDER="0"
 SRC="|."$dir".q|img256.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void rcu_irq_enter(void)
2 {
...
...cu_bh_data).nxtlist)
23 set_need_resched();
24 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1633#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="335" HEIGHT="340" BORDER="0"
 SRC="|."$dir".q|img310.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static int
2 rcu_implicit_dynt...
...8 }
19 return rcu_implicit_offline_qs(rdp);
20 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1233#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="246" HEIGHT="99" BORDER="0"
 SRC="|."$dir".q|img218.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 int srcu_read_lock(struct srcu_...
...ier();
11 preempt_enable();
12 return idx;
13 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1526#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="435" BORDER="0"
 SRC="|."$dir".q|img291.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 proctype incrementer(byte me)
...
...ounter = temp + 1;
8 }
9 progress[me] = 1;
10 }\end{verbatim}
}\end{figure}">|; 

$key = q/nomath_inline}textregisterednomath_inline};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="314" HEIGHT="14" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img206.png"
 ALT="\textregistered">|; 

$key = q/N;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="335" HEIGHT="251" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img28.png"
 ALT="$N$">|; 

$key = q/includegraphics{appendixslashwhymbslashMESI};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="317" HEIGHT="263" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img192.png"
 ALT="\includegraphics{appendix/whymb/MESI}">|; 

$key = q/resizebox{3in}{!}{includegraphics{easyslashMandel_zoom_00_mandelbrot_set}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="556" HEIGHT="185" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img180.png"
 ALT="\resizebox{3in}{!}{\includegraphics{easy/Mandel_zoom_00_mandelbrot_set}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim508#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="43" HEIGHT="31" BORDER="0"
 SRC="|."$dir".q|img38.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 DEFINE_PER_THREAD(atomic_t, cou...
...lag &lt; 3)
48 poll(NULL, 0, 1);
49 smp_mb();
50 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure*}{{scriptsize{preform{<verbatim_mark>verbatim1112#preform{}{{{figure*};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="345" HEIGHT="236" BORDER="0"
 SRC="|."$dir".q|img186.png"
 ALT="\begin{figure*}{ \scriptsize
\begin{verbatim}int smp_thread_id(void)
thread_id...
...read(thread_id_t tid)
void wait_all_threads(void)\end{verbatim}
}\end{figure*}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim915#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="210" HEIGHT="187" BORDER="0"
 SRC="|."$dir".q|img141.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void rcu_read_lock(void)...
...}
27 __get_thread_var(rcu_nesting) = n - 1;
28 }\end{verbatim}
}\end{figure}">|; 

$key = q/dagger;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="307" HEIGHT="146" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img166.png"
 ALT="$\dagger$">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashGenericRCUStateMachine}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="286" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img228.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/GenericRCUStateMachine}}">|; 

$key = q/{figure}{<comment_mark>1499preform{<verbatim_mark>verbatim1530#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="542" HEIGHT="532" BORDER="0"
 SRC="|."$dir".q|img294.png"
 ALT="\begin{figure}{ % \scriptsize
\begin{verbatim}1 atomic {
2 i = 0;
3 sum = 0...
...RS -&gt;
10 assert(sum == 0);
11 break
12 od
13 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashFlatClassicRCU}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="330" HEIGHT="365" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img221.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/FlatClassicRCU}}">|; 

$key = q/{picture}(6,185)(0,0){rotatebox{90}{AtomicInstructionsReorderedWithStores?}{{picture};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="218" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img203.png"
 ALT="\begin{picture}(6,185)(0,0)
\rotatebox{90}{Atomic Instructions Reordered With Stores?}
\end{picture}">|; 

$key = q/resizebox{3in}{!}{includegraphics{cartoonsslashwhippersnapper}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="331" HEIGHT="250" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img8.png"
 ALT="\resizebox{3in}{!}{\includegraphics{cartoons/whippersnapper}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashTreeRCUStateMachine}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="308" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img229.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/TreeRCUStateMachine}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashRCUpreemptValidation}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="347" HEIGHT="251" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img287.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/RCUpreemptValidation}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1235#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="270" HEIGHT="98" BORDER="0"
 SRC="|."$dir".q|img220.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void synchronize_srcu(struct sr...
...onize_sched();
18 mutex_unlock(&amp;sp-&gt;mutex);
19 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{lockingslashLockingTheSlob}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="287" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img103.png"
 ALT="\resizebox{3in}{!}{\includegraphics{locking/LockingTheSlob}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim707#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="210" HEIGHT="187" BORDER="0"
 SRC="|."$dir".q|img113.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static inline
2 struct dst_ent...
...dec();
15 atomic_dec(&amp;dst-&gt;__refcnt);
16 }
17 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim922#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="296" HEIGHT="327" BORDER="0"
 SRC="|."$dir".q|img149.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void flip_counter_and_wa...
... 35 spin_unlock(&amp;rcu_gp_lock);
36 smp_mb();
37 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1114#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="347" HEIGHT="658" BORDER="0"
 SRC="|."$dir".q|img188.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 int main(int argc, char *argv[]...
...threads completed.\n'', nkids);
20 exit(0);
21 }\end{verbatim}
}\end{figure}">|; 

$key = q/includegraphics{appendixslashquestionsslashafter};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="48" HEIGHT="32" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img185.png"
 ALT="\includegraphics{appendix/questions/after}">|; 

$key = q/resizebox{3in}{!}{includegraphics{deferslashLinux_list}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="329" HEIGHT="352" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img116.png"
 ALT="\resizebox{3in}{!}{\includegraphics{defer/Linux_list}}">|; 

$key = q/L_N;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="312" HEIGHT="517" ALIGN="MIDDLE" BORDER="0"
 SRC="|."$dir".q|img29.png"
 ALT="$L_N$">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1430#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="340" HEIGHT="174" BORDER="0"
 SRC="|."$dir".q|img245.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void
2 rcu_process_gp_e...
...ed_snap;
18 }
19 local_irq_restore(flags);
20 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim524#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="311" HEIGHT="211" BORDER="0"
 SRC="|."$dir".q|img55.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void count_init(void)
2 {
3 s...
...idx] = NULL;
34 spin_unlock(&amp;gblcnt_mutex);
35 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim2901#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="349" HEIGHT="250" BORDER="0"
 SRC="|."$dir".q|img314.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 long __thread counter = 0;
2 l...
...nt &lt; nthreadsexpected)
37 poll(NULL, 0, 1);
38 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1115#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="331" HEIGHT="339" BORDER="0"
 SRC="|."$dir".q|img189.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}void spin_lock_init(spinlock_t *sp...
...spinlock_t *sp);
void spin_unlock(spinlock_t *sp);\end{verbatim}
}\end{figure}">|; 

$key = q/includegraphics{advsyncslashSpeculativeLoadBarrierCancel};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="553" HEIGHT="231" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img177.png"
 ALT="\includegraphics{advsync/SpeculativeLoadBarrierCancel}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1438#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="348" HEIGHT="339" BORDER="0"
 SRC="|."$dir".q|img255.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void rcu_nmi_enter(void)
2 {
...
...18 return;
19 smp_mb();
20 rdtp-&gt;dynticks_nmi++;\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim788#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="473" HEIGHT="212" BORDER="0"
 SRC="|."$dir".q|img135.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct profile_buffer {
2 long...
...ULL);
25 synchronize_sched();
26 kfree(p);
27 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim953#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="272" HEIGHT="505" BORDER="0"
 SRC="|."$dir".q|img158.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct countarray {
2 unsigned...
...x);
68 synchronize_rcu();
69 free(capold);
70 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim516#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="278" HEIGHT="632" BORDER="0"
 SRC="|."$dir".q|img46.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 atomic_t __thread counterandmax...
...&lt; CM_BITS) \vert cm;
32 return ((int)cami);
33 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{deferslashLinux_list_abbr}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="323" HEIGHT="211" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img117.png"
 ALT="\resizebox{3in}{!}{\includegraphics{defer/Linux_list_abbr}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1486#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="373" HEIGHT="352" BORDER="0"
 SRC="|."$dir".q|img281.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static int rcu_try_flip_waitmb(...
...rcupreempt_trace_try_flip_m2);
13 return 1;
14 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{tt{{scriptsize{preform{<verbatim_mark>verbatim1195#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="2" HEIGHT="14" BORDER="0"
 SRC="|."$dir".q|img209.png"
 ALT="\begin{figure}{\tt\scriptsize
\begin{verbatim}1 struct el *insert(long key, l...
...}
23 p = p-&gt;next;
24 };
25 return (NULL);
26 }\end{verbatim}
}\end{figure}">|; 

$key = q/includegraphics[scale=.7]{SMPdesignslashDiningPhilosopher5};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="325" HEIGHT="798" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img56.png"
 ALT="\includegraphics[scale=.7]{SMPdesign/DiningPhilosopher5}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1117#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="347" HEIGHT="72" BORDER="0"
 SRC="|."$dir".q|img190.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}DEFINE_PER_THREAD(type, name)
DECL...
...d)
__get_thread_var(name)
init_per_thread(name, v)\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1628#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="272" HEIGHT="734" BORDER="0"
 SRC="|."$dir".q|img305.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct rcu_dynticks {
2 int dy...
...ks_snap;
10 int dynticks_nmi_snap;
11 ...
12 };\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{1.5in}{!}{includegraphics{appendixslashrcuimplslashRCUpreemptLists}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="343" HEIGHT="186" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img272.png"
 ALT="\resizebox{1.5in}{!}{\includegraphics{appendix/rcuimpl/RCUpreemptLists}}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashRCUpreemptTimeline}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="341" HEIGHT="385" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img274.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/RCUpreemptTimeline}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1422#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="324" HEIGHT="582" BORDER="0"
 SRC="|."$dir".q|img237.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1  ...">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashRCUpreemptCounterFlip}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="353" HEIGHT="442" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img271.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/RCUpreemptCounterFlip}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim914#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="339" HEIGHT="234" BORDER="0"
 SRC="|."$dir".q|img140.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 DEFINE_SPINLOCK(rcu_gp_lock);
...
...nesting);
5 DEFINE_PER_THREAD(int, rcu_read_idx);\end{verbatim}
}\end{figure}">|; 

$key = q/includegraphics{advsyncslashReadBarrierSupplied2};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="553" HEIGHT="254" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img174.png"
 ALT="\includegraphics{advsync/ReadBarrierSupplied2}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim912#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="272" HEIGHT="314" BORDER="0"
 SRC="|."$dir".q|img138.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void rcu_read_lock(void)...
...n_unlock(&amp;per_thread(rcu_gp_lock, t));
18 }
19 }\end{verbatim}
}\end{figure}">|; 

$key = q/e;MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="38" HEIGHT="32" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img90.png"
 ALT="$e$">|; 

$key = q/includegraphics[scale=.7]{SMPdesignslashDiningPhilosopher4part-b};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="192" HEIGHT="161" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img58.png"
 ALT="\includegraphics[scale=.7]{SMPdesign/DiningPhilosopher4part-b}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim730#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="330" HEIGHT="327" BORDER="0"
 SRC="|."$dir".q|img115.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 struct foo {
2 int a;
3 int b...
... p-&gt;a = 1;
12 p-&gt;b = 2;
13 p-&gt;c = 3;
14 gp = p;\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1231#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="323" HEIGHT="74" BORDER="0"
 SRC="|."$dir".q|img216.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 int init_srcu_struct(struct src...
...);
7 return (sp-&gt;per_cpu_ref ? 0 : -ENOMEM);
8 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim673#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="345" HEIGHT="327" BORDER="0"
 SRC="|."$dir".q|img108.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 void thread1(void)
2 {
3 retr...
...pin_unlock(&amp;lock1);
26 spin_unlock(&amp;lock2);
27 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1441#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="240" HEIGHT="314" BORDER="0"
 SRC="|."$dir".q|img258.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static int
2 rcu_implicit_dynt...
...8 }
19 return rcu_implicit_offline_qs(rdp);
20 }\end{verbatim}
}\end{figure}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim1426#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="318" HEIGHT="312" BORDER="0"
 SRC="|."$dir".q|img241.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 static void __cpuinit rcu_onlin...
...softirq(RCU_SOFTIRQ, rcu_process_callbacks);
14 }\end{verbatim}
}\end{figure}">|; 

$key = q/resizebox{3in}{!}{includegraphics{appendixslashrcuimplslashTreeClassicRCUGP}};AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="281" HEIGHT="238" ALIGN="BOTTOM" BORDER="0"
 SRC="|."$dir".q|img224.png"
 ALT="\resizebox{3in}{!}{\includegraphics{appendix/rcuimpl/TreeClassicRCUGP}}">|; 

$key = q/{figure}{{scriptsize{preform{<verbatim_mark>verbatim336#preform{}{{{figure};FSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="251" HEIGHT="188" BORDER="0"
 SRC="|."$dir".q|img24.png"
 ALT="\begin{figure}{ \scriptsize
\begin{verbatim}1 printf(''Creating two threads w...
...
18 perror(''pthread_join'');
19 exit(-1);
20 }\end{verbatim}
}\end{figure}">|; 

$key = q/{displaymath}T=frac{1}{mu-lambda}{displaymath};MSF=1.6;AAT/;
$cached_env_img{$key} = q|<IMG
 WIDTH="56" HEIGHT="26" BORDER="0"
 SRC="|."$dir".q|img81.png"
 ALT="\begin{displaymath}
T = \frac{1}{\mu - \lambda}
\end{displaymath}">|; 

1;

