Re: [perfbook] Possible improvements of Figures 9.11 -- 9.13

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 10, 2021 at 12:32:30AM +0900, Akira Yokosawa wrote:
> Hi Paul,
> 
> I'm reviewing Section 9.5.
> I find Figures 9.11 -- 9.13 are somewhat hard to grasp.
> 
> In those figures, P0() is called "RCU Reader" due to the
> RCU read-side critical section.
> 
> However, it updates x and y, and you are talking about
> final values of x and y.
> 
> At first glance, it looked as though P0() would read from
> x and y, and get values 1 or 2.
> 
> Some clarification would help new readers of Edition 2,
> I suppose.

How about as shown below?  (Not particularly human-readable given that
I modified the figures as well.)

							Thanx, Paul

------------------------------------------------------------------------

 RCUGuaranteeFwd.svg |   99 +++++++++++++++++++++++---------------------------
 RCUGuaranteeMid.svg |  101 ++++++++++++++++++++++++----------------------------
 RCUGuaranteeRev.svg |   99 +++++++++++++++++++++++---------------------------
 rcufundamental.tex  |   51 ++++++++++++++++----------
 4 files changed, 173 insertions(+), 177 deletions(-)

commit 00ba43d6f9e6892cfb336ae8c75802852486cf15
Author: Paul E. McKenney <paulmck@xxxxxxxxxx>
Date:   Tue Mar 9 11:44:21 2021 -0800

    defer/rcufundamental: Clarify discussion of Figures 9.11-9.13
    
    Reported-by: Akira Yokosawa <akiyks@xxxxxxxxx>
    Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx>

diff --git a/defer/RCUGuaranteeFwd.svg b/defer/RCUGuaranteeFwd.svg
index 124b649..055638b 100644
--- a/defer/RCUGuaranteeFwd.svg
+++ b/defer/RCUGuaranteeFwd.svg
@@ -13,7 +13,7 @@
    height="270.15079"
    id="svg2"
    version="1.1"
-   inkscape:version="0.48.4 r9939"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
    sodipodi:docname="RCUGuaranteeFwd.svg">
   <defs
      id="defs4">
@@ -124,7 +124,7 @@
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
      inkscape:zoom="3.7201446"
-     inkscape:cx="117.75291"
+     inkscape:cx="106.53768"
      inkscape:cy="135.07539"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
@@ -133,10 +133,10 @@
      fit-margin-left="0.05"
      fit-margin-right="0.05"
      fit-margin-bottom="0.05"
-     inkscape:window-width="1012"
-     inkscape:window-height="1148"
-     inkscape:window-x="458"
-     inkscape:window-y="24"
+     inkscape:window-width="1652"
+     inkscape:window-height="1465"
+     inkscape:window-x="2188"
+     inkscape:window-y="337"
      inkscape:window-maximized="0" />
   <metadata
      id="metadata7">
@@ -165,8 +165,8 @@
         <path
            inkscape:connector-curvature="0"
            id="path5410"
-           d="m 84.754663,841.32358 100.721987,0.37407 -0.37407,14.6715"
-           style="fill:none;stroke:#00ff00;stroke-width:15.3268261;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+           d="m 84.217049,797.77689 100.453181,0.10526 0.43235,58.487"
+           style="fill:none;stroke:#00ff00;stroke-width:15.3268261;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
            sodipodi:nodetypes="ccc" />
         <path
            inkscape:connector-curvature="0"
@@ -179,36 +179,36 @@
            id="path5450"
            inkscape:connector-curvature="0" />
         <path
-           style="fill:none;stroke:#64c8c8;stroke-width:16;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-           d="m 26.511711,797.23541 -38.528801,0 -0.374066,173.9407 157.107726,0"
+           style="fill:none;stroke:#64c8c8;stroke-width:16;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           d="m 26.511711,841.58852 -38.797608,-0.2688 -0.105259,129.85639 H 144.71657"
            id="path5456"
            inkscape:connector-curvature="0"
            sodipodi:nodetypes="cccc" />
         <text
            xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            x="93.409752"
-           y="844.49298"
-           id="text5458"
-           sodipodi:linespacing="125%"><tspan
+           y="800.49298"
+           id="text5458"><tspan
              sodipodi:role="line"
              x="93.409752"
