summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@kernel.org>2023-09-06 13:20:08 -0700
committerPaul E. McKenney <paulmck@kernel.org>2023-09-06 13:20:08 -0700
commitb3d1cb0e8b3059971a70578b8c8ca77ebe7aa98b (patch)
tree3cad8a7f3035f5adf07434cbfee09bdde3e60dfb
parent3f62bfd47a6204c15c551757721cc935983eb063 (diff)
downloadperfbook-b3d1cb0e8b3059971a70578b8c8ca77ebe7aa98b.tar.gz
defer/rcu: Stop encouraging unmarked access to shared data
Figure 9.11-9.13 show use of data-racy unmarked C-language accesses to shared variables, which is not something that should be encouraged. This commit therefore properly marks them. Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
-rw-r--r--defer/RCUGuaranteeFwd.svg352
-rw-r--r--defer/RCUGuaranteeMid.svg393
-rw-r--r--defer/RCUGuaranteeRev.svg446
3 files changed, 638 insertions, 553 deletions
diff --git a/defer/RCUGuaranteeFwd.svg b/defer/RCUGuaranteeFwd.svg
index 8393f989..ecf8c156 100644
--- a/defer/RCUGuaranteeFwd.svg
+++ b/defer/RCUGuaranteeFwd.svg
@@ -2,19 +2,19 @@
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="235.50583"
- height="272.00000"
+ width="306.37067"
+ height="281.125"
id="svg2"
version="1.1"
- inkscape:version="0.92.3 (2405546, 2018-03-11)"
- sodipodi:docname="RCUGuaranteeFwd.svg">
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ sodipodi:docname="RCUGuaranteeFwd.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs4">
<marker
@@ -40,7 +40,7 @@
style="overflow:visible">
<path
id="path3874"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
inkscape:connector-curvature="0" />
@@ -54,7 +54,7 @@
style="overflow:visible">
<path
id="path3862"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
@@ -68,7 +68,7 @@
style="overflow:visible">
<path
id="path3885"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
@@ -82,7 +82,7 @@
style="overflow:visible">
<path
id="path3888"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.2,0,0,0.2,1.2,0)"
inkscape:connector-curvature="0" />
@@ -96,7 +96,7 @@
style="overflow:visible">
<path
id="path3882"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)"
inkscape:connector-curvature="0" />
@@ -110,7 +110,7 @@
style="overflow:visible">
<path
id="path3876"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.8,0,0,0.8,10,0)"
inkscape:connector-curvature="0" />
@@ -124,20 +124,21 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.7201446"
- inkscape:cx="106.53768"
- inkscape:cy="135.07539"
+ inkscape:cx="123.2479"
+ inkscape:cy="139.77951"
inkscape:document-units="px"
- inkscape:current-layer="layer1"
+ inkscape:current-layer="g5416"
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="1652"
+ fit-margin-top="5"
+ fit-margin-left="5"
+ fit-margin-right="5"
+ fit-margin-bottom="5"
+ inkscape:window-width="2326"
inkscape:window-height="1465"
- inkscape:window-x="2188"
+ inkscape:window-x="1514"
inkscape:window-y="337"
- inkscape:window-maximized="0" />
+ inkscape:window-maximized="0"
+ inkscape:pagecheckerboard="0" />
<metadata
id="metadata7">
<rdf:RDF>
@@ -146,7 +147,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -154,7 +154,7 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
- transform="translate(20.441156,-781.66367)">
+ transform="translate(53.397634,-776.58086)">
<g
inkscape:groupmode="layer"
id="layer2"
@@ -165,13 +165,13 @@
<path
inkscape:connector-curvature="0"
id="path5410"
- 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"
+ d="m 84.217049,797.77689 117.318971,0.13294 0.39212,59.9373"
+ style="fill:none;stroke:#00ff00;stroke-width:15.3268;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:nodetypes="ccc" />
<path
inkscape:connector-curvature="0"
id="path5414"
- d="m 201.92527,856.14207 -31.87817,0.36641 2.93133,1.83208 12.82455,10.99248 z"
+ d="m 217.92527,856.14207 -31.87817,0.36641 2.93133,1.83208 12.82455,10.99248 z"
style="fill:#00ff00;fill-opacity:1;stroke:#00ff00;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:#64c8c8;fill-opacity:1;stroke:#64c8c8;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
@@ -180,35 +180,35 @@
inkscape:connector-curvature="0" />
<path
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"
+ d="m -1.488289,841.58852 -38.797608,-0.2688 -0.105259,129.85639 184.271906,0.25565"
id="path5456"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<text
xml:space="preserve"
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"
+ x="101.40975"
y="800.49298"
id="text5458"><tspan
sodipodi:role="line"
- x="93.409752"
+ x="101.40975"
y="800.49298"
id="tspan5462"
style="font-size:8px;line-height:1.25;font-family:sans-serif">Given this ordering ...</tspan></text>
<text
id="text5466"
y="973.47589"
- x="6.0528007"
+ x="-9.9471989"
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"
+ x="-9.9471989"
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 112.24243,68.219555 59.102431,217.8018"
+ d="M 112.24243,68.219555 43.42895,217.88049"
id="path5470"
inkscape:connector-curvature="0"
transform="translate(26.137646,740.75144)"
@@ -222,210 +222,212 @@
id="g4938"
transform="translate(-6,-40)">
<rect
- transform="translate(26.663998,740.34064)"
- y="40.960808"
- x="6.0236483"
- height="25.299324"
- width="57.827026"
- 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" />
+ style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-0"
+ width="90.785385"
+ height="25.518795"
+ x="-0.27071345"
+ y="780.38611" />
<text
- id="text4932"
- y="795.81049"
- x="61.421471"
+ xml:space="preserve"
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;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
- id="tspan4936"
- y="795.81049"
- x="61.421471"
- sodipodi:role="line">rcu_read_lock()</tspan></text>
+ x="45.225494"
+ y="795.24121"
+ id="text4948-7"><tspan
+ sodipodi:role="line"
+ x="45.225494"
+ y="795.24121"
+ id="tspan4952-0"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">rcu_read_lock();</tspan></text>
</g>
<g
id="g4944"
transform="translate(-6,4)">
<rect
- style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4946"
- width="57.827026"
- height="25.299324"
- x="6.0236483"
- y="40.960808"
+ width="90.785385"
+ height="25.518795"
+ x="-26.934711"
+ y="40.741337"
transform="translate(26.663998,740.34064)" />
<text
xml:space="preserve"
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"
+ x="45.225494"
+ y="795.93317"
id="text4948"><tspan
sodipodi:role="line"
- x="61.421471"
- y="795.81049"
+ x="45.225494"
+ y="795.93317"
id="tspan4952"
- style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">r1 = x;</tspan></text>
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">r1 = READ_ONCE(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)"
- d="m 55.601159,766.60077 0,16.86622"
+ d="m 39.121979,766.60077 v 16.86622"
id="path5150"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path5346"
- d="m 55.601159,810.60077 0,16.86622"
+ d="m 39.121979,810.60077 v 16.86622"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
<g
id="g5348"
- transform="translate(-6,48)">
+ transform="translate(-10.855374,48)">
<rect
- style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
- id="rect5350"
- width="57.827026"
- height="25.299324"
- x="6.0236483"
- y="40.960808"
- transform="translate(26.663998,740.34064)" />
+ style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4"
+ width="90.785385"
+ height="25.518795"
+ x="4.5846601"
+ y="780.96802" />
<text
xml:space="preserve"
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"
+ x="50.311337"
+ y="795.81921"
id="text5352"><tspan
sodipodi:role="line"
- x="61.421471"
- y="795.81049"
+ x="50.311337"
+ y="795.81921"
id="tspan5356"
- style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">r2 = y;</tspan></text>
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">r2 = READ_ONCE(y);</tspan></text>
</g>
<g
- transform="translate(124,89.95315)"
+ transform="translate(121.26143,87.95315)"
id="g5360">
- <rect
- style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
- id="rect5362"
- width="57.827026"
- height="25.299324"
- x="6.0236483"
- y="40.960808"
- transform="translate(26.663998,740.34064)" />
- <text
- xml:space="preserve"
- 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"><tspan
- sodipodi:role="line"
- x="61.421471"
- y="795.81049"
- id="tspan5368"
- 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)"
- id="g5370">
- <rect
- transform="translate(26.663998,740.34064)"
- y="40.960808"
- x="6.0236483"
- height="25.299324"
- width="57.827026"
- 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
- id="text5374"
- y="795.81049"
- x="61.421471"
- 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;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
- id="tspan5378"
- y="795.81049"
- x="61.421471"
- sodipodi:role="line">synchronize_rcu()</tspan></text>
+ <g
+ id="g5348-5"
+ transform="translate(30.841553,1.844585)">
+ <rect
+ style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-8"
+ width="90.785385"
+ height="25.518795"
+ x="4.5846601"
+ y="780.96802" />
+ <text
+ xml:space="preserve"
+ 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="50.311337"
+ y="795.81921"
+ id="text5352-8"><tspan
+ sodipodi:role="line"
+ x="50.311337"
+ y="795.81921"
+ id="tspan5356-4"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">WRITE_ONCE(x, 1);</tspan></text>
+ </g>
</g>
<path
inkscape:connector-curvature="0"
id="path5380"
- d="m 185.60116,896.60077 0,16.86622"
+ d="m 202.08034,896.60077 v 16.86622"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
- d="m 185.60116,940.60077 0,16.86622"
+ d="m 202.08034,940.60077 v 16.86622"
id="path5382"
inkscape:connector-curvature="0" />
- <g
- transform="translate(124,178)"
- id="g5384">
- <rect
- transform="translate(26.663998,740.34064)"
- y="40.960808"
- x="6.0236483"
- height="25.299324"
- width="57.827026"
- 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
- id="text5388"
- y="795.81049"
- x="61.421471"
- 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: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">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)"
- d="m 55.601159,854.60077 0,16.86622"
+ d="m 39.121979,854.60077 v 16.86622"
id="path3854"
inkscape:connector-curvature="0" />
- <g
- transform="translate(-6,92)"
- id="g3858">
- <rect
- style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
- id="rect3860"
- width="57.827026"
- height="25.299324"
- x="6.0236483"
- y="40.960808"
- transform="translate(26.663998,740.34064)" />
- <text
- xml:space="preserve"
- 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"><tspan
- sodipodi:role="line"
- x="61.421471"
- y="795.81049"
- id="tspan3864"
- 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-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"
+ x="39.073151"
y="733.72308"
id="text3251"><tspan
sodipodi:role="line"
id="tspan3253"
- x="56.733543"
+ x="39.073151"
y="733.72308"
style="font-size:8px;line-height:1.25;font-family:sans-serif">P0()</tspan></text>
<text
id="text3255"
y="997.72308"
- x="186.73355"
+ x="202.03151"
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"
+ x="202.03151"
id="tspan3257"
sodipodi:role="line"
style="font-size:8px;line-height:1.25;font-family:sans-serif">P1()</tspan></text>
+ <g
+ id="g4938-7"
+ transform="translate(-6,91.954218)">
+ <rect
+ style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-0-9"
+ width="90.785385"
+ height="25.518795"
+ x="-0.27071345"
+ y="780.38611" />
+ <text
+ xml:space="preserve"
+ 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="45.225494"
+ y="795.24121"
+ id="text4948-7-7"><tspan
+ sodipodi:role="line"
+ x="45.225494"
+ y="795.24121"
+ id="tspan4952-0-6"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">rcu_read_unlock();</tspan></text>
+ </g>
+ <g
+ transform="translate(121.26143,176.05756)"
+ id="g5360-5">
+ <g
+ id="g5348-5-6"
+ transform="translate(30.841553,1.844585)">
+ <rect
+ style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-8-5"
+ width="90.785385"
+ height="25.518795"
+ x="4.5846601"
+ y="780.96802" />
+ <text
+ xml:space="preserve"
+ 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="50.311337"
+ y="795.81921"
+ id="text5352-8-6"><tspan
+ sodipodi:role="line"
+ x="50.311337"
+ y="795.81921"
+ id="tspan5356-4-8"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">WRITE_ONCE(y, 1);</tspan></text>
+ </g>
+ </g>
+ <g
+ id="g4938-7-4"
+ transform="translate(156.95836,135.26032)">
+ <rect
+ style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-0-9-8"
+ width="90.785385"
+ height="25.518795"
+ x="-0.27071345"
+ y="780.38611" />
+ <text
+ xml:space="preserve"
+ 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="45.225494"
+ y="795.24121"
+ id="text4948-7-7-8"><tspan
+ sodipodi:role="line"
+ x="45.225494"
+ y="795.24121"
+ id="tspan4952-0-6-3"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">synchronize_rcu();</tspan></text>
+ </g>
</g>
</g>
</svg>
diff --git a/defer/RCUGuaranteeMid.svg b/defer/RCUGuaranteeMid.svg
index f3436326..5b721478 100644
--- a/defer/RCUGuaranteeMid.svg
+++ b/defer/RCUGuaranteeMid.svg
@@ -2,21 +2,43 @@
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="242.82703"
- height="266.8678"
+ width="308.78021"
+ height="271.41113"
id="svg2"
version="1.1"
- inkscape:version="0.92.3 (2405546, 2018-03-11)"
- sodipodi:docname="RCUGuaranteeMid.svg">
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ sodipodi:docname="RCUGuaranteeMid.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs4">
+ <inkscape:path-effect
+ effect="bspline"
+ id="path-effect1270"
+ is_visible="true"
+ lpeversion="1"
+ weight="33.333333"
+ steps="2"
+ helper_size="0"
+ apply_no_weight="true"
+ apply_with_weight="true"
+ only_selected="false" />
+ <inkscape:path-effect
+ effect="bspline"
+ id="path-effect1266"
+ is_visible="true"
+ lpeversion="1"
+ weight="33.333333"
+ steps="2"
+ helper_size="0"
+ apply_no_weight="true"
+ apply_with_weight="true"
+ only_selected="false" />
<marker
inkscape:stockid="Arrow2Send"
orient="auto"
@@ -40,7 +62,7 @@
style="overflow:visible">
<path
id="path3874"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
inkscape:connector-curvature="0" />
@@ -54,7 +76,7 @@
style="overflow:visible">
<path
id="path3862"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
@@ -68,7 +90,7 @@
style="overflow:visible">
<path
id="path3885"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
@@ -82,7 +104,7 @@
style="overflow:visible">
<path
id="path3888"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.2,0,0,0.2,1.2,0)"
inkscape:connector-curvature="0" />
@@ -96,7 +118,7 @@
style="overflow:visible">
<path
id="path3882"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)"
inkscape:connector-curvature="0" />
@@ -110,7 +132,7 @@
style="overflow:visible">
<path
id="path3876"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.8,0,0,0.8,10,0)"
inkscape:connector-curvature="0" />
@@ -124,7 +146,7 @@
style="overflow:visible">
<path
id="path3885-6"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
@@ -138,7 +160,7 @@
style="overflow:visible">
<path
id="path3885-3"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
@@ -152,7 +174,7 @@
style="overflow:visible">
<path
id="path3885-2"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
@@ -166,20 +188,21 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.4674888"
- inkscape:cx="125.71437"
- inkscape:cy="133.4339"
+ inkscape:cx="159.33721"
+ inkscape:cy="133.38183"
inkscape:document-units="px"
- inkscape:current-layer="layer1"
+ inkscape:current-layer="g5416"
showgrid="false"
fit-margin-top="5"
fit-margin-left="5"
fit-margin-right="5"
fit-margin-bottom="5"
- inkscape:window-width="1381"
+ inkscape:window-width="2224"
inkscape:window-height="1484"
- inkscape:window-x="2445"
+ inkscape:window-x="1602"
inkscape:window-y="403"
- inkscape:window-maximized="0">
+ inkscape:window-maximized="0"
+ inkscape:pagecheckerboard="0">
<inkscape:grid
type="xygrid"
id="grid3960"
@@ -187,8 +210,8 @@
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
- originx="-2.6202392e-07"
- originy="14.377359"
+ originx="33.719383"
+ originy="14.377357"
spacingx="1"
spacingy="1" />
</sodipodi:namedview>
@@ -200,7 +223,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -208,7 +230,7 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
- transform="translate(22.812354,-783.16107)">
+ transform="translate(56.531737,-783.16107)">
<g
inkscape:groupmode="layer"
id="layer2"
@@ -220,7 +242,7 @@
inkscape:connector-curvature="0"
id="path5410"
d="m 156.21652,758.06766 -25.6982,0.32748 -0.38479,86.55125 -77.839262,0.39552"
- style="fill:none;stroke:#00ff00;stroke-width:15.3268261;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ style="fill:none;stroke:#00ff00;stroke-width:15.3268;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:nodetypes="cccc" />
<path
inkscape:connector-curvature="0"
@@ -233,8 +255,8 @@
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 146.7381,978.20321 -27.79961,0.11706 0.18419,-88.73732 -78.656897,-0.003"
+ 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 146.7381,978.20321 -27.79961,0.11706 0.18419,-88.73732 -80.358952,-0.0615"
id="path5456"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
@@ -250,7 +272,7 @@
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)"
+ style="fill:none;stroke:#000000;stroke-width:0.948683px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
d="M 88.499834,855.13067 98.0701,878.6298"
id="path5470"
inkscape:connector-curvature="0"
@@ -274,209 +296,212 @@
<path
inkscape:connector-curvature="0"
id="path5380-9"
- d="m 185.60116,946.23118 0,16.86622"
+ d="M 196.0701,946.23118 V 963.0974"
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="M -5.6390443,814.31178 V 831.178"
+ id="path5150"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path5346"
+ d="M -5.6390443,858.31178 V 875.178"
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path5380"
+ d="m 196.0701,770.60077 v 16.86622"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="M -5.6390443,902.31178 V 919.178"
+ id="path3854"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ 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="-5.6878724"
+ y="784.27686"
+ id="text3259"><tspan
+ sodipodi:role="line"
+ id="tspan3261"
+ x="-5.6878724"
+ y="784.27686"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif">P0()</tspan></text>
<g
id="g4938"
- transform="translate(-50,8)">
+ transform="translate(-50.761023,8.8689084)">
<rect
- transform="translate(26.663998,740.34064)"
- y="40.960808"
- x="6.0236483"
- height="25.299324"
- width="57.827026"
- 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" />
+ style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-0"
+ width="90.785385"
+ height="25.518795"
+ x="-0.27071345"
+ y="780.38611" />
<text
- id="text4932"
- y="795.81049"
- x="61.421471"
+ xml:space="preserve"
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;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
- id="tspan4936"
- y="795.81049"
- x="61.421471"
- sodipodi:role="line">rcu_read_lock()</tspan></text>
+ x="45.225494"
+ y="795.24121"
+ id="text4948-7"><tspan
+ sodipodi:role="line"
+ x="45.225494"
+ y="795.24121"
+ id="tspan4952-0"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">rcu_read_lock();</tspan></text>
</g>
<g
id="g4944"
- transform="translate(-50,52)">
+ transform="translate(-50.761023,52.868908)">
<rect
- style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4946"
- width="57.827026"
- height="25.299324"
- x="6.0236483"
- y="40.960808"
+ width="90.785385"
+ height="25.518795"
+ x="-26.934711"
+ y="40.741337"
transform="translate(26.663998,740.34064)" />
<text
xml:space="preserve"
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"
+ x="45.225494"
+ y="795.93317"
id="text4948"><tspan
sodipodi:role="line"
- x="61.421471"
- y="795.81049"
- style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
- id="tspan3066">r1 = x;</tspan></text>
+ x="45.225494"
+ y="795.93317"
+ id="tspan4952"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">r1 = READ_ONCE(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)"
- d="m 11.601159,814.60077 0,16.86622"
- id="path5150"
- inkscape:connector-curvature="0" />
- <path
- inkscape:connector-curvature="0"
- id="path5346"
- d="m 11.601159,858.60077 0,16.86622"
- style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
<g
id="g5348"
- transform="translate(-50,96)">
+ transform="translate(-55.616397,96.868908)">
<rect
- style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
- id="rect5350"
- width="57.827026"
- height="25.299324"
- x="6.0236483"
- y="40.960808"
- transform="translate(26.663998,740.34064)" />
+ style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4"
+ width="90.785385"
+ height="25.518795"
+ x="4.5846601"
+ y="780.96802" />
<text
xml:space="preserve"
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"
+ x="50.311337"
+ y="795.81921"
id="text5352"><tspan
sodipodi:role="line"
- x="61.421471"
- y="795.81049"
- style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
- id="tspan3068">r2 = y;</tspan></text>
+ x="50.311337"
+ y="795.81921"
+ id="tspan5356"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">r2 = READ_ONCE(y);</tspan></text>
</g>
<g
- transform="translate(124,-36.04685)"
- id="g5360">
+ id="g4938-7"
+ transform="translate(-50.761023,140.82313)">
<rect
- style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
- id="rect5362"
- width="57.827026"
- height="25.299324"
- x="6.0236483"
- y="40.960808"
- transform="translate(26.663998,740.34064)" />
+ style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-0-9"
+ width="90.785385"
+ height="25.518795"
+ x="-0.27071345"
+ y="780.38611" />
<text
xml:space="preserve"
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"><tspan
+ x="45.225494"
+ y="795.24121"
+ id="text4948-7-7"><tspan
sodipodi:role="line"
- x="61.421471"
- y="795.81049"
- style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
- id="tspan3070">x = 1;</tspan></text>
+ x="45.225494"
+ y="795.24121"
+ id="tspan4952-0-6"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">rcu_read_unlock();</tspan></text>
</g>
<g
- transform="translate(124,8)"
- id="g5370">
- <rect
- transform="translate(26.663998,740.34064)"
- y="40.960808"
- x="6.0236483"
- height="157.71037"
- width="57.230358"
- 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
- id="text5374"
- y="795.81049"
- x="61.421471"
- 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;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
- id="tspan5378"
- y="795.81049"
- x="61.421471"
- sodipodi:role="line">synchronize_rcu()</tspan></text>
+ transform="translate(120.53686,-36.98029)"
+ id="g5360">
+ <g
+ id="g5348-5"
+ transform="translate(30.841553,1.844585)">
+ <rect
+ style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-8"
+ width="90.785385"
+ height="25.518795"
+ x="4.5846601"
+ y="780.96802" />
+ <text
+ xml:space="preserve"
+ 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="50.311337"
+ y="795.81921"
+ id="text5352-8"><tspan
+ sodipodi:role="line"
+ x="50.311337"
+ y="795.81921"
+ id="tspan5356-4"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">WRITE_ONCE(x, 1);</tspan></text>
+ </g>
</g>
- <path
- inkscape:connector-curvature="0"
- id="path5380"
- d="m 185.60116,770.60077 0,16.86622"
- style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
<g
- transform="translate(124,96)"
- id="g5384">
- <rect
- y="869.30145"
- x="32.687645"
- height="25.299324"
- width="57.827026"
- 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
- id="text5388"
- y="883.81049"
- x="61.421471"
- 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: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 = 1;</tspan></text>
+ transform="translate(120.53686,181.12412)"
+ id="g5360-5">
+ <g
+ id="g5348-5-6"
+ transform="translate(30.841553,1.844585)">
+ <rect
+ style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-8-5"
+ width="90.785385"
+ height="25.518795"
+ x="4.5846601"
+ y="780.96802" />
+ <text
+ xml:space="preserve"
+ 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="50.311337"
+ y="795.81921"
+ id="text5352-8-6"><tspan
+ sodipodi:role="line"
+ x="50.311337"
+ y="795.81921"
+ id="tspan5356-4-8"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">WRITE_ONCE(y, 1);</tspan></text>
+ </g>
</g>
- <path
- style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
- d="m 11.601159,902.60077 0,16.86622"
- id="path3854"
- inkscape:connector-curvature="0" />
<g
- transform="translate(-50,140)"
- id="g3858">
+ id="g4938-7-4"
+ transform="translate(156.23379,140.32688)">
<rect
- style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
- id="rect3860"
- width="57.827026"
- height="25.299324"
- x="6.0236483"
- y="40.960808"
- transform="translate(26.663998,740.34064)" />
+ style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-0-9-8"
+ width="90.570572"
+ height="156.38358"
+ x="-0.055897169"
+ y="649.5213" />
<text
xml:space="preserve"
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"><tspan
+ x="45.225494"
+ y="729.80878"
+ id="text4948-7-7-8"><tspan
sodipodi:role="line"
- x="61.421471"
- y="795.81049"
- id="tspan3864"
- style="font-size:6px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">rcu_read_unlock()</tspan></text>
+ x="45.225494"
+ y="729.80878"
+ id="tspan4952-0-6-3"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">synchronize_rcu();</tspan></text>
</g>
- <text
- xml:space="preserve"
- 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"><tspan
- sodipodi:role="line"
- id="tspan3261"
- x="13.011486"
- 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-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"
+ x="196.02127"
y="794.23138"
id="text3267"><tspan
sodipodi:role="line"
id="tspan3269"
- x="186.02127"
+ x="196.02127"
y="794.23138"
style="font-size:8px;line-height:1.25;font-family:sans-serif">P1()</tspan></text>
</g>
diff --git a/defer/RCUGuaranteeRev.svg b/defer/RCUGuaranteeRev.svg
index fa708ee9..191a751a 100644
--- a/defer/RCUGuaranteeRev.svg
+++ b/defer/RCUGuaranteeRev.svg
@@ -2,19 +2,19 @@
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="232.92703"
- height="212.83498"
+ width="303.32501"
+ height="223.40041"
id="svg2"
version="1.1"
- inkscape:version="0.92.3 (2405546, 2018-03-11)"
- sodipodi:docname="RCUGuaranteeRev.svg">
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ sodipodi:docname="RCUGuaranteeRev.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs4">
<marker
@@ -40,7 +40,7 @@
style="overflow:visible">
<path
id="path3874"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
inkscape:connector-curvature="0" />
@@ -54,7 +54,7 @@
style="overflow:visible">
<path
id="path3862"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
@@ -68,7 +68,7 @@
style="overflow:visible">
<path
id="path3885"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
@@ -82,7 +82,7 @@
style="overflow:visible">
<path
id="path3888"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.2,0,0,0.2,1.2,0)"
inkscape:connector-curvature="0" />
@@ -96,7 +96,7 @@
style="overflow:visible">
<path
id="path3882"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.4,0,0,0.4,4,0)"
inkscape:connector-curvature="0" />
@@ -110,11 +110,67 @@
style="overflow:visible">
<path
id="path3876"
- d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
transform="matrix(0.8,0,0,0.8,10,0)"
inkscape:connector-curvature="0" />
</marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-1"
+ style="overflow:visible">
+ <path
+ id="path3885-4"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker939"
+ style="overflow:visible">
+ <path
+ id="path937"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Mend-1-6"
+ style="overflow:visible">
+ <path
+ id="path3885-4-8"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker1092"
+ style="overflow:visible">
+ <path
+ id="path1090"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
</defs>
<sodipodi:namedview
id="base"
@@ -124,20 +180,21 @@
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.614866"
- inkscape:cx="115.85782"
- inkscape:cy="106.41749"
+ inkscape:cx="113.28221"
+ inkscape:cy="111.34576"
inkscape:document-units="px"
- inkscape:current-layer="layer1"
+ inkscape:current-layer="g5416"
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="1438"
- inkscape:window-height="1148"
- inkscape:window-x="2809"
+ fit-margin-top="5"
+ fit-margin-left="5"
+ fit-margin-right="5"
+ fit-margin-bottom="5"
+ inkscape:window-width="2322"
+ inkscape:window-height="1216"
+ inkscape:window-x="1518"
inkscape:window-y="208"
- inkscape:window-maximized="0" />
+ inkscape:window-maximized="0"
+ inkscape:pagecheckerboard="0" />
<metadata
id="metadata7">
<rdf:RDF>
@@ -146,7 +203,6 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -154,7 +210,7 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
- transform="translate(17.862354,-788.24388)">
+ transform="translate(56.732124,-783.16107)">
<g
inkscape:groupmode="layer"
id="layer2"
@@ -166,7 +222,7 @@
inkscape:connector-curvature="0"
id="path5410"
d="m 156.21652,758.06766 -25.6982,0.32748 -0.38479,86.55125 -77.839262,0.39552"
- style="fill:none;stroke:#64c8c8;stroke-width:15.32682609999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ style="fill:none;stroke:#64c8c8;stroke-width:15.3268;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
sodipodi:nodetypes="cccc" />
<path
inkscape:connector-curvature="0"
@@ -179,8 +235,8 @@
id="path5450"
inkscape:connector-curvature="0" />
<path
- style="fill:none;stroke:#00ff00;stroke-width:16;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="m 186.23819,857.94421 -0.0773,31.64174 -135.182961,-0.28288"
+ style="fill:none;stroke:#00ff00;stroke-width:16;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 196.06564,858.42424 -0.15078,31.10197 -144.936931,-0.22314"
id="path5456"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
@@ -208,8 +264,8 @@
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"
+ style="fill:none;stroke:#000000;stroke-width:0.948683px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="M 88.499834,879.27124 98.0701,855.77211"
id="path5470"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
@@ -229,214 +285,216 @@
<g
transform="translate(0,53.928085)"
id="g3022">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="m -5.8394311,814.60077 v 16.86622"
+ id="path5150"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path5346"
+ d="m -5.8394311,858.60077 v 16.86622"
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="m -5.8394311,902.60077 v 16.86622"
+ id="path3854"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ 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="-5.8882594"
+ y="784.56586"
+ id="text3259"><tspan
+ sodipodi:role="line"
+ id="tspan3261"
+ x="-5.8882594"
+ y="784.56586"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif">P0()</tspan></text>
<g
id="g4938"
- transform="translate(-50,8)">
+ transform="translate(-50.96141,9.2742682)">
<rect
- transform="translate(26.663998,740.34064)"
- y="40.960808"
- x="6.0236483"
- height="25.299324"
- width="57.827026"
- 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" />
+ style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-0"
+ width="90.785385"
+ height="25.518795"
+ x="-0.27071345"
+ y="780.38611" />
<text
- id="text4932"
- y="795.81049"
- x="61.421471"
+ xml:space="preserve"
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;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
- id="tspan4936"
- y="795.81049"
- x="61.421471"
- sodipodi:role="line">rcu_read_lock()</tspan></text>
+ x="45.225494"
+ y="795.24121"
+ id="text4948-7"><tspan
+ sodipodi:role="line"
+ x="45.225494"
+ y="795.24121"
+ id="tspan4952-0"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">rcu_read_lock();</tspan></text>
</g>
<g
id="g4944"
- transform="translate(-50,52)">
+ transform="translate(-50.96141,53.274268)">
<rect
- style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4946"
- width="57.827026"
- height="25.299324"
- x="6.0236483"
- y="40.960808"
+ width="90.785385"
+ height="25.518795"
+ x="-26.934711"
+ y="40.741337"
transform="translate(26.663998,740.34064)" />
<text
xml:space="preserve"
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"
+ x="45.225494"
+ y="795.93317"
id="text4948"><tspan
sodipodi:role="line"
- x="61.421471"
- y="795.81049"
- style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
- id="tspan3066">r1 = x;</tspan></text>
+ x="45.225494"
+ y="795.93317"
+ id="tspan4952"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">r1 = READ_ONCE(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)"
- d="m 11.601159,814.60077 0,16.86622"
- id="path5150"
- inkscape:connector-curvature="0" />
- <path
- inkscape:connector-curvature="0"
- id="path5346"
- d="m 11.601159,858.60077 0,16.86622"
- style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
<g
id="g5348"
- transform="translate(-50,96)">
+ transform="translate(-55.816784,97.274268)">
<rect
- style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
- id="rect5350"
- width="57.827026"
- height="25.299324"
- x="6.0236483"
- y="40.960808"
- transform="translate(26.663998,740.34064)" />
+ style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4"
+ width="90.785385"
+ height="25.518795"
+ x="4.5846601"
+ y="780.96802" />
<text
xml:space="preserve"
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"
+ x="50.311337"
+ y="795.81921"
id="text5352"><tspan
sodipodi:role="line"
- x="61.421471"
- y="795.81049"
- style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
- id="tspan3068">r2 = y;</tspan></text>
+ x="50.311337"
+ y="795.81921"
+ id="tspan5356"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">r2 = READ_ONCE(y);</tspan></text>
</g>
<g
- transform="translate(124,-36.04685)"
- id="g5360">
+ id="g4938-7"
+ transform="translate(-50.96141,141.22849)">
<rect
- style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
- id="rect5362"
- width="57.827026"
- height="25.299324"
- x="6.0236483"
- y="40.960808"
- transform="translate(26.663998,740.34064)" />
+ style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-0-9"
+ width="90.785385"
+ height="25.518795"
+ x="-0.27071345"
+ y="780.38611" />
<text
xml:space="preserve"
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"><tspan
+ x="45.225494"
+ y="795.24121"
+ id="text4948-7-7"><tspan
sodipodi:role="line"
- x="61.421471"
- y="795.81049"
- style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
- id="tspan3070">x = 1;</tspan></text>
+ x="45.225494"
+ y="795.24121"
+ id="tspan4952-0-6"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">rcu_read_unlock();</tspan></text>
</g>
+ </g>
+ <text
+ xml:space="preserve"
+ 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="195.65137"
+ y="794.23138"
+ id="text3267"><tspan
+ sodipodi:role="line"
+ id="tspan3269"
+ x="195.65137"
+ y="794.23138"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif">P1()</tspan></text>
+ <g
+ transform="translate(114.88129,15.965458)"
+ id="g5360-6">
<g
- transform="translate(124,8)"
- id="g5370">
- <rect
- transform="translate(26.663998,740.34064)"
- y="40.960808"
- x="6.0236483"
- height="25.299324"
- width="57.827026"
- 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
- id="text5374"
- y="795.81049"
- x="61.421471"
- 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;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
- id="tspan5378"
- y="795.81049"
- x="61.421471"
- sodipodi:role="line">synchronize_rcu()</tspan></text>
- </g>
- <path
- inkscape:connector-curvature="0"
- id="path5380"
- d="m 185.60116,770.60077 0,16.86622"
- style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)" />
- <path
- style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
- d="m 185.60116,814.60077 0,16.86622"
- id="path5382"
- inkscape:connector-curvature="0" />
- <g
- transform="translate(124,52)"
- id="g5384">
+ id="g5348-5"
+ transform="translate(30.841553,1.844585)">
<rect
- transform="translate(26.663998,740.34064)"
- y="40.960808"
- x="6.0236483"
- height="25.299324"
- width="57.827026"
- 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" />
+ style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-8"
+ width="90.785385"
+ height="25.518795"
+ x="4.5846601"
+ y="780.96802" />
<text
- id="text5388"
- y="795.81049"
- x="61.421471"
+ xml:space="preserve"
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:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle"
- y="795.81049"
- x="61.421471"
+ x="50.311337"
+ y="795.81921"
+ id="text5352-8"><tspan
sodipodi:role="line"
- id="tspan3072">y = 1;</tspan></text>
+ x="50.311337"
+ y="795.81921"
+ id="tspan5356-4"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">WRITE_ONCE(x, 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)"
- d="m 11.601159,902.60077 0,16.86622"
- id="path3854"
- inkscape:connector-curvature="0" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ id="path5380-9"
+ d="M 195.7002,824.61308 V 841.4793"
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend-1-6)" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend-1-6)"
+ d="M 195.7002,868.61308 V 885.4793"
+ id="path5382-4"
+ inkscape:connector-curvature="0" />
+ <g
+ transform="translate(114.88129,104.06987)"
+ id="g5360-5">
<g
- transform="translate(-50,140)"
- id="g3858">
+ id="g5348-5-6"
+ transform="translate(30.841553,1.844585)">
<rect
- style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
- id="rect3860"
- width="57.827026"
- height="25.299324"
- x="6.0236483"
- y="40.960808"
- transform="translate(26.663998,740.34064)" />
+ style="fill:#96c8fe;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-8-5"
+ width="90.785385"
+ height="25.518795"
+ x="4.5846601"
+ y="780.96802" />
<text
xml:space="preserve"
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"><tspan
+ x="50.311337"
+ y="795.81921"
+ id="text5352-8-6"><tspan
sodipodi:role="line"
- x="61.421471"
- y="795.81049"
- id="tspan3864"
- style="font-size:6px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">rcu_read_unlock()</tspan></text>
+ x="50.311337"
+ y="795.81921"
+ id="tspan5356-4-8"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">WRITE_ONCE(y, 1);</tspan></text>
</g>
+ </g>
+ <g
+ id="g4938-7-4"
+ transform="translate(150.57822,63.27263)">
+ <rect
+ style="fill:#fe9696;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4946-4-0-9-8"
+ width="90.785385"
+ height="25.518795"
+ x="-0.27071345"
+ y="780.38611" />
<text
xml:space="preserve"
- 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"><tspan
+ 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="45.225494"
+ y="795.24121"
+ id="text4948-7-7-8"><tspan
sodipodi:role="line"
- id="tspan3261"
- x="13.011486"
- y="784.56586"
- style="font-size:8px;line-height:1.25;font-family:sans-serif">P0()</tspan></text>
+ x="45.225494"
+ y="795.24121"
+ id="tspan4952-0-6-3"
+ style="font-size:8px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle">synchronize_rcu();</tspan></text>
</g>
- <text
- xml:space="preserve"
- 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"><tspan
- sodipodi:role="line"
- id="tspan3269"
- x="186.02127"
- y="794.23138"
- style="font-size:8px;line-height:1.25;font-family:sans-serif">P1()</tspan></text>
</g>
</svg>