xref: /linux/Documentation/RCU/Design/Requirements/GPpartitionReaders1.svg (revision e5c86679d5e864947a52fb31e45a425dea3e7fa9)
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
4<svg
5   xmlns:dc="http://purl.org/dc/elements/1.1/"
6   xmlns:cc="http://creativecommons.org/ns#"
7   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8   xmlns:svg="http://www.w3.org/2000/svg"
9   xmlns="http://www.w3.org/2000/svg"
10   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12   width="447.99197"
13   height="428.19299"
14   id="svg2"
15   version="1.1"
16   inkscape:version="0.48.3.1 r9886"
17   sodipodi:docname="GPpartitionReaders1.svg">
18  <defs
19     id="defs4">
20    <marker
21       inkscape:stockid="Arrow2Lend"
22       orient="auto"
23       refY="0"
24       refX="0"
25       id="Arrow2Lend"
26       style="overflow:visible">
27      <path
28         id="path3792"
29         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
30         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
31         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
32         inkscape:connector-curvature="0" />
33    </marker>
34    <marker
35       inkscape:stockid="Arrow2Lstart"
36       orient="auto"
37       refY="0"
38       refX="0"
39       id="Arrow2Lstart"
40       style="overflow:visible">
41      <path
42         id="path3789"
43         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
44         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
45         transform="matrix(1.1,0,0,1.1,1.1,0)"
46         inkscape:connector-curvature="0" />
47    </marker>
48  </defs>
49  <sodipodi:namedview
50     id="base"
51     pagecolor="#ffffff"
52     bordercolor="#666666"
53     borderopacity="1.0"
54     inkscape:pageopacity="0.0"
55     inkscape:pageshadow="2"
56     inkscape:zoom="1.6184291"
57     inkscape:cx="223.99599"
58     inkscape:cy="214.0965"
59     inkscape:document-units="px"
60     inkscape:current-layer="layer1"
61     showgrid="false"
62     inkscape:window-width="979"
63     inkscape:window-height="836"
64     inkscape:window-x="571"
65     inkscape:window-y="335"
66     inkscape:window-maximized="0"
67     fit-margin-top="5"
68     fit-margin-left="5"
69     fit-margin-right="5"
70     fit-margin-bottom="5" />
71  <metadata
72     id="metadata7">
73    <rdf:RDF>
74      <cc:Work
75         rdf:about="">
76        <dc:format>image/svg+xml</dc:format>
77        <dc:type
78           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
79        <dc:title></dc:title>
80      </cc:Work>
81    </rdf:RDF>
82  </metadata>
83  <g
84     inkscape:label="Layer 1"
85     inkscape:groupmode="layer"
86     id="layer1"
87     transform="translate(-28.441125,-185.60612)">
88    <flowRoot
89       xml:space="preserve"
90       id="flowRoot2985"
91       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"><flowRegion
92         id="flowRegion2987"><rect
93           id="rect2989"
94           width="82.85714"
95           height="11.428572"
96           x="240"
97           y="492.36218" /></flowRegion><flowPara
98         id="flowPara2991"></flowPara></flowRoot>    <g
99       id="g4433"
100       transform="translate(2,0)">
101      <text
102         sodipodi:linespacing="125%"
103         id="text2993"
104         y="-261.66608"
105         x="412.12299"
106         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
107         xml:space="preserve"
108         transform="matrix(0,1,-1,0,0,0)"><tspan
109           y="-261.66608"
110           x="412.12299"
111           id="tspan2995"
112           sodipodi:role="line">synchronize_rcu()</tspan></text>
113      <g
114         id="g4417"
115         transform="matrix(0,1,-1,0,730.90257,222.4928)">
116        <path
117           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Lstart);marker-end:url(#Arrow2Lend)"
118           d="m 97.580736,477.4048 183.140664,0"
119           id="path2997"
120           inkscape:connector-curvature="0"
121           sodipodi:nodetypes="cc" />
122        <path
123           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
124           d="m 96.752718,465.38398 0,22.62742"
125           id="path4397"
126           inkscape:connector-curvature="0"
127           sodipodi:nodetypes="cc" />
128        <path
129           style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
130           d="m 281.54942,465.38397 0,22.62742"
131           id="path4397-5"
132           inkscape:connector-curvature="0"
133           sodipodi:nodetypes="cc" />
134      </g>
135    </g>
136    <text
137       xml:space="preserve"
138       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
139       x="112.04738"
140       y="268.18076"
141       id="text4429"
142       sodipodi:linespacing="125%"><tspan
143         sodipodi:role="line"
144         id="tspan4431"
145         x="112.04738"
146         y="268.18076">WRITE_ONCE(a, 1);</tspan></text>
147    <text
148       xml:space="preserve"
149       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
150       x="112.04738"
151       y="439.13766"
152       id="text4441"
153       sodipodi:linespacing="125%"><tspan
154         sodipodi:role="line"
155         id="tspan4443"
156         x="112.04738"
157         y="439.13766">WRITE_ONCE(b, 1);</tspan></text>
158    <text
159       xml:space="preserve"
160       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
161       x="255.60869"
162       y="309.29346"
163       id="text4445"
164       sodipodi:linespacing="125%"><tspan
165         sodipodi:role="line"
166         id="tspan4447"
167         x="255.60869"
168         y="309.29346">r1 = READ_ONCE(a);</tspan></text>
169    <text
170       xml:space="preserve"
171       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
172       x="255.14423"
173       y="520.61786"
174       id="text4449"
175       sodipodi:linespacing="125%"><tspan
176         sodipodi:role="line"
177         id="tspan4451"
178         x="255.14423"
179         y="520.61786">WRITE_ONCE(c, 1);</tspan></text>
180    <text
181       xml:space="preserve"
182       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
183       x="396.10254"
184       y="384.71124"
185       id="text4453"
186       sodipodi:linespacing="125%"><tspan
187         sodipodi:role="line"
188         id="tspan4455"
189         x="396.10254"
190         y="384.71124">r2 = READ_ONCE(b);</tspan></text>
191    <text
192       xml:space="preserve"
193       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
194       x="396.10254"
195       y="582.13617"
196       id="text4457"
197       sodipodi:linespacing="125%"><tspan
198         sodipodi:role="line"
199         id="tspan4459"
200         x="396.10254"
201         y="582.13617">r3 = READ_ONCE(c);</tspan></text>
202    <text
203       xml:space="preserve"
204       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
205       x="112.08231"
206       y="213.91006"
207       id="text4461"
208       sodipodi:linespacing="125%"><tspan
209         sodipodi:role="line"
210         id="tspan4463"
211         x="112.08231"
212         y="213.91006">thread0()</tspan></text>
213    <text
214       xml:space="preserve"
215       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
216       x="252.34512"
217       y="213.91006"
218       id="text4461-6"
219       sodipodi:linespacing="125%"><tspan
220         sodipodi:role="line"
221         id="tspan4463-0"
222         x="252.34512"
223         y="213.91006">thread1()</tspan></text>
224    <text
225       xml:space="preserve"
226       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
227       x="396.42557"
228       y="213.91006"
229       id="text4461-2"
230       sodipodi:linespacing="125%"><tspan
231         sodipodi:role="line"
232         id="tspan4463-2"
233         x="396.42557"
234         y="213.91006">thread2()</tspan></text>
235    <rect
236       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
237       id="rect4495"
238       width="436.28488"
239       height="416.4859"
240       x="34.648232"
241       y="191.10612" />
242    <path
243       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
244       d="m 183.14066,191.10612 0,417.193 -0.70711,0"
245       id="path4497"
246       inkscape:connector-curvature="0" />
247    <path
248       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
249       d="m 325.13867,191.10612 0,417.193 -0.70711,0"
250       id="path4497-5"
251       inkscape:connector-curvature="0" />
252    <text
253       xml:space="preserve"
254       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
255       x="111.75929"
256       y="251.53981"
257       id="text4429-8"
258       sodipodi:linespacing="125%"><tspan
259         sodipodi:role="line"
260         id="tspan4431-9"
261         x="111.75929"
262         y="251.53981">rcu_read_lock();</tspan></text>
263    <text
264       xml:space="preserve"
265       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
266       x="396.10254"
267       y="367.91556"
268       id="text4429-8-9"
269       sodipodi:linespacing="125%"><tspan
270         sodipodi:role="line"
271         id="tspan4431-9-4"
272         x="396.10254"
273         y="367.91556">rcu_read_lock();</tspan></text>
274    <text
275       xml:space="preserve"
276       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
277       x="396.10254"
278       y="597.40289"
279       id="text4429-8-9-3"
280       sodipodi:linespacing="125%"><tspan
281         sodipodi:role="line"
282         id="tspan4431-9-4-4"
283         x="396.10254"
284         y="597.40289">rcu_read_unlock();</tspan></text>
285    <text
286       xml:space="preserve"
287       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
288       x="111.75929"
289       y="453.15311"
290       id="text4429-8-9-3-1"
291       sodipodi:linespacing="125%"><tspan
292         sodipodi:role="line"
293         id="tspan4431-9-4-4-6"
294         x="111.75929"
295         y="453.15311">rcu_read_unlock();</tspan></text>
296    <path
297       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
298       d="m 33.941125,227.87568 436.284885,0 0,0.7071"
299       id="path4608"
300       inkscape:connector-curvature="0" />
301    <text
302       xml:space="preserve"
303       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
304       x="394.94427"
305       y="345.66351"
306       id="text4648"
307       sodipodi:linespacing="125%"><tspan
308         sodipodi:role="line"
309         id="tspan4650"
310         x="394.94427"
311         y="345.66351">QS</tspan></text>
312    <path
313       sodipodi:type="arc"
314       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
315       id="path4652"
316       sodipodi:cx="358.85669"
317       sodipodi:cy="142.87541"
318       sodipodi:rx="10.960155"
319       sodipodi:ry="10.253048"
320       d="m 358.86939,132.62237 a 10.960155,10.253048 0 1 1 -0.0228,0"
321       transform="translate(36.441125,199.60612)"
322       sodipodi:start="4.7135481"
323       sodipodi:end="10.994651"
324       sodipodi:open="true" />
325    <text
326       xml:space="preserve"
327       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
328       x="112.11968"
329       y="475.77856"
330       id="text4648-4"
331       sodipodi:linespacing="125%"><tspan
332         sodipodi:role="line"
333         id="tspan4650-4"
334         x="112.11968"
335         y="475.77856">QS</tspan></text>
336    <path
337       sodipodi:type="arc"
338       style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
339       id="path4652-7"
340       sodipodi:cx="358.85669"
341       sodipodi:cy="142.87541"
342       sodipodi:rx="10.960155"
343       sodipodi:ry="10.253048"
344       d="m 358.86939,132.62237 a 10.960155,10.253048 0 1 1 -0.0228,0"
345       transform="translate(-246.38346,329.72117)"
346       sodipodi:start="4.7135481"
347       sodipodi:end="10.994651"
348       sodipodi:open="true" />
349    <path
350       sodipodi:type="arc"
351       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
352       id="path4652-7-7"
353       sodipodi:cx="358.85669"
354       sodipodi:cy="142.87541"
355       sodipodi:rx="10.960155"
356       sodipodi:ry="10.253048"
357       d="m 358.86939,132.62237 a 10.960155,10.253048 0 1 1 -0.0228,0"
358       transform="translate(-103.65246,202.90878)"
359       sodipodi:start="4.7135481"
360       sodipodi:end="10.994651"
361       sodipodi:open="true" />
362    <text
363       xml:space="preserve"
364       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Symbol;-inkscape-font-specification:Symbol"
365       x="254.85066"
366       y="348.96619"
367       id="text4648-4-3"
368       sodipodi:linespacing="125%"><tspan
369         sodipodi:role="line"
370         id="tspan4650-4-5"
371         x="254.85066"
372         y="348.96619">QS</tspan></text>
373  </g>
374</svg>
375