-             y="844.49298"
-             id="tspan5462">Given this ordering ...</tspan></text>
+             y="800.49298"
+             id="tspan5462"
+             style="font-size:8px;line-height:1.25;font-family:sans-serif">Given this ordering ...</tspan></text>
         <text
-           sodipodi:linespacing="125%"
            id="text5466"
            y="973.47589"
            x="6.0528007"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            xml:space="preserve"><tspan
              id="tspan5468"
              y="973.47589"
              x="6.0528007"
-             sodipodi:role="line">.... RCU guarantees this ordering.</tspan></text>
+             sodipodi:role="line"
+             style="font-size:8px;line-height:1.25;font-family:sans-serif">.... RCU guarantees this ordering.</tspan></text>
         <path
            style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
-           d="M 108.47914,114.18551 59.102431,217.8018"
+           d="M 112.24243,68.219555 59.102431,217.8018"
            id="path5470"
            inkscape:connector-curvature="0"
            transform="translate(26.137646,740.75144)"
@@ -230,13 +230,12 @@
            id="rect4930"
            style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
         <text
-           sodipodi:linespacing="125%"
            id="text4932"
            y="795.81049"
            x="61.421471"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            xml:space="preserve"><tspan
-             style="font-size:6px;text-align:center;text-anchor:middle"
+             style="font-size:6px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
              id="tspan4936"
              y="795.81049"
              x="61.421471"
@@ -255,16 +254,15 @@
            transform="translate(26.663998,740.34064)" />
         <text
            xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            x="61.421471"
            y="795.81049"
-           id="text4948"
-           sodipodi:linespacing="125%"><tspan
+           id="text4948"><tspan
              sodipodi:role="line"
              x="61.421471"
              y="795.81049"
              id="tspan4952"
-             style="text-align:center;text-anchor:middle">x = 1;</tspan></text>
+             style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">r1 = x;</tspan></text>
       </g>
       <path
          style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
@@ -289,16 +287,15 @@
            transform="translate(26.663998,740.34064)" />
         <text
            xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            x="61.421471"
            y="795.81049"
-           id="text5352"
-           sodipodi:linespacing="125%"><tspan
+           id="text5352"><tspan
              sodipodi:role="line"
              x="61.421471"
              y="795.81049"
              id="tspan5356"
-             style="text-align:center;text-anchor:middle">y = 1;</tspan></text>
+             style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">r2 = y;</tspan></text>
       </g>
       <g
          transform="translate(124,89.95315)"
@@ -313,16 +310,15 @@
            transform="translate(26.663998,740.34064)" />
         <text
            xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            x="61.421471"
            y="795.81049"
-           id="text5364"
-           sodipodi:linespacing="125%"><tspan
+           id="text5364"><tspan
              sodipodi:role="line"
              x="61.421471"
              y="795.81049"
              id="tspan5368"
-             style="text-align:center;text-anchor:middle">y = 2;</tspan></text>
+             style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">x = 1;</tspan></text>
       </g>
       <g
          transform="translate(124,134)"
@@ -336,13 +332,12 @@
            id="rect5372"
            style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
         <text
-           sodipodi:linespacing="125%"
            id="text5374"
            y="795.81049"
            x="61.421471"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            xml:space="preserve"><tspan
-             style="font-size:6px;text-align:center;text-anchor:middle"
+             style="font-size:6px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
              id="tspan5378"
              y="795.81049"
              x="61.421471"
@@ -370,17 +365,16 @@
            id="rect5386"
            style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
         <text
-           sodipodi:linespacing="125%"
            id="text5388"
            y="795.81049"
            x="61.421471"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            xml:space="preserve"><tspan
-             style="text-align:center;text-anchor:middle"
+             style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
              id="tspan5392"
              y="795.81049"
              x="61.421471"
-             sodipodi:role="line">x = 2;</tspan></text>
+             sodipodi:role="line">y = 1;</tspan></text>
       </g>
       <path
          style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
@@ -400,39 +394,38 @@
            transform="translate(26.663998,740.34064)" />
         <text
            xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            x="61.421471"
            y="795.81049"
-           id="text3862"
-           sodipodi:linespacing="125%"><tspan
+           id="text3862"><tspan
              sodipodi:role="line"
              x="61.421471"
              y="795.81049"
              id="tspan3864"
