diff options
author | Paul E. McKenney <paulmck@kernel.org> | 2023-09-06 13:20:08 -0700 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2023-09-06 13:20:08 -0700 |
commit | b3d1cb0e8b3059971a70578b8c8ca77ebe7aa98b (patch) | |
tree | 3cad8a7f3035f5adf07434cbfee09bdde3e60dfb | |
parent | 3f62bfd47a6204c15c551757721cc935983eb063 (diff) | |
download | perfbook-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.svg | 352 | ||||
-rw-r--r-- | defer/RCUGuaranteeMid.svg | 393 | ||||
-rw-r--r-- | defer/RCUGuaranteeRev.svg | 446 |
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> |