-             style="font-size:6px;text-align:center;text-anchor:middle">rcu_read_unlock()</tspan></text>
+             style="font-size:6px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">rcu_read_unlock()</tspan></text>
       </g>
       <text
          xml:space="preserve"
-         style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
          x="56.733543"
          y="733.72308"
-         id="text3251"
-         sodipodi:linespacing="125%"><tspan
+         id="text3251"><tspan
            sodipodi:role="line"
            id="tspan3253"
            x="56.733543"
-           y="733.72308">P0()</tspan></text>
+           y="733.72308"
+           style="font-size:8px;line-height:1.25;font-family:sans-serif">P0()</tspan></text>
       <text
-         sodipodi:linespacing="125%"
          id="text3255"
          y="997.72308"
          x="186.73355"
-         style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
          xml:space="preserve"><tspan
            y="997.72308"
            x="186.73355"
            id="tspan3257"
-           sodipodi:role="line">P1()</tspan></text>
+           sodipodi:role="line"
+           style="font-size:8px;line-height:1.25;font-family:sans-serif">P1()</tspan></text>
     </g>
   </g>
 </svg>
diff --git a/defer/RCUGuaranteeMid.svg b/defer/RCUGuaranteeMid.svg
index 025266b..f343632 100644
--- a/defer/RCUGuaranteeMid.svg
+++ b/defer/RCUGuaranteeMid.svg
@@ -13,7 +13,7 @@
    height="266.8678"
    id="svg2"
    version="1.1"
-   inkscape:version="0.48.4 r9939"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
    sodipodi:docname="RCUGuaranteeMid.svg">
   <defs
      id="defs4">
@@ -166,19 +166,19 @@
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
      inkscape:zoom="3.4674888"
-     inkscape:cx="121.41351"
+     inkscape:cx="125.71437"
      inkscape:cy="133.4339"
      inkscape:document-units="px"
-     inkscape:current-layer="g5416"
+     inkscape:current-layer="layer1"
      showgrid="false"
      fit-margin-top="5"
      fit-margin-left="5"
      fit-margin-right="5"
      fit-margin-bottom="5"
-     inkscape:window-width="937"
-     inkscape:window-height="1148"
-     inkscape:window-x="420"
-     inkscape:window-y="24"
+     inkscape:window-width="1381"
+     inkscape:window-height="1484"
+     inkscape:window-x="2445"
+     inkscape:window-y="403"
      inkscape:window-maximized="0">
     <inkscape:grid
        type="xygrid"
@@ -187,8 +187,10 @@
        visible="true"
        enabled="true"
        snapvisiblegridlinesonly="true"
-       originx="-2.6202392e-07px"
-       originy="14.377359px" />
+       originx="-2.6202392e-07"
+       originy="14.377359"
+       spacingx="1"
+       spacingy="1" />
   </sodipodi:namedview>
   <metadata
      id="metadata7">
@@ -198,7 +200,7 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
-        <dc:title></dc:title>
+        <dc:title />
       </cc:Work>
     </rdf:RDF>
   </metadata>
@@ -237,16 +239,16 @@
            inkscape:connector-curvature="0"
            sodipodi:nodetypes="cccc" />
         <text
-           sodipodi:linespacing="125%"
            id="text5466"
            y="891.99835"
            x="44.399769"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            xml:space="preserve"><tspan
              id="tspan5468"
              y="891.99835"
              x="44.399769"
-             sodipodi:role="line">... this can happen</tspan></text>
+             sodipodi:role="line"
+             style="font-size:8px;line-height:1.25;font-family:sans-serif">... this can happen</tspan></text>
         <path
            style="fill:none;stroke:#000000;stroke-width:0.94868332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
            d="M 88.499834,855.13067 98.0701,878.6298"
@@ -254,16 +256,16 @@
            inkscape:connector-curvature="0"
            sodipodi:nodetypes="cc" />
         <text
-           sodipodi:linespacing="125%"
            id="text5466-7"
            y="848.10419"
            x="47.993519"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            xml:space="preserve"><tspan
              id="tspan5468-2"
              y="848.10419"
              x="47.993519"
-             sodipodi:role="line">Given this ordering ...</tspan></text>
+             sodipodi:role="line"
+             style="font-size:8px;line-height:1.25;font-family:sans-serif">Given this ordering ...</tspan></text>
       </g>
     </g>
     <g
@@ -286,13 +288,12 @@
            id="rect4930"
            style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
         <text
-           sodipodi:linespacing="125%"
            id="text4932"
            y="795.81049"
            x="61.421471"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            xml:space="preserve"><tspan
-             style="font-size:6px;text-align:center;text-anchor:middle"
+             style="font-size:6px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
              id="tspan4936"
              y="795.81049"
              x="61.421471"
@@ -311,16 +312,15 @@
            transform="translate(26.663998,740.34064)" />
         <text
            xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            x="61.421471"
            y="795.81049"
-           id="text4948"
-           sodipodi:linespacing="125%"><tspan
+           id="text4948"><tspan
              sodipodi:role="line"
              x="61.421471"
              y="795.81049"
-             style="text-align:center;text-anchor:middle"
-             id="tspan3066">x = 1;</tspan></text>
+             style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
+             id="tspan3066">r1 = x;</tspan></text>
       </g>
       <path
          style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
@@ -345,16 +345,15 @@
            transform="translate(26.663998,740.34064)" />
         <text
            xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            x="61.421471"
            y="795.81049"
-           id="text5352"
-           sodipodi:linespacing="125%"><tspan
+           id="text5352"><tspan
              sodipodi:role="line"
              x="61.421471"
              y="795.81049"
-             style="text-align:center;text-anchor:middle"
-             id="tspan3068">y = 1;</tspan></text>
+             style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
+             id="tspan3068">r2 = y;</tspan></text>
       </g>
       <g
          transform="translate(124,-36.04685)"
@@ -369,16 +368,15 @@
            transform="translate(26.663998,740.34064)" />
         <text
            xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            x="61.421471"
            y="795.81049"
-           id="text5364"
-           sodipodi:linespacing="125%"><tspan
+           id="text5364"><tspan
              sodipodi:role="line"
              x="61.421471"
              y="795.81049"
-             style="text-align:center;text-anchor:middle"
-             id="tspan3070">x = 2;</tspan></text>
+             style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
+             id="tspan3070">x = 1;</tspan></text>
       </g>
       <g
          transform="translate(124,8)"
@@ -392,13 +390,12 @@
            id="rect5372"
            style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
         <text
-           sodipodi:linespacing="125%"
            id="text5374"
            y="795.81049"
            x="61.421471"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            xml:space="preserve"><tspan
-             style="font-size:6px;text-align:center;text-anchor:middle"
+             style="font-size:6px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
              id="tspan5378"
              y="795.81049"
              x="61.421471"
@@ -420,17 +417,16 @@
            id="rect5386"
            style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
         <text
-           sodipodi:linespacing="125%"
            id="text5388"
            y="883.81049"
            x="61.421471"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            xml:space="preserve"><tspan
-             style="text-align:center;text-anchor:middle"
+             style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
              y="883.81049"
              x="61.421471"
              sodipodi:role="line"
-             id="tspan3072">y = 2;</tspan></text>
+             id="tspan3072">y = 1;</tspan></text>
       </g>
       <path
          style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
@@ -450,39 +446,38 @@
            transform="translate(26.663998,740.34064)" />
         <text
            xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            x="61.421471"
            y="795.81049"
-           id="text3862"
-           sodipodi:linespacing="125%"><tspan
+           id="text3862"><tspan
              sodipodi:role="line"
              x="61.421471"
              y="795.81049"
              id="tspan3864"
-             style="font-size:6px;text-align:center;text-anchor:middle">rcu_read_unlock()</tspan></text>
+             style="font-size:6px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">rcu_read_unlock()</tspan></text>
       </g>
       <text
          xml:space="preserve"
-         style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
          x="13.011486"
          y="784.56586"
-         id="text3259"
-         sodipodi:linespacing="125%"><tspan
+         id="text3259"><tspan
            sodipodi:role="line"
            id="tspan3261"
            x="13.011486"
-           y="784.56586">P0()</tspan></text>
+           y="784.56586"
+           style="font-size:8px;line-height:1.25;font-family:sans-serif">P0()</tspan></text>
     </g>
     <text
        xml:space="preserve"
-       style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
        x="186.02127"
        y="794.23138"
-       id="text3267"
-       sodipodi:linespacing="125%"><tspan
+       id="text3267"><tspan
          sodipodi:role="line"
          id="tspan3269"
          x="186.02127"
-         y="794.23138">P1()</tspan></text>
+         y="794.23138"
+         style="font-size:8px;line-height:1.25;font-family:sans-serif">P1()</tspan></text>
   </g>
 </svg>
diff --git a/defer/RCUGuaranteeRev.svg b/defer/RCUGuaranteeRev.svg
index cb54099..fa708ee 100644
--- a/defer/RCUGuaranteeRev.svg
+++ b/defer/RCUGuaranteeRev.svg
@@ -13,7 +13,7 @@
    height="212.83498"
    id="svg2"
    version="1.1"
-   inkscape:version="0.48.4 r9939"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
    sodipodi:docname="RCUGuaranteeRev.svg">
   <defs
      id="defs4">
@@ -124,19 +124,19 @@
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
      inkscape:zoom="3.614866"
-     inkscape:cx="116.46352"
+     inkscape:cx="115.85782"
      inkscape:cy="106.41749"
      inkscape:document-units="px"
-     inkscape:current-layer="layer2"
+     inkscape:current-layer="layer1"
      showgrid="false"
      fit-margin-top="0.05"
      fit-margin-left="0.05"
      fit-margin-right="0.05"
      fit-margin-bottom="0.05"
-     inkscape:window-width="937"
+     inkscape:window-width="1438"
      inkscape:window-height="1148"
-     inkscape:window-x="420"
-     inkscape:window-y="24"
+     inkscape:window-x="2809"
+     inkscape:window-y="208"
      inkscape:window-maximized="0" />
   <metadata
      id="metadata7">
@@ -186,27 +186,27 @@
            sodipodi:nodetypes="ccc" />
         <text
            xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            x="-837.23907"
            y="132.1207"
            id="text5458"
-           sodipodi:linespacing="125%"
-           transform="matrix(0,-1,1,0,0,0)"><tspan
+           transform="rotate(-90)"><tspan
              sodipodi:role="line"
              x="-837.23907"
              y="132.1207"
-             id="tspan5462">this ordering.</tspan></text>
+             id="tspan5462"
+             style="font-size:8px;line-height:1.25;font-family:sans-serif">this ordering.</tspan></text>
         <text
-           sodipodi:linespacing="125%"
            id="text5466"
            y="891.99835"
            x="54.399769"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            xml:space="preserve"><tspan
              id="tspan5468"
              y="891.99835"
              x="54.399769"
-             sodipodi:role="line">Given this ordering ...</tspan></text>
+             sodipodi:role="line"
+             style="font-size:8px;line-height:1.25;font-family:sans-serif">Given this ordering ...</tspan></text>
         <path
            style="fill:none;stroke:#000000;stroke-width:0.94868332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
            d="M 94.499834,879.27124 104.0701,855.77211"
@@ -214,16 +214,16 @@
            inkscape:connector-curvature="0"
            sodipodi:nodetypes="cc" />
         <text
-           sodipodi:linespacing="125%"
            id="text5466-7"
            y="848.10419"
            x="53.993519"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            xml:space="preserve"><tspan
              id="tspan5468-2"
              y="848.10419"
              x="53.993519"
-             sodipodi:role="line">... RCU guarantees</tspan></text>
+             sodipodi:role="line"
+             style="font-size:8px;line-height:1.25;font-family:sans-serif">... RCU guarantees</tspan></text>
       </g>
     </g>
     <g
@@ -241,13 +241,12 @@
            id="rect4930"
            style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
         <text
-           sodipodi:linespacing="125%"
            id="text4932"
            y="795.81049"
            x="61.421471"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            xml:space="preserve"><tspan
-             style="font-size:6px;text-align:center;text-anchor:middle"
+             style="font-size:6px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
              id="tspan4936"
              y="795.81049"
              x="61.421471"
@@ -266,16 +265,15 @@
            transform="translate(26.663998,740.34064)" />
         <text
            xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            x="61.421471"
            y="795.81049"
-           id="text4948"
-           sodipodi:linespacing="125%"><tspan
+           id="text4948"><tspan
              sodipodi:role="line"
              x="61.421471"
              y="795.81049"
-             style="text-align:center;text-anchor:middle"
-             id="tspan3066">x = 1;</tspan></text>
+             style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
+             id="tspan3066">r1 = x;</tspan></text>
       </g>
       <path
          style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
@@ -300,16 +298,15 @@
            transform="translate(26.663998,740.34064)" />
         <text
            xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            x="61.421471"
            y="795.81049"
-           id="text5352"
-           sodipodi:linespacing="125%"><tspan
+           id="text5352"><tspan
              sodipodi:role="line"
              x="61.421471"
              y="795.81049"
-             style="text-align:center;text-anchor:middle"
-             id="tspan3068">y = 1;</tspan></text>
+             style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
+             id="tspan3068">r2 = y;</tspan></text>
       </g>
       <g
          transform="translate(124,-36.04685)"
@@ -324,16 +321,15 @@
            transform="translate(26.663998,740.34064)" />
         <text
            xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            x="61.421471"
            y="795.81049"
-           id="text5364"
-           sodipodi:linespacing="125%"><tspan
+           id="text5364"><tspan
              sodipodi:role="line"
              x="61.421471"
              y="795.81049"
-             style="text-align:center;text-anchor:middle"
-             id="tspan3070">x = 2;</tspan></text>
+             style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
+             id="tspan3070">x = 1;</tspan></text>
       </g>
       <g
          transform="translate(124,8)"
@@ -347,13 +343,12 @@
            id="rect5372"
            style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
         <text
-           sodipodi:linespacing="125%"
            id="text5374"
            y="795.81049"
            x="61.421471"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            xml:space="preserve"><tspan
-             style="font-size:6px;text-align:center;text-anchor:middle"
+             style="font-size:6px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
              id="tspan5378"
              y="795.81049"
              x="61.421471"
@@ -381,17 +376,16 @@
            id="rect5386"
            style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
         <text
-           sodipodi:linespacing="125%"
            id="text5388"
            y="795.81049"
            x="61.421471"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            xml:space="preserve"><tspan
-             style="text-align:center;text-anchor:middle"
+             style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
              y="795.81049"
              x="61.421471"
              sodipodi:role="line"
-             id="tspan3072">y = 2;</tspan></text>
+             id="tspan3072">y = 1;</tspan></text>
       </g>
       <path
          style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
@@ -411,39 +405,38 @@
            transform="translate(26.663998,740.34064)" />
         <text
            xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
            x="61.421471"
            y="795.81049"
-           id="text3862"
-           sodipodi:linespacing="125%"><tspan
+           id="text3862"><tspan
              sodipodi:role="line"
              x="61.421471"
              y="795.81049"
              id="tspan3864"
-             style="font-size:6px;text-align:center;text-anchor:middle">rcu_read_unlock()</tspan></text>
+             style="font-size:6px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">rcu_read_unlock()</tspan></text>
       </g>
       <text
          xml:space="preserve"
-         style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
          x="13.011486"
          y="784.56586"
-         id="text3259"
-         sodipodi:linespacing="125%"><tspan
+         id="text3259"><tspan
            sodipodi:role="line"
            id="tspan3261"
            x="13.011486"
-           y="784.56586">P0()</tspan></text>
+           y="784.56586"
+           style="font-size:8px;line-height:1.25;font-family:sans-serif">P0()</tspan></text>
     </g>
     <text
        xml:space="preserve"
-       style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:Sans;text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
        x="186.02127"
        y="794.23138"
-       id="text3267"
-       sodipodi:linespacing="125%"><tspan
+       id="text3267"><tspan
          sodipodi:role="line"
          id="tspan3269"
          x="186.02127"
-         y="794.23138">P1()</tspan></text>
+         y="794.23138"
+         style="font-size:8px;line-height:1.25;font-family:sans-serif">P1()</tspan></text>
   </g>
 </svg>
diff --git a/defer/rcufundamental.tex b/defer/rcufundamental.tex
index 1e8fa3b..d8ca411 100644
--- a/defer/rcufundamental.tex
+++ b/defer/rcufundamental.tex
@@ -229,21 +229,23 @@ Figure~\ref{fig:defer:RCU Reader and Later Grace Period}.
 If any portion of a given critical section precedes the beginning of
 a given grace period, then RCU guarantees that all of that critical
 section will precede the end of that grace period.
-In the figure, because \co{P0()}'s access to \co{y} precedes
-\co{P1()}'s access to this same variable, it is guaranteed that
-\co{P0()}'s access to \co{x} will precede \co{P1()}'s access.
-In this case, if \co{y}'s final value is 2, then \co{x}'s
-final value is guaranteed to also be 2.
+In the figure, \co{P0()}'s access to \co{x} precedes \co{P1()}'s access
+to this same variable, and thus also precedes the grace period generated
+by \co{P1()}'s call to \co{synchronize_rcu()}.
+It is therefore guaranteed that \co{P0()}'s access to \co{y} will precede
+\co{P1()}'s access.
+In this case, if \co{r1}'s final value is 0, then \co{r2}'s final value
+is guaranteed to also be 0.
 
 \QuickQuiz{
-	What other final values of \co{x} and \co{y} are possible in
+	What other final values of \co{r1} and \co{r2} are possible in
 	Figure~\ref{fig:defer:RCU Reader and Later Grace Period}?
 }\QuickQuizAnswer{
-	The \co{x == 2 && y == 2} possibility was called out in the text.
-	Given that \co{y == 2} implies \co{x == 2}, we know that
-	\co{x == 1 && y == 2} is forbidden.
+	The \co{r1 == 0 && r2 == 0} possibility was called out in the text.
+	Given that \co{r1 == 0} implies \co{r2 == 0}, we know that
+	\co{r1 == 0 && r2 == 1} is forbidden.
 	The following discussion will show that both
-	\co{x == 1 && y == 1} and \co{x == 2 && y == 1} are possible.
+	\co{r1 == 1 && r2 == 1} and \co{r1 == 1 && r2 == 0} are possible.
 }\QuickQuizEnd
 
 \begin{figure}[tb]
@@ -259,11 +261,23 @@ Figure~\ref{fig:defer:RCU Reader and Earlier Grace Period}.
 If any portion of a given critical section follows the end of
 a given grace period, then RCU guarantees that all of that critical
 section will follow the beginning of that grace period.
-In the figure, because \co{P0()}'s access to \co{y} follows
-\co{P1()}'s access to this same variable, it is guaranteed that
-\co{P0()}'s access to \co{x} will follow \co{P1()}'s access.
-In this case, if \co{y}'s final value is 1, then \co{x}'s
-final value is guaranteed to also be 1.
+In the figure, \co{P0()}'s access to \co{y} follows \co{P1()}'s access
+to this same variable, and thus follows the grace period generated by
+\co{P1()}'s call to \co{synchronize_rcu()}.
+It is therefore guaranteed that \co{P0()}'s access to \co{x} will follow
+\co{P1()}'s access.  In this case, if \co{r2}'s final value is 1, then
+\co{r1}'s final value is guaranteed to also be 1.
+
+\QuickQuiz{
+	What would happen if the order of \co{P0()}'s two accesses was
+	reversed in
+	\cref{fig:defer:RCU Reader and Earlier Grace Period}?
+}\QuickQuizAnswer{
+	Absolutely nothing would change.
+	The fact that \co{P0()}'s loads from \co{x} and \co{y} are
+	in the same RCU read-side critical section suffices;
+	their order is irrelevant.
+}\QuickQuizEnd
 
 \begin{figure}[tb]
 \centering
@@ -276,12 +290,13 @@ Finally, as shown in
 Figure~\ref{fig:defer:RCU Reader Within Grace Period},
 an RCU read-side critical section can be completely overlapped by
 an RCU grace period.
-In this case, \co{x}'s final value is 1 and \co{y}'s final value is 2.
+In this case, \co{r1}'s final value is 1 and \co{r2}'s final value is 0.
 
-However, it cannot be the case that \co{x}'s final value is 2 and \co{y}'s
+However, it cannot be the case that \co{r1}'s final value is 0 and \co{r2}'s
 final value is 1.
 This would mean that an RCU read-side critical section had completely
-overlapped a grace period, which is forbidden.
+overlapped a grace period, which is forbidden (or at the very least
+constitutes a bug in RCU).
 RCU's wait-for-readers guarantee therefore has two parts:
 (1)~If any part of a given RCU read-side critical section precedes
 the beginning of a given grace period, then the entirety of that




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux