Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

doc: rcu: Update Data-Structures for RCU flavor consolidation

This patch updates all Data-Structures document figures and text and
removes some unwanted figures, to reflect the recent work Paul has been
doing with consolidating all flavors of RCU.

Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Cc: <kernel-team@android.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>

authored by

Joel Fernandes (Google) and committed by
Paul E. McKenney
b54d9db2 c9b6f899

+653 -2334
-499
Documentation/RCU/Design/Data-Structures/BigTreeClassicRCUBH.svg
··· 1 - <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 - <!-- Creator: fig2dev Version 3.2 Patchlevel 5e --> 3 - 4 - <!-- CreationDate: Wed Dec 9 17:26:09 2015 --> 5 - 6 - <!-- Magnification: 2.000 --> 7 - 8 - <svg 9 - xmlns:dc="http://purl.org/dc/elements/1.1/" 10 - xmlns:cc="http://creativecommons.org/ns#" 11 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 12 - xmlns:svg="http://www.w3.org/2000/svg" 13 - xmlns="http://www.w3.org/2000/svg" 14 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 15 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 16 - width="5.7in" 17 - height="6.6in" 18 - viewBox="-44 -44 6838 7888" 19 - id="svg2" 20 - version="1.1" 21 - inkscape:version="0.48.4 r9939" 22 - sodipodi:docname="BigTreeClassicRCUBH.fig"> 23 - <metadata 24 - id="metadata110"> 25 - <rdf:RDF> 26 - <cc:Work 27 - rdf:about=""> 28 - <dc:format>image/svg+xml</dc:format> 29 - <dc:type 30 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 31 - <dc:title></dc:title> 32 - </cc:Work> 33 - </rdf:RDF> 34 - </metadata> 35 - <defs 36 - id="defs108"> 37 - <marker 38 - inkscape:stockid="Arrow1Mend" 39 - orient="auto" 40 - refY="0.0" 41 - refX="0.0" 42 - id="Arrow1Mend" 43 - style="overflow:visible;"> 44 - <path 45 - id="path3868" 46 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 47 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;" 48 - transform="scale(0.4) rotate(180) translate(10,0)" /> 49 - </marker> 50 - <marker 51 - inkscape:stockid="Arrow2Mend" 52 - orient="auto" 53 - refY="0.0" 54 - refX="0.0" 55 - id="Arrow2Mend" 56 - style="overflow:visible;"> 57 - <path 58 - id="path3886" 59 - style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" 60 - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " 61 - transform="scale(0.6) rotate(180) translate(0,0)" /> 62 - </marker> 63 - </defs> 64 - <sodipodi:namedview 65 - pagecolor="#ffffff" 66 - bordercolor="#666666" 67 - borderopacity="1" 68 - objecttolerance="10" 69 - gridtolerance="10" 70 - guidetolerance="10" 71 - inkscape:pageopacity="0" 72 - inkscape:pageshadow="2" 73 - inkscape:window-width="878" 74 - inkscape:window-height="1148" 75 - id="namedview106" 76 - showgrid="false" 77 - inkscape:zoom="1.3547758" 78 - inkscape:cx="256.5" 79 - inkscape:cy="297" 80 - inkscape:window-x="45" 81 - inkscape:window-y="24" 82 - inkscape:window-maximized="0" 83 - inkscape:current-layer="g4" /> 84 - <g 85 - style="stroke-width:.025in; fill:none" 86 - id="g4"> 87 - <!-- Line: box --> 88 - <rect 89 - x="450" 90 - y="0" 91 - width="6300" 92 - height="7350" 93 - rx="0" 94 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; " 95 - id="rect6" /> 96 - <!-- Line: box --> 97 - <rect 98 - x="4950" 99 - y="4950" 100 - width="1500" 101 - height="900" 102 - rx="0" 103 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 104 - id="rect8" /> 105 - <!-- Line: box --> 106 - <rect 107 - x="750" 108 - y="600" 109 - width="5700" 110 - height="3750" 111 - rx="0" 112 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffff00; " 113 - id="rect10" /> 114 - <!-- Line: box --> 115 - <rect 116 - x="0" 117 - y="450" 118 - width="6300" 119 - height="7350" 120 - rx="0" 121 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; " 122 - id="rect12" /> 123 - <!-- Line: box --> 124 - <rect 125 - x="300" 126 - y="1050" 127 - width="5700" 128 - height="3750" 129 - rx="0" 130 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffff00; " 131 - id="rect14" /> 132 - <!-- Circle --> 133 - <circle 134 - cx="2850" 135 - cy="3900" 136 - r="76" 137 - style="fill:#000000;stroke:#000000;stroke-width:14;" 138 - id="circle16" /> 139 - <!-- Circle --> 140 - <circle 141 - cx="3150" 142 - cy="3900" 143 - r="76" 144 - style="fill:#000000;stroke:#000000;stroke-width:14;" 145 - id="circle18" /> 146 - <!-- Circle --> 147 - <circle 148 - cx="3450" 149 - cy="3900" 150 - r="76" 151 - style="fill:#000000;stroke:#000000;stroke-width:14;" 152 - id="circle20" /> 153 - <!-- Circle --> 154 - <circle 155 - cx="1350" 156 - cy="5100" 157 - r="76" 158 - style="fill:#000000;stroke:#000000;stroke-width:14;" 159 - id="circle22" /> 160 - <!-- Circle --> 161 - <circle 162 - cx="1650" 163 - cy="5100" 164 - r="76" 165 - style="fill:#000000;stroke:#000000;stroke-width:14;" 166 - id="circle24" /> 167 - <!-- Circle --> 168 - <circle 169 - cx="1950" 170 - cy="5100" 171 - r="76" 172 - style="fill:#000000;stroke:#000000;stroke-width:14;" 173 - id="circle26" /> 174 - <!-- Circle --> 175 - <circle 176 - cx="4350" 177 - cy="5100" 178 - r="76" 179 - style="fill:#000000;stroke:#000000;stroke-width:14;" 180 - id="circle28" /> 181 - <!-- Circle --> 182 - <circle 183 - cx="4650" 184 - cy="5100" 185 - r="76" 186 - style="fill:#000000;stroke:#000000;stroke-width:14;" 187 - id="circle30" /> 188 - <!-- Circle --> 189 - <circle 190 - cx="4950" 191 - cy="5100" 192 - r="76" 193 - style="fill:#000000;stroke:#000000;stroke-width:14;" 194 - id="circle32" /> 195 - <!-- Line --> 196 - <polyline 197 - points="1350,3450 2350,2590 " 198 - style="stroke:#00d1d1;stroke-width:30.0045575;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 199 - id="polyline34" /> 200 - <!-- Arrowhead on XXXpoint 1350 3450 - 2444 2510--> 201 - <!-- Line --> 202 - <polyline 203 - points="4950,3450 3948,2590 " 204 - style="stroke:#00d1d1;stroke-width:30.0045575;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 205 - id="polyline38" /> 206 - <!-- Arrowhead on XXXpoint 4950 3450 - 3854 2510--> 207 - <!-- Line: box --> 208 - <rect 209 - x="750" 210 - y="3450" 211 - width="1800" 212 - height="900" 213 - rx="0" 214 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 215 - id="rect42" /> 216 - <!-- Line --> 217 - <polyline 218 - points="2250,5400 2250,4414 " 219 - style="stroke:#00d1d1;stroke-width:30.0045575;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 220 - id="polyline44" /> 221 - <!-- Arrowhead on XXXpoint 2250 5400 - 2250 4290--> 222 - <!-- Line: box --> 223 - <rect 224 - x="1500" 225 - y="5400" 226 - width="1500" 227 - height="900" 228 - rx="0" 229 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 230 - id="rect48" /> 231 - <!-- Line: box --> 232 - <rect 233 - x="300" 234 - y="6600" 235 - width="1500" 236 - height="900" 237 - rx="0" 238 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 239 - id="rect50" /> 240 - <!-- Line: box --> 241 - <rect 242 - x="3750" 243 - y="3450" 244 - width="1800" 245 - height="900" 246 - rx="0" 247 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 248 - id="rect52" /> 249 - <!-- Line: box --> 250 - <rect 251 - x="4500" 252 - y="5400" 253 - width="1500" 254 - height="900" 255 - rx="0" 256 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 257 - id="rect54" /> 258 - <!-- Line: box --> 259 - <rect 260 - x="3300" 261 - y="6600" 262 - width="1500" 263 - height="900" 264 - rx="0" 265 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 266 - id="rect56" /> 267 - <!-- Line: box --> 268 - <rect 269 - x="2250" 270 - y="1650" 271 - width="1800" 272 - height="900" 273 - rx="0" 274 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 275 - id="rect58" /> 276 - <!-- Text --> 277 - <text 278 - xml:space="preserve" 279 - x="6450" 280 - y="300" 281 - fill="#000000" 282 - font-family="Helvetica" 283 - font-style="normal" 284 - font-weight="normal" 285 - font-size="192" 286 - text-anchor="end" 287 - id="text60">rcu_bh</text> 288 - <!-- Text --> 289 - <text 290 - xml:space="preserve" 291 - x="3150" 292 - y="1950" 293 - fill="#000000" 294 - font-family="Courier" 295 - font-style="normal" 296 - font-weight="bold" 297 - font-size="192" 298 - text-anchor="middle" 299 - id="text62">struct</text> 300 - <!-- Text --> 301 - <text 302 - xml:space="preserve" 303 - x="3150" 304 - y="2250" 305 - fill="#000000" 306 - font-family="Courier" 307 - font-style="normal" 308 - font-weight="bold" 309 - font-size="192" 310 - text-anchor="middle" 311 - id="text64">rcu_node</text> 312 - <!-- Text --> 313 - <text 314 - xml:space="preserve" 315 - x="1650" 316 - y="3750" 317 - fill="#000000" 318 - font-family="Courier" 319 - font-style="normal" 320 - font-weight="bold" 321 - font-size="192" 322 - text-anchor="middle" 323 - id="text66">struct</text> 324 - <!-- Text --> 325 - <text 326 - xml:space="preserve" 327 - x="1650" 328 - y="4050" 329 - fill="#000000" 330 - font-family="Courier" 331 - font-style="normal" 332 - font-weight="bold" 333 - font-size="192" 334 - text-anchor="middle" 335 - id="text68">rcu_node</text> 336 - <!-- Text --> 337 - <text 338 - xml:space="preserve" 339 - x="4650" 340 - y="4050" 341 - fill="#000000" 342 - font-family="Courier" 343 - font-style="normal" 344 - font-weight="bold" 345 - font-size="192" 346 - text-anchor="middle" 347 - id="text70">rcu_node</text> 348 - <!-- Text --> 349 - <text 350 - xml:space="preserve" 351 - x="4650" 352 - y="3750" 353 - fill="#000000" 354 - font-family="Courier" 355 - font-style="normal" 356 - font-weight="bold" 357 - font-size="192" 358 - text-anchor="middle" 359 - id="text72">struct</text> 360 - <!-- Text --> 361 - <text 362 - xml:space="preserve" 363 - x="2250" 364 - y="5700" 365 - fill="#000000" 366 - font-family="Courier" 367 - font-style="normal" 368 - font-weight="bold" 369 - font-size="192" 370 - text-anchor="middle" 371 - id="text74">struct</text> 372 - <!-- Text --> 373 - <text 374 - xml:space="preserve" 375 - x="2250" 376 - y="6000" 377 - fill="#000000" 378 - font-family="Courier" 379 - font-style="normal" 380 - font-weight="bold" 381 - font-size="192" 382 - text-anchor="middle" 383 - id="text76">rcu_data</text> 384 - <!-- Text --> 385 - <text 386 - xml:space="preserve" 387 - x="1050" 388 - y="6900" 389 - fill="#000000" 390 - font-family="Courier" 391 - font-style="normal" 392 - font-weight="bold" 393 - font-size="192" 394 - text-anchor="middle" 395 - id="text78">struct</text> 396 - <!-- Text --> 397 - <text 398 - xml:space="preserve" 399 - x="1050" 400 - y="7200" 401 - fill="#000000" 402 - font-family="Courier" 403 - font-style="normal" 404 - font-weight="bold" 405 - font-size="192" 406 - text-anchor="middle" 407 - id="text80">rcu_data</text> 408 - <!-- Text --> 409 - <text 410 - xml:space="preserve" 411 - x="5250" 412 - y="5700" 413 - fill="#000000" 414 - font-family="Courier" 415 - font-style="normal" 416 - font-weight="bold" 417 - font-size="192" 418 - text-anchor="middle" 419 - id="text82">struct</text> 420 - <!-- Text --> 421 - <text 422 - xml:space="preserve" 423 - x="5250" 424 - y="6000" 425 - fill="#000000" 426 - font-family="Courier" 427 - font-style="normal" 428 - font-weight="bold" 429 - font-size="192" 430 - text-anchor="middle" 431 - id="text84">rcu_data</text> 432 - <!-- Text --> 433 - <text 434 - xml:space="preserve" 435 - x="4050" 436 - y="6900" 437 - fill="#000000" 438 - font-family="Courier" 439 - font-style="normal" 440 - font-weight="bold" 441 - font-size="192" 442 - text-anchor="middle" 443 - id="text86">struct</text> 444 - <!-- Text --> 445 - <text 446 - xml:space="preserve" 447 - x="4050" 448 - y="7200" 449 - fill="#000000" 450 - font-family="Courier" 451 - font-style="normal" 452 - font-weight="bold" 453 - font-size="192" 454 - text-anchor="middle" 455 - id="text88">rcu_data</text> 456 - <!-- Text --> 457 - <text 458 - xml:space="preserve" 459 - x="450" 460 - y="1350" 461 - fill="#000000" 462 - font-family="Courier" 463 - font-style="normal" 464 - font-weight="bold" 465 - font-size="192" 466 - text-anchor="start" 467 - id="text90">struct rcu_state</text> 468 - <!-- Text --> 469 - <text 470 - xml:space="preserve" 471 - x="6000" 472 - y="750" 473 - fill="#000000" 474 - font-family="Helvetica" 475 - font-style="normal" 476 - font-weight="normal" 477 - font-size="192" 478 - text-anchor="end" 479 - id="text92">rcu_sched</text> 480 - <!-- Line --> 481 - <polyline 482 - points="5250,5400 5250,4414 " 483 - style="stroke:#00d1d1;stroke-width:30.0045575;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 484 - id="polyline94" /> 485 - <!-- Arrowhead on XXXpoint 5250 5400 - 5250 4290--> 486 - <!-- Line --> 487 - <polyline 488 - points="4050,6600 4050,4414 " 489 - style="stroke:#00d1d1;stroke-width:30.0045575;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 490 - id="polyline98" /> 491 - <!-- Arrowhead on XXXpoint 4050 6600 - 4050 4290--> 492 - <!-- Line --> 493 - <polyline 494 - points="1050,6600 1050,4414 " 495 - style="stroke:#00d1d1;stroke-width:30.0045575;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 496 - id="polyline102" /> 497 - <!-- Arrowhead on XXXpoint 1050 6600 - 1050 4290--> 498 - </g> 499 - </svg>
-741
Documentation/RCU/Design/Data-Structures/BigTreePreemptRCUBHdyntick.svg
··· 1 - <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 - <!-- Creator: fig2dev Version 3.2 Patchlevel 5e --> 3 - 4 - <!-- CreationDate: Wed Dec 9 17:32:59 2015 --> 5 - 6 - <!-- Magnification: 2.000 --> 7 - 8 - <svg 9 - xmlns:dc="http://purl.org/dc/elements/1.1/" 10 - xmlns:cc="http://creativecommons.org/ns#" 11 - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 12 - xmlns:svg="http://www.w3.org/2000/svg" 13 - xmlns="http://www.w3.org/2000/svg" 14 - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 15 - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 16 - width="6.1in" 17 - height="8.9in" 18 - viewBox="-44 -44 7288 10738" 19 - id="svg2" 20 - version="1.1" 21 - inkscape:version="0.48.4 r9939" 22 - sodipodi:docname="BigTreePreemptRCUBHdyntick.fig"> 23 - <metadata 24 - id="metadata182"> 25 - <rdf:RDF> 26 - <cc:Work 27 - rdf:about=""> 28 - <dc:format>image/svg+xml</dc:format> 29 - <dc:type 30 - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 31 - <dc:title></dc:title> 32 - </cc:Work> 33 - </rdf:RDF> 34 - </metadata> 35 - <defs 36 - id="defs180"> 37 - <marker 38 - inkscape:stockid="Arrow1Mend" 39 - orient="auto" 40 - refY="0.0" 41 - refX="0.0" 42 - id="Arrow1Mend" 43 - style="overflow:visible;"> 44 - <path 45 - id="path3940" 46 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 47 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;" 48 - transform="scale(0.4) rotate(180) translate(10,0)" /> 49 - </marker> 50 - </defs> 51 - <sodipodi:namedview 52 - pagecolor="#ffffff" 53 - bordercolor="#666666" 54 - borderopacity="1" 55 - objecttolerance="10" 56 - gridtolerance="10" 57 - guidetolerance="10" 58 - inkscape:pageopacity="0" 59 - inkscape:pageshadow="2" 60 - inkscape:window-width="874" 61 - inkscape:window-height="1148" 62 - id="namedview178" 63 - showgrid="false" 64 - inkscape:zoom="1.2097379" 65 - inkscape:cx="274.5" 66 - inkscape:cy="400.49997" 67 - inkscape:window-x="946" 68 - inkscape:window-y="24" 69 - inkscape:window-maximized="0" 70 - inkscape:current-layer="g4" /> 71 - <g 72 - style="stroke-width:.025in; fill:none" 73 - id="g4"> 74 - <!-- Line: box --> 75 - <rect 76 - x="900" 77 - y="0" 78 - width="6300" 79 - height="7350" 80 - rx="0" 81 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; " 82 - id="rect6" /> 83 - <!-- Line: box --> 84 - <rect 85 - x="1200" 86 - y="600" 87 - width="5700" 88 - height="3750" 89 - rx="0" 90 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffff00; " 91 - id="rect8" /> 92 - <!-- Line: box --> 93 - <rect 94 - x="5400" 95 - y="4950" 96 - width="1500" 97 - height="900" 98 - rx="0" 99 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 100 - id="rect10" /> 101 - <!-- Line: box --> 102 - <rect 103 - x="450" 104 - y="450" 105 - width="6300" 106 - height="7350" 107 - rx="0" 108 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; " 109 - id="rect12" /> 110 - <!-- Line: box --> 111 - <rect 112 - x="750" 113 - y="1050" 114 - width="5700" 115 - height="3750" 116 - rx="0" 117 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffff00; " 118 - id="rect14" /> 119 - <!-- Line: box --> 120 - <rect 121 - x="4950" 122 - y="5400" 123 - width="1500" 124 - height="900" 125 - rx="0" 126 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 127 - id="rect16" /> 128 - <!-- Line --> 129 - <polyline 130 - points="5250,8550 5688,6362 " 131 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 132 - id="polyline18" /> 133 - <!-- Arrowhead on XXXpoint 5250 8550 - 5710 6240--> 134 - <polyline 135 - points="5714 6518 5704 6272 5598 6494 " 136 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 137 - id="polyline20" /> 138 - <!-- Line --> 139 - <polyline 140 - points="4050,9750 4486,7712 " 141 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 142 - id="polyline22" /> 143 - <!-- Arrowhead on XXXpoint 4050 9750 - 4512 7590--> 144 - <polyline 145 - points="4514 7868 4506 7622 4396 7844 " 146 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 147 - id="polyline24" /> 148 - <!-- Line --> 149 - <polyline 150 - points="1040,9750 1476,7712 " 151 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 152 - id="polyline26" /> 153 - <!-- Arrowhead on XXXpoint 1040 9750 - 1502 7590--> 154 - <polyline 155 - points="1504 7868 1496 7622 1386 7844 " 156 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 157 - id="polyline28" /> 158 - <!-- Line --> 159 - <polyline 160 - points="2240,8550 2676,6512 " 161 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 162 - id="polyline30" /> 163 - <!-- Arrowhead on XXXpoint 2240 8550 - 2702 6390--> 164 - <polyline 165 - points="2704 6668 2696 6422 2586 6644 " 166 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 167 - id="polyline32" /> 168 - <!-- Line --> 169 - <polyline 170 - points="4050,9750 5682,6360 " 171 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 172 - id="polyline34" /> 173 - <!-- Arrowhead on XXXpoint 4050 9750 - 5736 6246--> 174 - <polyline 175 - points="5672 6518 5722 6276 5562 6466 " 176 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 177 - id="polyline36" /> 178 - <!-- Line --> 179 - <polyline 180 - points="1010,9750 2642,6360 " 181 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 182 - id="polyline38" /> 183 - <!-- Arrowhead on XXXpoint 1010 9750 - 2696 6246--> 184 - <polyline 185 - points="2632 6518 2682 6276 2522 6466 " 186 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 187 - id="polyline40" /> 188 - <!-- Line: box --> 189 - <rect 190 - x="0" 191 - y="900" 192 - width="6300" 193 - height="7350" 194 - rx="0" 195 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; " 196 - id="rect42" /> 197 - <!-- Line: box --> 198 - <rect 199 - x="300" 200 - y="1500" 201 - width="5700" 202 - height="3750" 203 - rx="0" 204 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffff00; " 205 - id="rect44" /> 206 - <!-- Line --> 207 - <polyline 208 - points="1350,3900 2350,3040 " 209 - style="stroke:#00d1d1;stroke-width:30.00205472;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 210 - id="polyline46" /> 211 - <!-- Arrowhead on XXXpoint 1350 3900 - 2444 2960--> 212 - <!-- Line --> 213 - <polyline 214 - points="4950,3900 3948,3040 " 215 - style="stroke:#00d1d1;stroke-width:30.00205472;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 216 - id="polyline50" /> 217 - <!-- Arrowhead on XXXpoint 4950 3900 - 3854 2960--> 218 - <!-- Line --> 219 - <polyline 220 - points="4050,7050 4050,4864 " 221 - style="stroke:#00d1d1;stroke-width:30.00205472;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 222 - id="polyline54" /> 223 - <!-- Arrowhead on XXXpoint 4050 7050 - 4050 4740--> 224 - <!-- Line --> 225 - <polyline 226 - points="1050,7050 1050,4864 " 227 - style="stroke:#00d1d1;stroke-width:30.00205472;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 228 - id="polyline58" /> 229 - <!-- Arrowhead on XXXpoint 1050 7050 - 1050 4740--> 230 - <!-- Line --> 231 - <polyline 232 - points="2250,5850 2250,4864 " 233 - style="stroke:#00d1d1;stroke-width:30.00205472;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 234 - id="polyline62" /> 235 - <!-- Arrowhead on XXXpoint 2250 5850 - 2250 4740--> 236 - <!-- Line --> 237 - <polyline 238 - points="2250,8550 2250,6814 " 239 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 240 - id="polyline66" /> 241 - <!-- Arrowhead on XXXpoint 2250 8550 - 2250 6690--> 242 - <!-- Line --> 243 - <polyline 244 - points="1050,9750 1050,8014 " 245 - style="stroke:#00ff00;stroke-width:30.00205472;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 246 - id="polyline70" /> 247 - <!-- Arrowhead on XXXpoint 1050 9750 - 1050 7890--> 248 - <!-- Line --> 249 - <polyline 250 - points="4050,9750 4050,8014 " 251 - style="stroke:#00ff00;stroke-width:30.00205472;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 252 - id="polyline74" /> 253 - <!-- Arrowhead on XXXpoint 4050 9750 - 4050 7890--> 254 - <!-- Line --> 255 - <polyline 256 - points="5250,8550 5250,6814 " 257 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 258 - id="polyline78" /> 259 - <!-- Arrowhead on XXXpoint 5250 8550 - 5250 6690--> 260 - <!-- Circle --> 261 - <circle 262 - cx="2850" 263 - cy="4350" 264 - r="76" 265 - style="fill:#000000;stroke:#000000;stroke-width:14;" 266 - id="circle82" /> 267 - <!-- Circle --> 268 - <circle 269 - cx="3150" 270 - cy="4350" 271 - r="76" 272 - style="fill:#000000;stroke:#000000;stroke-width:14;" 273 - id="circle84" /> 274 - <!-- Circle --> 275 - <circle 276 - cx="3450" 277 - cy="4350" 278 - r="76" 279 - style="fill:#000000;stroke:#000000;stroke-width:14;" 280 - id="circle86" /> 281 - <!-- Circle --> 282 - <circle 283 - cx="1350" 284 - cy="5550" 285 - r="76" 286 - style="fill:#000000;stroke:#000000;stroke-width:14;" 287 - id="circle88" /> 288 - <!-- Circle --> 289 - <circle 290 - cx="1650" 291 - cy="5550" 292 - r="76" 293 - style="fill:#000000;stroke:#000000;stroke-width:14;" 294 - id="circle90" /> 295 - <!-- Circle --> 296 - <circle 297 - cx="1950" 298 - cy="5550" 299 - r="76" 300 - style="fill:#000000;stroke:#000000;stroke-width:14;" 301 - id="circle92" /> 302 - <!-- Circle --> 303 - <circle 304 - cx="4350" 305 - cy="5550" 306 - r="76" 307 - style="fill:#000000;stroke:#000000;stroke-width:14;" 308 - id="circle94" /> 309 - <!-- Circle --> 310 - <circle 311 - cx="4650" 312 - cy="5550" 313 - r="76" 314 - style="fill:#000000;stroke:#000000;stroke-width:14;" 315 - id="circle96" /> 316 - <!-- Circle --> 317 - <circle 318 - cx="4950" 319 - cy="5550" 320 - r="76" 321 - style="fill:#000000;stroke:#000000;stroke-width:14;" 322 - id="circle98" /> 323 - <!-- Line: box --> 324 - <rect 325 - x="750" 326 - y="3900" 327 - width="1800" 328 - height="900" 329 - rx="0" 330 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 331 - id="rect100" /> 332 - <!-- Line: box --> 333 - <rect 334 - x="300" 335 - y="7050" 336 - width="1500" 337 - height="900" 338 - rx="0" 339 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 340 - id="rect102" /> 341 - <!-- Line: box --> 342 - <rect 343 - x="3750" 344 - y="3900" 345 - width="1800" 346 - height="900" 347 - rx="0" 348 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 349 - id="rect104" /> 350 - <!-- Line: box --> 351 - <rect 352 - x="4500" 353 - y="5850" 354 - width="1500" 355 - height="900" 356 - rx="0" 357 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 358 - id="rect106" /> 359 - <!-- Line: box --> 360 - <rect 361 - x="3300" 362 - y="7050" 363 - width="1500" 364 - height="900" 365 - rx="0" 366 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 367 - id="rect108" /> 368 - <!-- Line: box --> 369 - <rect 370 - x="2250" 371 - y="2100" 372 - width="1800" 373 - height="900" 374 - rx="0" 375 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 376 - id="rect110" /> 377 - <!-- Line: box --> 378 - <rect 379 - x="0" 380 - y="9750" 381 - width="2100" 382 - height="900" 383 - rx="0" 384 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ff00; " 385 - id="rect112" /> 386 - <!-- Line: box --> 387 - <rect 388 - x="1350" 389 - y="8550" 390 - width="2100" 391 - height="900" 392 - rx="0" 393 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ff00; " 394 - id="rect114" /> 395 - <!-- Line: box --> 396 - <rect 397 - x="3000" 398 - y="9750" 399 - width="2100" 400 - height="900" 401 - rx="0" 402 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ff00; " 403 - id="rect116" /> 404 - <!-- Line: box --> 405 - <rect 406 - x="4350" 407 - y="8550" 408 - width="2100" 409 - height="900" 410 - rx="0" 411 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ff00; " 412 - id="rect118" /> 413 - <!-- Line: box --> 414 - <rect 415 - x="1500" 416 - y="5850" 417 - width="1500" 418 - height="900" 419 - rx="0" 420 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 421 - id="rect120" /> 422 - <!-- Text --> 423 - <text 424 - xml:space="preserve" 425 - x="6450" 426 - y="750" 427 - fill="#000000" 428 - font-family="Helvetica" 429 - font-style="normal" 430 - font-weight="normal" 431 - font-size="192" 432 - text-anchor="end" 433 - id="text122">rcu_bh</text> 434 - <!-- Text --> 435 - <text 436 - xml:space="preserve" 437 - x="3150" 438 - y="2400" 439 - fill="#000000" 440 - font-family="Courier" 441 - font-style="normal" 442 - font-weight="bold" 443 - font-size="192" 444 - text-anchor="middle" 445 - id="text124">struct</text> 446 - <!-- Text --> 447 - <text 448 - xml:space="preserve" 449 - x="3150" 450 - y="2700" 451 - fill="#000000" 452 - font-family="Courier" 453 - font-style="normal" 454 - font-weight="bold" 455 - font-size="192" 456 - text-anchor="middle" 457 - id="text126">rcu_node</text> 458 - <!-- Text --> 459 - <text 460 - xml:space="preserve" 461 - x="1650" 462 - y="4200" 463 - fill="#000000" 464 - font-family="Courier" 465 - font-style="normal" 466 - font-weight="bold" 467 - font-size="192" 468 - text-anchor="middle" 469 - id="text128">struct</text> 470 - <!-- Text --> 471 - <text 472 - xml:space="preserve" 473 - x="1650" 474 - y="4500" 475 - fill="#000000" 476 - font-family="Courier" 477 - font-style="normal" 478 - font-weight="bold" 479 - font-size="192" 480 - text-anchor="middle" 481 - id="text130">rcu_node</text> 482 - <!-- Text --> 483 - <text 484 - xml:space="preserve" 485 - x="4650" 486 - y="4500" 487 - fill="#000000" 488 - font-family="Courier" 489 - font-style="normal" 490 - font-weight="bold" 491 - font-size="192" 492 - text-anchor="middle" 493 - id="text132">rcu_node</text> 494 - <!-- Text --> 495 - <text 496 - xml:space="preserve" 497 - x="4650" 498 - y="4200" 499 - fill="#000000" 500 - font-family="Courier" 501 - font-style="normal" 502 - font-weight="bold" 503 - font-size="192" 504 - text-anchor="middle" 505 - id="text134">struct</text> 506 - <!-- Text --> 507 - <text 508 - xml:space="preserve" 509 - x="2250" 510 - y="6150" 511 - fill="#000000" 512 - font-family="Courier" 513 - font-style="normal" 514 - font-weight="bold" 515 - font-size="192" 516 - text-anchor="middle" 517 - id="text136">struct</text> 518 - <!-- Text --> 519 - <text 520 - xml:space="preserve" 521 - x="2250" 522 - y="6450" 523 - fill="#000000" 524 - font-family="Courier" 525 - font-style="normal" 526 - font-weight="bold" 527 - font-size="192" 528 - text-anchor="middle" 529 - id="text138">rcu_data</text> 530 - <!-- Text --> 531 - <text 532 - xml:space="preserve" 533 - x="1050" 534 - y="7350" 535 - fill="#000000" 536 - font-family="Courier" 537 - font-style="normal" 538 - font-weight="bold" 539 - font-size="192" 540 - text-anchor="middle" 541 - id="text140">struct</text> 542 - <!-- Text --> 543 - <text 544 - xml:space="preserve" 545 - x="1050" 546 - y="7650" 547 - fill="#000000" 548 - font-family="Courier" 549 - font-style="normal" 550 - font-weight="bold" 551 - font-size="192" 552 - text-anchor="middle" 553 - id="text142">rcu_data</text> 554 - <!-- Text --> 555 - <text 556 - xml:space="preserve" 557 - x="5250" 558 - y="6150" 559 - fill="#000000" 560 - font-family="Courier" 561 - font-style="normal" 562 - font-weight="bold" 563 - font-size="192" 564 - text-anchor="middle" 565 - id="text144">struct</text> 566 - <!-- Text --> 567 - <text 568 - xml:space="preserve" 569 - x="5250" 570 - y="6450" 571 - fill="#000000" 572 - font-family="Courier" 573 - font-style="normal" 574 - font-weight="bold" 575 - font-size="192" 576 - text-anchor="middle" 577 - id="text146">rcu_data</text> 578 - <!-- Text --> 579 - <text 580 - xml:space="preserve" 581 - x="4050" 582 - y="7350" 583 - fill="#000000" 584 - font-family="Courier" 585 - font-style="normal" 586 - font-weight="bold" 587 - font-size="192" 588 - text-anchor="middle" 589 - id="text148">struct</text> 590 - <!-- Text --> 591 - <text 592 - xml:space="preserve" 593 - x="4050" 594 - y="7650" 595 - fill="#000000" 596 - font-family="Courier" 597 - font-style="normal" 598 - font-weight="bold" 599 - font-size="192" 600 - text-anchor="middle" 601 - id="text150">rcu_data</text> 602 - <!-- Text --> 603 - <text 604 - xml:space="preserve" 605 - x="450" 606 - y="1800" 607 - fill="#000000" 608 - font-family="Courier" 609 - font-style="normal" 610 - font-weight="bold" 611 - font-size="192" 612 - text-anchor="start" 613 - id="text152">struct rcu_state</text> 614 - <!-- Text --> 615 - <text 616 - xml:space="preserve" 617 - x="1050" 618 - y="10050" 619 - fill="#000000" 620 - font-family="Courier" 621 - font-style="normal" 622 - font-weight="bold" 623 - font-size="192" 624 - text-anchor="middle" 625 - id="text154">struct</text> 626 - <!-- Text --> 627 - <text 628 - xml:space="preserve" 629 - x="1050" 630 - y="10350" 631 - fill="#000000" 632 - font-family="Courier" 633 - font-style="normal" 634 - font-weight="bold" 635 - font-size="192" 636 - text-anchor="middle" 637 - id="text156">rcu_dynticks</text> 638 - <!-- Text --> 639 - <text 640 - xml:space="preserve" 641 - x="4050" 642 - y="10050" 643 - fill="#000000" 644 - font-family="Courier" 645 - font-style="normal" 646 - font-weight="bold" 647 - font-size="192" 648 - text-anchor="middle" 649 - id="text158">struct</text> 650 - <!-- Text --> 651 - <text 652 - xml:space="preserve" 653 - x="4050" 654 - y="10350" 655 - fill="#000000" 656 - font-family="Courier" 657 - font-style="normal" 658 - font-weight="bold" 659 - font-size="192" 660 - text-anchor="middle" 661 - id="text160">rcu_dynticks</text> 662 - <!-- Text --> 663 - <text 664 - xml:space="preserve" 665 - x="2400" 666 - y="8850" 667 - fill="#000000" 668 - font-family="Courier" 669 - font-style="normal" 670 - font-weight="bold" 671 - font-size="192" 672 - text-anchor="middle" 673 - id="text162">struct</text> 674 - <!-- Text --> 675 - <text 676 - xml:space="preserve" 677 - x="2400" 678 - y="9150" 679 - fill="#000000" 680 - font-family="Courier" 681 - font-style="normal" 682 - font-weight="bold" 683 - font-size="192" 684 - text-anchor="middle" 685 - id="text164">rcu_dynticks</text> 686 - <!-- Text --> 687 - <text 688 - xml:space="preserve" 689 - x="5400" 690 - y="8850" 691 - fill="#000000" 692 - font-family="Courier" 693 - font-style="normal" 694 - font-weight="bold" 695 - font-size="192" 696 - text-anchor="middle" 697 - id="text166">struct</text> 698 - <!-- Text --> 699 - <text 700 - xml:space="preserve" 701 - x="5400" 702 - y="9150" 703 - fill="#000000" 704 - font-family="Courier" 705 - font-style="normal" 706 - font-weight="bold" 707 - font-size="192" 708 - text-anchor="middle" 709 - id="text168">rcu_dynticks</text> 710 - <!-- Text --> 711 - <text 712 - xml:space="preserve" 713 - x="6900" 714 - y="300" 715 - fill="#000000" 716 - font-family="Helvetica" 717 - font-style="normal" 718 - font-weight="normal" 719 - font-size="192" 720 - text-anchor="end" 721 - id="text170">rcu_preempt</text> 722 - <!-- Text --> 723 - <text 724 - xml:space="preserve" 725 - x="6000" 726 - y="1200" 727 - fill="#000000" 728 - font-family="Helvetica" 729 - font-style="normal" 730 - font-weight="normal" 731 - font-size="192" 732 - text-anchor="end" 733 - id="text172">rcu_sched</text> 734 - <!-- Line --> 735 - <polyline 736 - points="5250,5850 5250,4864 " 737 - style="stroke:#00d1d1;stroke-width:30.00205472;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 738 - id="polyline174" /> 739 - <!-- Arrowhead on XXXpoint 5250 5850 - 5250 4740--> 740 - </g> 741 - </svg>
+323 -519
Documentation/RCU/Design/Data-Structures/BigTreePreemptRCUBHdyntickCB.svg
··· 13 13 xmlns="http://www.w3.org/2000/svg" 14 14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 15 15 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 16 - width="7.4in" 17 - height="9.9in" 18 - viewBox="-44 -44 8938 11938" 16 + width="7.4000001in" 17 + height="7.9000001in" 18 + viewBox="-44 -44 8938 9526.283" 19 19 id="svg2" 20 20 version="1.1" 21 - inkscape:version="0.48.4 r9939" 21 + inkscape:version="0.92.2pre0 (973e216, 2017-07-25)" 22 22 sodipodi:docname="BigTreePreemptRCUBHdyntickCB.svg"> 23 23 <metadata 24 24 id="metadata212"> ··· 37 37 <marker 38 38 inkscape:stockid="Arrow1Mend" 39 39 orient="auto" 40 - refY="0.0" 41 - refX="0.0" 40 + refY="0" 41 + refX="0" 42 + id="marker1177" 43 + style="overflow:visible" 44 + inkscape:isstock="true"> 45 + <path 46 + id="path897" 47 + d="M 0,0 5,-5 -12.5,0 5,5 Z" 48 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" 49 + transform="matrix(-0.4,0,0,-0.4,-4,0)" 50 + inkscape:connector-curvature="0" /> 51 + </marker> 52 + <marker 53 + inkscape:stockid="Arrow1Lend" 54 + orient="auto" 55 + refY="0" 56 + refX="0" 57 + id="Arrow1Lend" 58 + style="overflow:visible" 59 + inkscape:isstock="true"> 60 + <path 61 + id="path891" 62 + d="M 0,0 5,-5 -12.5,0 5,5 Z" 63 + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" 64 + transform="matrix(-0.8,0,0,-0.8,-10,0)" 65 + inkscape:connector-curvature="0" /> 66 + </marker> 67 + <marker 68 + inkscape:stockid="Arrow1Mend" 69 + orient="auto" 70 + refY="0" 71 + refX="0" 42 72 id="Arrow1Mend" 43 - style="overflow:visible;"> 73 + style="overflow:visible"> 44 74 <path 45 75 id="path3970" 46 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 47 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;" 48 - transform="scale(0.4) rotate(180) translate(10,0)" /> 76 + d="M 0,0 5,-5 -12.5,0 5,5 Z" 77 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt" 78 + transform="matrix(-0.4,0,0,-0.4,-4,0)" 79 + inkscape:connector-curvature="0" /> 49 80 </marker> 50 81 </defs> 51 82 <sodipodi:namedview ··· 88 57 guidetolerance="10" 89 58 inkscape:pageopacity="0" 90 59 inkscape:pageshadow="2" 91 - inkscape:window-width="881" 92 - inkscape:window-height="1128" 60 + inkscape:window-width="1920" 61 + inkscape:window-height="1019" 93 62 id="namedview208" 94 63 showgrid="false" 95 64 inkscape:zoom="1.0195195" 96 - inkscape:cx="333" 97 - inkscape:cy="445.49997" 98 - inkscape:window-x="936" 99 - inkscape:window-y="24" 100 - inkscape:window-maximized="0" 65 + inkscape:cx="166.25478" 66 + inkscape:cy="362.18693" 67 + inkscape:window-x="0" 68 + inkscape:window-y="0" 69 + inkscape:window-maximized="1" 101 70 inkscape:current-layer="g4" /> 102 71 <g 103 - style="stroke-width:.025in; fill:none" 104 - id="g4"> 72 + style="fill:none;stroke-width:0.025in" 73 + id="g4" 74 + transform="translate(0,-2415.6743)"> 105 75 <!-- Line: box --> 106 - <rect 107 - x="900" 108 - y="0" 109 - width="6300" 110 - height="7350" 111 - rx="0" 112 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; " 113 - id="rect6" /> 114 76 <!-- Line: box --> 115 - <rect 116 - x="1200" 117 - y="600" 118 - width="5700" 119 - height="3750" 120 - rx="0" 121 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffff00; " 122 - id="rect8" /> 123 77 <!-- Line: box --> 124 - <rect 125 - x="5400" 126 - y="4950" 127 - width="1500" 128 - height="900" 129 - rx="0" 130 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 131 - id="rect10" /> 132 78 <!-- Line: box --> 133 - <rect 134 - x="450" 135 - y="450" 136 - width="6300" 137 - height="7350" 138 - rx="0" 139 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; " 140 - id="rect12" /> 141 79 <!-- Line: box --> 142 - <rect 143 - x="750" 144 - y="1050" 145 - width="5700" 146 - height="3750" 147 - rx="0" 148 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffff00; " 149 - id="rect14" /> 150 80 <!-- Line: box --> 151 - <rect 152 - x="4950" 153 - y="5400" 154 - width="1500" 155 - height="900" 156 - rx="0" 157 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 158 - id="rect16" /> 159 81 <!-- Line --> 160 - <polyline 161 - points="5250,8550 5688,6362 " 162 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 163 - id="polyline18" /> 164 82 <!-- Arrowhead on XXXpoint 5250 8550 - 5710 6240--> 165 83 <polyline 166 84 points="5714 6518 5704 6272 5598 6494 " 167 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 168 - id="polyline20" /> 85 + style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8" 86 + id="polyline20" 87 + transform="matrix(1,0,0,0.95854605,12.340758,1579.9033)" /> 169 88 <!-- Line --> 170 - <polyline 171 - points="4050,9750 4486,7712 " 172 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 173 - id="polyline22" /> 174 89 <!-- Arrowhead on XXXpoint 4050 9750 - 4512 7590--> 175 90 <polyline 176 91 points="4514 7868 4506 7622 4396 7844 " 177 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 178 - id="polyline24" /> 92 + style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8" 93 + id="polyline24" 94 + transform="matrix(1,0,0,0.95854605,12.340758,1579.9033)" /> 179 95 <!-- Line --> 180 - <polyline 181 - points="1040,9750 1476,7712 " 182 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 183 - id="polyline26" /> 184 96 <!-- Arrowhead on XXXpoint 1040 9750 - 1502 7590--> 185 97 <polyline 186 98 points="1504 7868 1496 7622 1386 7844 " 187 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 188 - id="polyline28" /> 99 + style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8" 100 + id="polyline28" 101 + transform="matrix(1,0,0,0.95854605,12.340758,1579.9033)" /> 189 102 <!-- Line --> 190 - <polyline 191 - points="2240,8550 2676,6512 " 192 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 193 - id="polyline30" /> 194 103 <!-- Arrowhead on XXXpoint 2240 8550 - 2702 6390--> 195 104 <polyline 196 105 points="2704 6668 2696 6422 2586 6644 " 197 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 198 - id="polyline32" /> 106 + style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8" 107 + id="polyline32" 108 + transform="matrix(1,0,0,0.95854605,12.340758,1579.9033)" /> 199 109 <!-- Line --> 200 - <polyline 201 - points="4050,9600 5692,6062 " 202 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 203 - id="polyline34" /> 204 110 <!-- Arrowhead on XXXpoint 4050 9600 - 5744 5948--> 205 111 <polyline 206 112 points="5682 6220 5730 5978 5574 6170 " 207 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 208 - id="polyline36" /> 113 + style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8" 114 + id="polyline36" 115 + transform="matrix(1,0,0,0.95854605,12.340758,1579.9033)" /> 209 116 <!-- Line --> 210 - <polyline 211 - points="1086,9600 2728,6062 " 212 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 213 - id="polyline38" /> 214 117 <!-- Arrowhead on XXXpoint 1086 9600 - 2780 5948--> 215 118 <polyline 216 119 points="2718 6220 2766 5978 2610 6170 " 217 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 218 - id="polyline40" /> 120 + style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8" 121 + id="polyline40" 122 + transform="matrix(1,0,0,0.95854605,12.340758,1579.9033)" /> 219 123 <!-- Line: box --> 220 124 <rect 221 - x="0" 222 - y="900" 125 + x="12.340758" 126 + y="2442.5947" 223 127 width="6300" 224 - height="7350" 128 + height="7045.3135" 225 129 rx="0" 226 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; " 130 + style="fill:#ffffff;stroke:#000000;stroke-width:29.37160873;stroke-linecap:butt;stroke-linejoin:miter" 227 131 id="rect42" /> 228 132 <!-- Line: box --> 229 133 <rect 230 - x="300" 231 - y="1500" 134 + x="312.34076" 135 + y="3017.7224" 232 136 width="5700" 233 - height="3750" 137 + height="3594.5476" 234 138 rx="0" 235 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffff00; " 139 + style="fill:#ffff00;stroke:#000000;stroke-width:29.37160873;stroke-linecap:butt;stroke-linejoin:miter" 236 140 id="rect44" /> 237 141 <!-- Line --> 238 142 <polyline 239 143 points="1350,3900 2350,3040 " 240 - style="stroke:#00d1d1;stroke-width:29.99463964;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 241 - id="polyline46" /> 144 + style="stroke:#00d1d1;stroke-width:29.99464035;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 145 + id="polyline46" 146 + transform="matrix(1,0,0,0.95854605,12.340758,1579.9033)" /> 242 147 <!-- Arrowhead on XXXpoint 1350 3900 - 2444 2960--> 243 148 <!-- Line --> 244 149 <polyline 245 150 points="4950,3900 3948,3040 " 246 - style="stroke:#00d1d1;stroke-width:29.99463964;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 247 - id="polyline50" /> 151 + style="stroke:#00d1d1;stroke-width:29.99464035;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 152 + id="polyline50" 153 + transform="matrix(1,0,0,0.95854605,12.340758,1579.9033)" /> 248 154 <!-- Arrowhead on XXXpoint 4950 3900 - 3854 2960--> 249 155 <!-- Line --> 250 156 <polyline 251 157 points="4050,7050 4050,4864 " 252 - style="stroke:#00d1d1;stroke-width:29.99463964;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 253 - id="polyline54" /> 158 + style="stroke:#00d1d1;stroke-width:29.99464035;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 159 + id="polyline54" 160 + transform="matrix(1,0,0,0.95854605,12.340758,1579.9033)" /> 254 161 <!-- Arrowhead on XXXpoint 4050 7050 - 4050 4740--> 255 162 <!-- Line --> 256 163 <polyline 257 164 points="1050,7050 1050,4864 " 258 - style="stroke:#00d1d1;stroke-width:29.99463964;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 259 - id="polyline58" /> 165 + style="stroke:#00d1d1;stroke-width:29.99464035;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 166 + id="polyline58" 167 + transform="matrix(1,0,0,0.95854605,12.340758,1579.9033)" /> 260 168 <!-- Arrowhead on XXXpoint 1050 7050 - 1050 4740--> 261 169 <!-- Line --> 262 170 <polyline 263 171 points="2250,5850 2250,4864 " 264 - style="stroke:#00d1d1;stroke-width:29.99463964;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 265 - id="polyline62" /> 172 + style="stroke:#00d1d1;stroke-width:29.99464035;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 173 + id="polyline62" 174 + transform="matrix(1,0,0,0.95854605,12.340758,1579.9033)" /> 266 175 <!-- Arrowhead on XXXpoint 2250 5850 - 2250 4740--> 267 176 <!-- Line --> 268 - <polyline 269 - points="2250,8550 2250,6814 " 270 - style="stroke:#00ff00;stroke-width:29.99463964;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 271 - id="polyline66" /> 272 177 <!-- Arrowhead on XXXpoint 2250 8550 - 2250 6690--> 273 178 <!-- Line --> 274 - <polyline 275 - points="1050,9750 1050,8014 " 276 - style="stroke:#00ff00;stroke-width:29.99463964;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 277 - id="polyline70" /> 278 179 <!-- Arrowhead on XXXpoint 1050 9750 - 1050 7890--> 279 180 <!-- Line --> 280 - <polyline 281 - points="4050,9750 4050,8014 " 282 - style="stroke:#00ff00;stroke-width:29.99463964;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 283 - id="polyline74" /> 284 181 <!-- Arrowhead on XXXpoint 4050 9750 - 4050 7890--> 285 182 <!-- Line --> 286 - <polyline 287 - points="5250,8550 5250,6814 " 288 - style="stroke:#00ff00;stroke-width:29.99463964;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 289 - id="polyline78" /> 290 183 <!-- Arrowhead on XXXpoint 5250 8550 - 5250 6690--> 291 184 <!-- Line --> 292 - <polyline 293 - points="6000,6300 8048,7910 " 294 - style="stroke:#87cfff;stroke-width:30;stroke-linejoin:miter;stroke-linecap:butt;marker-end:url(#Arrow1Mend)" 295 - id="polyline82" /> 296 185 <!-- Arrowhead on XXXpoint 6000 6300 - 8146 7986--> 297 186 <!-- Circle --> 298 - <circle 299 - cx="2850" 300 - cy="4350" 301 - r="76" 302 - style="fill:#000000;stroke:#000000;stroke-width:14;" 303 - id="circle86" /> 187 + <ellipse 188 + cx="2862.3408" 189 + cy="5749.5786" 190 + style="fill:#000000;stroke:#000000;stroke-width:13.70675087" 191 + id="circle86" 192 + rx="76" 193 + ry="72.849495" /> 304 194 <!-- Circle --> 305 - <circle 306 - cx="3150" 307 - cy="4350" 308 - r="76" 309 - style="fill:#000000;stroke:#000000;stroke-width:14;" 310 - id="circle88" /> 195 + <ellipse 196 + cx="3162.3408" 197 + cy="5749.5786" 198 + style="fill:#000000;stroke:#000000;stroke-width:13.70675087" 199 + id="circle88" 200 + rx="76" 201 + ry="72.849495" /> 311 202 <!-- Circle --> 312 - <circle 313 - cx="3450" 314 - cy="4350" 315 - r="76" 316 - style="fill:#000000;stroke:#000000;stroke-width:14;" 317 - id="circle90" /> 203 + <ellipse 204 + cx="3462.3408" 205 + cy="5749.5786" 206 + style="fill:#000000;stroke:#000000;stroke-width:13.70675087" 207 + id="circle90" 208 + rx="76" 209 + ry="72.849495" /> 318 210 <!-- Circle --> 319 - <circle 320 - cx="1350" 321 - cy="5550" 322 - r="76" 323 - style="fill:#000000;stroke:#000000;stroke-width:14;" 324 - id="circle92" /> 211 + <ellipse 212 + cx="1362.3407" 213 + cy="6899.834" 214 + style="fill:#000000;stroke:#000000;stroke-width:13.70675087" 215 + id="circle92" 216 + rx="76" 217 + ry="72.849495" /> 325 218 <!-- Circle --> 326 - <circle 327 - cx="1650" 328 - cy="5550" 329 - r="76" 330 - style="fill:#000000;stroke:#000000;stroke-width:14;" 331 - id="circle94" /> 219 + <ellipse 220 + cx="1662.3407" 221 + cy="6899.834" 222 + style="fill:#000000;stroke:#000000;stroke-width:13.70675087" 223 + id="circle94" 224 + rx="76" 225 + ry="72.849495" /> 332 226 <!-- Circle --> 333 - <circle 334 - cx="1950" 335 - cy="5550" 336 - r="76" 337 - style="fill:#000000;stroke:#000000;stroke-width:14;" 338 - id="circle96" /> 227 + <ellipse 228 + cx="1962.3407" 229 + cy="6899.834" 230 + style="fill:#000000;stroke:#000000;stroke-width:13.70675087" 231 + id="circle96" 232 + rx="76" 233 + ry="72.849495" /> 339 234 <!-- Circle --> 340 - <circle 341 - cx="4350" 342 - cy="5550" 343 - r="76" 344 - style="fill:#000000;stroke:#000000;stroke-width:14;" 345 - id="circle98" /> 235 + <ellipse 236 + cx="4362.3408" 237 + cy="6899.834" 238 + style="fill:#000000;stroke:#000000;stroke-width:13.70675087" 239 + id="circle98" 240 + rx="76" 241 + ry="72.849495" /> 346 242 <!-- Circle --> 347 - <circle 348 - cx="4650" 349 - cy="5550" 350 - r="76" 351 - style="fill:#000000;stroke:#000000;stroke-width:14;" 352 - id="circle100" /> 243 + <ellipse 244 + cx="4662.3408" 245 + cy="6899.834" 246 + style="fill:#000000;stroke:#000000;stroke-width:13.70675087" 247 + id="circle100" 248 + rx="76" 249 + ry="72.849495" /> 353 250 <!-- Circle --> 354 - <circle 355 - cx="4950" 356 - cy="5550" 357 - r="76" 358 - style="fill:#000000;stroke:#000000;stroke-width:14;" 359 - id="circle102" /> 251 + <ellipse 252 + cx="4962.3408" 253 + cy="6899.834" 254 + style="fill:#000000;stroke:#000000;stroke-width:13.70675087" 255 + id="circle102" 256 + rx="76" 257 + ry="72.849495" /> 360 258 <!-- Line: box --> 361 259 <rect 362 - x="7350" 363 - y="7950" 260 + x="6745.3027" 261 + y="8146.0654" 364 262 width="1500" 365 - height="900" 263 + height="862.69141" 366 264 rx="0" 367 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 265 + style="stroke:#000000;stroke-width:29.37160873;stroke-linecap:butt;stroke-linejoin:miter" 368 266 id="rect104" /> 369 267 <!-- Line: box --> 370 268 <rect 371 - x="7350" 372 - y="9450" 269 + x="6745.3027" 270 + y="9583.8857" 373 271 width="1500" 374 - height="900" 272 + height="862.69141" 375 273 rx="0" 376 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 274 + style="stroke:#000000;stroke-width:29.37160873;stroke-linecap:butt;stroke-linejoin:miter" 377 275 id="rect106" /> 378 276 <!-- Line --> 379 277 <polyline 380 278 points="8100,8850 8100,9384 " 381 - style="stroke:#000000;stroke-width:30;stroke-linejoin:miter;stroke-linecap:butt;marker-end:url(#Arrow1Mend)" 382 - id="polyline108" /> 279 + style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend)" 280 + id="polyline108" 281 + transform="matrix(1,0,0,0.95854605,-604.69715,525.62477)" /> 383 282 <!-- Arrowhead on XXXpoint 8100 8850 - 8100 9510--> 384 283 <!-- Line: box --> 385 284 <rect 386 - x="7350" 387 - y="10950" 285 + x="6745.3027" 286 + y="11021.704" 388 287 width="1500" 389 - height="900" 288 + height="862.69141" 390 289 rx="0" 391 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 290 + style="stroke:#000000;stroke-width:29.37160873;stroke-linecap:butt;stroke-linejoin:miter" 392 291 id="rect112" /> 393 292 <!-- Line --> 394 293 <polyline 395 294 points="8100,10350 8100,10884 " 396 - style="stroke:#000000;stroke-width:30;stroke-linejoin:miter;stroke-linecap:butt;marker-end:url(#Arrow1Mend)" 397 - id="polyline114" /> 295 + style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend)" 296 + id="polyline114" 297 + transform="matrix(1,0,0,0.95854605,-604.69715,525.62477)" /> 398 298 <!-- Arrowhead on XXXpoint 8100 10350 - 8100 11010--> 399 299 <!-- Line: box --> 400 300 <rect 401 - x="750" 402 - y="3900" 301 + x="762.34076" 302 + y="5318.2324" 403 303 width="1800" 404 - height="900" 304 + height="862.69141" 405 305 rx="0" 406 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 306 + style="fill:#ffbfbf;stroke:#000000;stroke-width:29.37160873;stroke-linecap:butt;stroke-linejoin:miter" 407 307 id="rect118" /> 408 308 <!-- Line: box --> 409 309 <rect 410 - x="300" 411 - y="7050" 310 + x="312.34076" 311 + y="8337.6533" 412 312 width="1500" 413 - height="900" 313 + height="862.69141" 414 314 rx="0" 415 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 315 + style="fill:#87cfff;stroke:#000000;stroke-width:29.37160873;stroke-linecap:butt;stroke-linejoin:miter" 416 316 id="rect120" /> 417 317 <!-- Line: box --> 418 318 <rect 419 - x="3750" 420 - y="3900" 319 + x="3762.3408" 320 + y="5318.2324" 421 321 width="1800" 422 - height="900" 322 + height="862.69141" 423 323 rx="0" 424 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 324 + style="fill:#ffbfbf;stroke:#000000;stroke-width:29.37160873;stroke-linecap:butt;stroke-linejoin:miter" 425 325 id="rect122" /> 426 326 <!-- Line: box --> 427 327 <rect 428 - x="4500" 429 - y="5850" 328 + x="4512.3408" 329 + y="7187.3975" 430 330 width="1500" 431 - height="900" 331 + height="862.69141" 432 332 rx="0" 433 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 333 + style="fill:#87cfff;stroke:#000000;stroke-width:29.37160873;stroke-linecap:butt;stroke-linejoin:miter" 434 334 id="rect124" /> 435 335 <!-- Line: box --> 436 336 <rect 437 - x="3300" 438 - y="7050" 337 + x="3312.3408" 338 + y="8337.6533" 439 339 width="1500" 440 - height="900" 340 + height="862.69141" 441 341 rx="0" 442 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 342 + style="fill:#87cfff;stroke:#000000;stroke-width:29.37160873;stroke-linecap:butt;stroke-linejoin:miter" 443 343 id="rect126" /> 444 344 <!-- Line: box --> 445 345 <rect 446 - x="2250" 447 - y="2100" 346 + x="2262.3408" 347 + y="3592.8503" 448 348 width="1800" 449 - height="900" 349 + height="862.69141" 450 350 rx="0" 451 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 351 + style="fill:#ffbfbf;stroke:#000000;stroke-width:29.37160873;stroke-linecap:butt;stroke-linejoin:miter" 452 352 id="rect128" /> 453 353 <!-- Line: box --> 454 - <rect 455 - x="0" 456 - y="9750" 457 - width="2100" 458 - height="900" 459 - rx="0" 460 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ff00; " 461 - id="rect130" /> 354 + <!-- Line: box --> 355 + <!-- Line: box --> 356 + <!-- Line: box --> 462 357 <!-- Line: box --> 463 358 <rect 464 - x="1350" 465 - y="8550" 466 - width="2100" 467 - height="900" 468 - rx="0" 469 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ff00; " 470 - id="rect132" /> 471 - <!-- Line: box --> 472 - <rect 473 - x="3000" 474 - y="9750" 475 - width="2100" 476 - height="900" 477 - rx="0" 478 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ff00; " 479 - id="rect134" /> 480 - <!-- Line: box --> 481 - <rect 482 - x="4350" 483 - y="8550" 484 - width="2100" 485 - height="900" 486 - rx="0" 487 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ff00; " 488 - id="rect136" /> 489 - <!-- Line: box --> 490 - <rect 491 - x="1500" 492 - y="5850" 359 + x="1512.3407" 360 + y="7187.3975" 493 361 width="1500" 494 - height="900" 362 + height="862.69141" 495 363 rx="0" 496 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 364 + style="fill:#87cfff;stroke:#000000;stroke-width:29.37160873;stroke-linecap:butt;stroke-linejoin:miter" 497 365 id="rect138" /> 498 366 <!-- Text --> 499 367 <text 500 368 xml:space="preserve" 501 - x="8100" 502 - y="8250" 503 - fill="#000000" 504 - font-family="Courier" 369 + x="7338.3037" 370 + y="8614.0625" 505 371 font-style="normal" 506 372 font-weight="bold" 507 373 font-size="192" 508 - text-anchor="middle" 509 - id="text140">struct</text> 374 + id="text140" 375 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 376 + transform="scale(1.0213945,0.97905363)">struct</text> 510 377 <!-- Text --> 511 378 <text 512 379 xml:space="preserve" 513 - x="8100" 514 - y="8550" 515 - fill="#000000" 516 - font-family="Courier" 380 + x="7338.3037" 381 + y="8907.7783" 517 382 font-style="normal" 518 383 font-weight="bold" 519 384 font-size="192" 520 - text-anchor="middle" 521 - id="text142">rcu_head</text> 385 + id="text142" 386 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 387 + transform="scale(1.0213945,0.97905363)">rcu_head</text> 522 388 <!-- Text --> 523 389 <text 524 390 xml:space="preserve" 525 - x="8100" 526 - y="9750" 527 - fill="#000000" 528 - font-family="Courier" 391 + x="7338.3037" 392 + y="10082.644" 529 393 font-style="normal" 530 394 font-weight="bold" 531 395 font-size="192" 532 - text-anchor="middle" 533 - id="text144">struct</text> 396 + id="text144" 397 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 398 + transform="scale(1.0213945,0.97905363)">struct</text> 534 399 <!-- Text --> 535 400 <text 536 401 xml:space="preserve" 537 - x="8100" 538 - y="10050" 539 - fill="#000000" 540 - font-family="Courier" 402 + x="7338.3037" 403 + y="10376.36" 541 404 font-style="normal" 542 405 font-weight="bold" 543 406 font-size="192" 544 - text-anchor="middle" 545 - id="text146">rcu_head</text> 407 + id="text146" 408 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 409 + transform="scale(1.0213945,0.97905363)">rcu_head</text> 546 410 <!-- Text --> 547 411 <text 548 412 xml:space="preserve" 549 - x="8100" 550 - y="11250" 551 - fill="#000000" 552 - font-family="Courier" 413 + x="7338.3037" 414 + y="11551.224" 553 415 font-style="normal" 554 416 font-weight="bold" 555 417 font-size="192" 556 - text-anchor="middle" 557 - id="text148">struct</text> 418 + id="text148" 419 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 420 + transform="scale(1.0213945,0.97905363)">struct</text> 558 421 <!-- Text --> 559 422 <text 560 423 xml:space="preserve" 561 - x="8100" 562 - y="11550" 563 - fill="#000000" 564 - font-family="Courier" 424 + x="7338.3037" 425 + y="11844.94" 565 426 font-style="normal" 566 427 font-weight="bold" 567 428 font-size="192" 568 - text-anchor="middle" 569 - id="text150">rcu_head</text> 429 + id="text150" 430 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 431 + transform="scale(1.0213945,0.97905363)">rcu_head</text> 570 432 <!-- Text --> 571 433 <text 572 434 xml:space="preserve" 573 - x="6000" 574 - y="1200" 575 - fill="#000000" 576 - font-family="Helvetica" 435 + x="5886.4043" 436 + y="2788.5688" 577 437 font-style="normal" 578 438 font-weight="normal" 579 439 font-size="192" 580 - text-anchor="end" 581 - id="text152">rcu_sched</text> 440 + id="text152" 441 + style="font-style:normal;font-weight:normal;font-size:187.978302px;font-family:Helvetica;text-anchor:end;fill:#000000;stroke-width:0.02447634in" 442 + transform="scale(1.0213945,0.97905363)">rcu_state</text> 443 + <!-- Text --> 582 444 <!-- Text --> 583 445 <text 584 446 xml:space="preserve" 585 - x="6450" 586 - y="750" 587 - fill="#000000" 588 - font-family="Helvetica" 589 - font-style="normal" 590 - font-weight="normal" 591 - font-size="192" 592 - text-anchor="end" 593 - id="text154">rcu_bh</text> 594 - <!-- Text --> 595 - <text 596 - xml:space="preserve" 597 - x="3150" 598 - y="2400" 599 - fill="#000000" 600 - font-family="Courier" 447 + x="3096.1016" 448 + y="3963.4336" 601 449 font-style="normal" 602 450 font-weight="bold" 603 451 font-size="192" 604 - text-anchor="middle" 605 - id="text156">struct</text> 452 + id="text156" 453 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 454 + transform="scale(1.0213945,0.97905363)">struct</text> 606 455 <!-- Text --> 607 456 <text 608 457 xml:space="preserve" 609 - x="3150" 610 - y="2700" 611 - fill="#000000" 612 - font-family="Courier" 458 + x="3096.1016" 459 + y="4257.1494" 613 460 font-style="normal" 614 461 font-weight="bold" 615 462 font-size="192" 616 - text-anchor="middle" 617 - id="text158">rcu_node</text> 463 + id="text158" 464 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 465 + transform="scale(1.0213945,0.97905363)">rcu_node</text> 618 466 <!-- Text --> 619 467 <text 620 468 xml:space="preserve" 621 - x="1650" 622 - y="4200" 623 - fill="#000000" 624 - font-family="Courier" 469 + x="1627.5209" 470 + y="5725.7305" 625 471 font-style="normal" 626 472 font-weight="bold" 627 473 font-size="192" 628 - text-anchor="middle" 629 - id="text160">struct</text> 474 + id="text160" 475 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 476 + transform="scale(1.0213945,0.97905363)">struct</text> 630 477 <!-- Text --> 631 478 <text 632 479 xml:space="preserve" 633 - x="1650" 634 - y="4500" 635 - fill="#000000" 636 - font-family="Courier" 480 + x="1627.5209" 481 + y="6019.4463" 637 482 font-style="normal" 638 483 font-weight="bold" 639 484 font-size="192" 640 - text-anchor="middle" 641 - id="text162">rcu_node</text> 485 + id="text162" 486 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 487 + transform="scale(1.0213945,0.97905363)">rcu_node</text> 642 488 <!-- Text --> 643 489 <text 644 490 xml:space="preserve" 645 - x="4650" 646 - y="4500" 647 - fill="#000000" 648 - font-family="Courier" 491 + x="4564.6821" 492 + y="6019.4463" 649 493 font-style="normal" 650 494 font-weight="bold" 651 495 font-size="192" 652 - text-anchor="middle" 653 - id="text164">rcu_node</text> 496 + id="text164" 497 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 498 + transform="scale(1.0213945,0.97905363)">rcu_node</text> 654 499 <!-- Text --> 655 500 <text 656 501 xml:space="preserve" 657 - x="4650" 658 - y="4200" 659 - fill="#000000" 660 - font-family="Courier" 502 + x="4564.6821" 503 + y="5725.7305" 661 504 font-style="normal" 662 505 font-weight="bold" 663 506 font-size="192" 664 - text-anchor="middle" 665 - id="text166">struct</text> 507 + id="text166" 508 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 509 + transform="scale(1.0213945,0.97905363)">struct</text> 666 510 <!-- Text --> 667 511 <text 668 512 xml:space="preserve" 669 - x="2250" 670 - y="6150" 671 - fill="#000000" 672 - font-family="Courier" 513 + x="2214.9531" 514 + y="7634.8848" 673 515 font-style="normal" 674 516 font-weight="bold" 675 517 font-size="192" 676 - text-anchor="middle" 677 - id="text168">struct</text> 518 + id="text168" 519 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 520 + transform="scale(1.0213945,0.97905363)">struct</text> 678 521 <!-- Text --> 679 522 <text 680 523 xml:space="preserve" 681 - x="2250" 682 - y="6450" 683 - fill="#000000" 684 - font-family="Courier" 524 + x="2214.9531" 525 + y="7928.6011" 685 526 font-style="normal" 686 527 font-weight="bold" 687 528 font-size="192" 688 - text-anchor="middle" 689 - id="text170">rcu_data</text> 529 + id="text170" 530 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 531 + transform="scale(1.0213945,0.97905363)">rcu_data</text> 690 532 <!-- Text --> 691 533 <text 692 534 xml:space="preserve" 693 - x="1050" 694 - y="7350" 695 - fill="#000000" 696 - font-family="Courier" 535 + x="1040.0886" 536 + y="8809.749" 697 537 font-style="normal" 698 538 font-weight="bold" 699 539 font-size="192" 700 - text-anchor="middle" 701 - id="text172">struct</text> 540 + id="text172" 541 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 542 + transform="scale(1.0213945,0.97905363)">struct</text> 702 543 <!-- Text --> 703 544 <text 704 545 xml:space="preserve" 705 - x="1050" 706 - y="7650" 707 - fill="#000000" 708 - font-family="Courier" 546 + x="1040.0886" 547 + y="9103.4648" 709 548 font-style="normal" 710 549 font-weight="bold" 711 550 font-size="192" 712 - text-anchor="middle" 713 - id="text174">rcu_data</text> 551 + id="text174" 552 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 553 + transform="scale(1.0213945,0.97905363)">rcu_data</text> 714 554 <!-- Text --> 715 555 <text 716 556 xml:space="preserve" 717 - x="5250" 718 - y="6150" 719 - fill="#000000" 720 - font-family="Courier" 557 + x="5152.1138" 558 + y="7634.8848" 721 559 font-style="normal" 722 560 font-weight="bold" 723 561 font-size="192" 724 - text-anchor="middle" 725 - id="text176">struct</text> 562 + id="text176" 563 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 564 + transform="scale(1.0213945,0.97905363)">struct</text> 726 565 <!-- Text --> 727 566 <text 728 567 xml:space="preserve" 729 - x="5250" 730 - y="6450" 731 - fill="#000000" 732 - font-family="Courier" 568 + x="5152.1138" 569 + y="7928.6011" 733 570 font-style="normal" 734 571 font-weight="bold" 735 572 font-size="192" 736 - text-anchor="middle" 737 - id="text178">rcu_data</text> 573 + id="text178" 574 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 575 + transform="scale(1.0213945,0.97905363)">rcu_data</text> 738 576 <!-- Text --> 739 577 <text 740 578 xml:space="preserve" 741 - x="4050" 742 - y="7350" 743 - fill="#000000" 744 - font-family="Courier" 579 + x="3977.2495" 580 + y="8809.749" 745 581 font-style="normal" 746 582 font-weight="bold" 747 583 font-size="192" 748 - text-anchor="middle" 749 - id="text180">struct</text> 584 + id="text180" 585 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 586 + transform="scale(1.0213945,0.97905363)">struct</text> 750 587 <!-- Text --> 751 588 <text 752 589 xml:space="preserve" 753 - x="4050" 754 - y="7650" 755 - fill="#000000" 756 - font-family="Courier" 590 + x="3977.2495" 591 + y="9103.4648" 757 592 font-style="normal" 758 593 font-weight="bold" 759 594 font-size="192" 760 - text-anchor="middle" 761 - id="text182">rcu_data</text> 595 + id="text182" 596 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:middle;fill:#000000;stroke-width:0.02447634in" 597 + transform="scale(1.0213945,0.97905363)">rcu_data</text> 762 598 <!-- Text --> 763 599 <text 764 600 xml:space="preserve" 765 - x="450" 766 - y="1800" 767 - fill="#000000" 768 - font-family="Courier" 601 + x="452.6564" 602 + y="3376.0012" 769 603 font-style="normal" 770 604 font-weight="bold" 771 605 font-size="192" 772 - text-anchor="start" 773 - id="text184">struct rcu_state</text> 606 + id="text184" 607 + style="font-style:normal;font-weight:bold;font-size:187.978302px;font-family:Courier;text-anchor:start;fill:#000000;stroke-width:0.02447634in" 608 + transform="scale(1.0213945,0.97905363)">struct rcu_state</text> 774 609 <!-- Text --> 775 - <text 776 - xml:space="preserve" 777 - x="1050" 778 - y="10050" 779 - fill="#000000" 780 - font-family="Courier" 781 - font-style="normal" 782 - font-weight="bold" 783 - font-size="192" 784 - text-anchor="middle" 785 - id="text186">struct</text> 786 610 <!-- Text --> 787 - <text 788 - xml:space="preserve" 789 - x="1050" 790 - y="10350" 791 - fill="#000000" 792 - font-family="Courier" 793 - font-style="normal" 794 - font-weight="bold" 795 - font-size="192" 796 - text-anchor="middle" 797 - id="text188">rcu_dynticks</text> 798 611 <!-- Text --> 799 - <text 800 - xml:space="preserve" 801 - x="4050" 802 - y="10050" 803 - fill="#000000" 804 - font-family="Courier" 805 - font-style="normal" 806 - font-weight="bold" 807 - font-size="192" 808 - text-anchor="middle" 809 - id="text190">struct</text> 810 612 <!-- Text --> 811 - <text 812 - xml:space="preserve" 813 - x="4050" 814 - y="10350" 815 - fill="#000000" 816 - font-family="Courier" 817 - font-style="normal" 818 - font-weight="bold" 819 - font-size="192" 820 - text-anchor="middle" 821 - id="text192">rcu_dynticks</text> 822 613 <!-- Text --> 823 - <text 824 - xml:space="preserve" 825 - x="2400" 826 - y="8850" 827 - fill="#000000" 828 - font-family="Courier" 829 - font-style="normal" 830 - font-weight="bold" 831 - font-size="192" 832 - text-anchor="middle" 833 - id="text194">struct</text> 834 614 <!-- Text --> 835 - <text 836 - xml:space="preserve" 837 - x="2400" 838 - y="9150" 839 - fill="#000000" 840 - font-family="Courier" 841 - font-style="normal" 842 - font-weight="bold" 843 - font-size="192" 844 - text-anchor="middle" 845 - id="text196">rcu_dynticks</text> 846 615 <!-- Text --> 847 - <text 848 - xml:space="preserve" 849 - x="5400" 850 - y="8850" 851 - fill="#000000" 852 - font-family="Courier" 853 - font-style="normal" 854 - font-weight="bold" 855 - font-size="192" 856 - text-anchor="middle" 857 - id="text198">struct</text> 858 616 <!-- Text --> 859 - <text 860 - xml:space="preserve" 861 - x="5400" 862 - y="9150" 863 - fill="#000000" 864 - font-family="Courier" 865 - font-style="normal" 866 - font-weight="bold" 867 - font-size="192" 868 - text-anchor="middle" 869 - id="text200">rcu_dynticks</text> 870 617 <!-- Text --> 871 - <text 872 - xml:space="preserve" 873 - x="6900" 874 - y="300" 875 - fill="#000000" 876 - font-family="Helvetica" 877 - font-style="normal" 878 - font-weight="normal" 879 - font-size="192" 880 - text-anchor="end" 881 - id="text202">rcu_preempt</text> 882 618 <!-- Line --> 883 619 <polyline 884 620 points="5250,5850 5250,4864 " 885 - style="stroke:#00d1d1;stroke-width:29.99463964;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 886 - id="polyline204" /> 621 + style="stroke:#00d1d1;stroke-width:29.99464035;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 622 + id="polyline204" 623 + transform="matrix(1,0,0,0.95854605,12.340758,1579.9033)" /> 887 624 <!-- Arrowhead on XXXpoint 5250 5850 - 5250 4740--> 625 + <path 626 + style="fill:none;stroke:#000000;stroke-width:34.24744034;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1177)" 627 + d="m 6000.1472,7564.2558 c 1498.5508,0 1498.5508,0 1498.5508,0 v 520.0252" 628 + id="path886" 629 + inkscape:connector-curvature="0" /> 888 630 </g> 889 631 </svg>
+8 -41
Documentation/RCU/Design/Data-Structures/Data-Structures.html
··· 154 154 keeping lock contention under control at all tree levels regardless 155 155 of the level of loading on the system. 156 156 157 - </p><p>The Linux kernel actually supports multiple flavors of RCU 158 - running concurrently, so RCU builds separate data structures for each 159 - flavor. 160 - For example, for <tt>CONFIG_TREE_RCU=y</tt> kernels, RCU provides 161 - rcu_sched and rcu_bh, as shown below: 162 - 163 - </p><p><img src="BigTreeClassicRCUBH.svg" alt="BigTreeClassicRCUBH.svg" width="33%"> 164 - 165 - </p><p>Energy efficiency is increasingly important, and for that 166 - reason the Linux kernel provides <tt>CONFIG_NO_HZ_IDLE</tt>, which 167 - turns off the scheduling-clock interrupts on idle CPUs, which in 168 - turn allows those CPUs to attain deeper sleep states and to consume 169 - less energy. 170 - CPUs whose scheduling-clock interrupts have been turned off are 171 - said to be in <i>dyntick-idle mode</i>. 172 - RCU must handle dyntick-idle CPUs specially 173 - because RCU would otherwise wake up each CPU on every grace period, 174 - which would defeat the whole purpose of <tt>CONFIG_NO_HZ_IDLE</tt>. 175 - RCU uses the dynticks related fields in the <tt>rcu_data</tt> structure 176 - to track which CPUs are in dyntick idle mode. 177 - 178 - </p><p>Kernels built with <tt>CONFIG_PREEMPT_RCU</tt> support 179 - rcu_preempt in addition to rcu_sched and rcu_bh, as shown below: 180 - 181 - </p><p><img src="BigTreePreemptRCUBHdyntick.svg" alt="BigTreePreemptRCUBHdyntick.svg" width="35%"> 182 - 183 157 </p><p>RCU updaters wait for normal grace periods by registering 184 158 RCU callbacks, either directly via <tt>call_rcu()</tt> and 185 159 friends (namely <tt>call_rcu_bh()</tt> and <tt>call_rcu_sched()</tt>), 186 - there being a separate interface per flavor of RCU) 187 160 or indirectly via <tt>synchronize_rcu()</tt> and friends. 188 161 RCU callbacks are represented by <tt>rcu_head</tt> structures, 189 162 which are queued on <tt>rcu_data</tt> structures while they are ··· 251 278 The <tt>rcu_state</tt> Structure</a></h3> 252 279 253 280 <p>The <tt>rcu_state</tt> structure is the base structure that 254 - represents a flavor of RCU. 281 + represents the state of RCU in the system. 255 282 This structure forms the interconnection between the 256 283 <tt>rcu_node</tt> and <tt>rcu_data</tt> structures, 257 284 tracks grace periods, contains the lock used to ··· 346 373 The bottom two bits are the state of the current grace period, 347 374 which can be zero for not yet started or one for in progress. 348 375 In other words, if the bottom two bits of <tt>-&gt;gp_seq</tt> are 349 - zero, the corresponding flavor of RCU is idle. 376 + zero, then RCU is idle. 350 377 Any other value in the bottom two bits indicates that something is broken. 351 378 This field is protected by the root <tt>rcu_node</tt> structure's 352 379 <tt>-&gt;lock</tt> field. ··· 376 403 grace period in jiffies. 377 404 It is protected by the root <tt>rcu_node</tt>'s <tt>-&gt;lock</tt>. 378 405 379 - <p>The <tt>-&gt;name</tt> field points to the name of the RCU flavor 380 - (for example, &ldquo;rcu_sched&rdquo;), and is constant. 381 - The <tt>-&gt;abbr</tt> field contains a one-character abbreviation, 382 - for example, &ldquo;s&rdquo; for RCU-sched. 406 + <p>The <tt>-&gt;name</tt> and <tt>-&gt;abbr</tt> fields distinguish 407 + between preemptible RCU (&ldquo;rcu_preempt&rdquo; and &ldquo;p&rdquo;) 408 + and non-preemptible RCU (&ldquo;rcu_sched&rdquo; and &ldquo;s&rdquo;). 409 + These fields are used for diagnostic and tracing purposes. 383 410 384 411 <h3><a name="The rcu_node Structure"> 385 412 The <tt>rcu_node</tt> Structure</a></h3> ··· 945 972 <h3><a name="The rcu_data Structure"> 946 973 The <tt>rcu_data</tt> Structure</a></h3> 947 974 948 - <p>The <tt>rcu_data</tt> maintains the per-CPU state for the 949 - corresponding flavor of RCU. 975 + <p>The <tt>rcu_data</tt> maintains the per-CPU state for the RCU subsystem. 950 976 The fields in this structure may be accessed only from the corresponding 951 977 CPU (and from tracing) unless otherwise stated. 952 978 This structure is the ··· 1002 1030 3 bool cpu_no_qs; 1003 1031 4 bool core_needs_qs; 1004 1032 5 bool gpwrap; 1005 - 6 unsigned long rcu_qs_ctr_snap; 1006 1033 </pre> 1007 1034 1008 1035 <p>The <tt>-&gt;gp_seq</tt> and <tt>-&gt;gp_seq_needed</tt> ··· 1047 1076 <tt>gp_seq</tt> counter is in danger of overflow, which 1048 1077 will cause the CPU to disregard the values of its counters on 1049 1078 its next exit from idle. 1050 - Finally, the <tt>rcu_qs_ctr_snap</tt> field is used to detect 1051 - cases where a given operation has resulted in a quiescent state 1052 - for all flavors of RCU, for example, <tt>cond_resched()</tt> 1053 - when RCU has indicated a need for quiescent states. 1054 1079 1055 1080 <h5>RCU Callback Handling</h5> 1056 1081 ··· 1354 1387 <h3><a name="Summary"> 1355 1388 Summary</a></h3> 1356 1389 1357 - So each flavor of RCU is represented by an <tt>rcu_state</tt> structure, 1390 + So the state of RCU is represented by an <tt>rcu_state</tt> structure, 1358 1391 which contains a combining tree of <tt>rcu_node</tt> and 1359 1392 <tt>rcu_data</tt> structures. 1360 1393 Finally, in <tt>CONFIG_NO_HZ_IDLE</tt> kernels, each CPU's dyntick-idle
+322 -534
Documentation/RCU/Design/Data-Structures/blkd_task.svg
··· 14 14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 15 15 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 16 16 width="10.1in" 17 - height="8.6in" 18 - viewBox="-44 -44 12088 10288" 17 + height="6.5999999in" 18 + viewBox="-44 -44 12088 7895.4414" 19 19 id="svg2" 20 20 version="1.1" 21 - inkscape:version="0.48.4 r9939" 22 - sodipodi:docname="blkd_task.fig"> 21 + inkscape:version="0.92.2pre0 (973e216, 2017-07-25)" 22 + sodipodi:docname="blkd_task.svg"> 23 23 <metadata 24 24 id="metadata212"> 25 25 <rdf:RDF> ··· 37 37 <marker 38 38 inkscape:stockid="Arrow1Mend" 39 39 orient="auto" 40 - refY="0.0" 41 - refX="0.0" 40 + refY="0" 41 + refX="0" 42 42 id="Arrow1Mend" 43 - style="overflow:visible;"> 43 + style="overflow:visible"> 44 44 <path 45 45 id="path3970" 46 - d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " 47 - style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;" 48 - transform="scale(0.4) rotate(180) translate(10,0)" /> 46 + d="M 0,0 5,-5 -12.5,0 5,5 Z" 47 + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt" 48 + transform="matrix(-0.4,0,0,-0.4,-4,0)" 49 + inkscape:connector-curvature="0" /> 49 50 </marker> 50 51 </defs> 51 52 <sodipodi:namedview ··· 58 57 guidetolerance="10" 59 58 inkscape:pageopacity="0" 60 59 inkscape:pageshadow="2" 61 - inkscape:window-width="1087" 62 - inkscape:window-height="1144" 60 + inkscape:window-width="1920" 61 + inkscape:window-height="1019" 63 62 id="namedview208" 64 63 showgrid="false" 65 64 inkscape:zoom="1.0495049" 66 - inkscape:cx="454.50003" 67 - inkscape:cy="387.00003" 68 - inkscape:window-x="833" 69 - inkscape:window-y="28" 70 - inkscape:window-maximized="0" 71 - inkscape:current-layer="g4" /> 65 + inkscape:cx="456.40569" 66 + inkscape:cy="348.88682" 67 + inkscape:window-x="0" 68 + inkscape:window-y="0" 69 + inkscape:window-maximized="1" 70 + inkscape:current-layer="g4" 71 + showguides="false" /> 72 72 <g 73 - style="stroke-width:.025in; fill:none" 74 - id="g4"> 73 + style="fill:none;stroke-width:0.025in" 74 + id="g4" 75 + transform="translate(0,-2393.6637)"> 75 76 <!-- Line: box --> 76 - <rect 77 - x="450" 78 - y="0" 79 - width="6300" 80 - height="7350" 81 - rx="0" 82 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; " 83 - id="rect6" /> 84 77 <!-- Line: box --> 85 - <rect 86 - x="4950" 87 - y="4950" 88 - width="1500" 89 - height="900" 90 - rx="0" 91 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 92 - id="rect8" /> 93 78 <!-- Line: box --> 94 - <rect 95 - x="750" 96 - y="600" 97 - width="5700" 98 - height="3750" 99 - rx="0" 100 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffff00; " 101 - id="rect10" /> 102 79 <!-- Line --> 103 - <polyline 104 - points="5250,8100 5688,5912 " 105 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 106 - id="polyline12" /> 107 80 <!-- Arrowhead on XXXpoint 5250 8100 - 5710 5790--> 108 81 <polyline 109 82 points="5714 6068 5704 5822 5598 6044 " 110 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 111 - id="polyline14" /> 83 + style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8" 84 + id="polyline14" 85 + transform="translate(23.757862,2185.7233)" /> 112 86 <!-- Line --> 113 - <polyline 114 - points="4050,9300 4486,7262 " 115 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 116 - id="polyline16" /> 117 87 <!-- Arrowhead on XXXpoint 4050 9300 - 4512 7140--> 118 88 <polyline 119 89 points="4514 7418 4506 7172 4396 7394 " 120 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 121 - id="polyline18" /> 90 + style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8" 91 + id="polyline18" 92 + transform="translate(23.757862,2185.7233)" /> 122 93 <!-- Line --> 123 - <polyline 124 - points="1040,9300 1476,7262 " 125 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 126 - id="polyline20" /> 127 94 <!-- Arrowhead on XXXpoint 1040 9300 - 1502 7140--> 128 95 <polyline 129 96 points="1504 7418 1496 7172 1386 7394 " 130 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 131 - id="polyline22" /> 97 + style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8" 98 + id="polyline22" 99 + transform="translate(23.757862,2185.7233)" /> 132 100 <!-- Line --> 133 - <polyline 134 - points="2240,8100 2676,6062 " 135 - style="stroke:#00ff00;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 136 - id="polyline24" /> 137 101 <!-- Arrowhead on XXXpoint 2240 8100 - 2702 5940--> 138 102 <polyline 139 103 points="2704 6218 2696 5972 2586 6194 " 140 - style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8; " 141 - id="polyline26" /> 104 + style="stroke:#00ff00;stroke-width:14;stroke-miterlimit:8" 105 + id="polyline26" 106 + transform="translate(23.757862,2185.7233)" /> 142 107 <!-- Line: box --> 143 108 <rect 144 - x="0" 145 - y="450" 109 + x="23.757858" 110 + y="2635.7231" 146 111 width="6300" 147 112 height="7350" 148 113 rx="0" 149 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffffff; " 114 + style="fill:#ffffff;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 150 115 id="rect28" /> 151 116 <!-- Line: box --> 152 117 <rect 153 - x="300" 154 - y="1050" 118 + x="323.75787" 119 + y="3235.7231" 155 120 width="5700" 156 121 height="3750" 157 122 rx="0" 158 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffff00; " 123 + style="fill:#ffff00;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 159 124 id="rect30" /> 160 125 <!-- Line --> 161 126 <polyline 162 127 points="1350,3450 2350,2590 " 163 - style="stroke:#00d1d1;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 164 - id="polyline32" /> 128 + style="stroke:#00d1d1;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 129 + id="polyline32" 130 + transform="translate(23.757862,2185.7233)" /> 165 131 <!-- Arrowhead on XXXpoint 1350 3450 - 2444 2510--> 166 132 <!-- Line --> 167 133 <polyline 168 134 points="4950,3450 3948,2590 " 169 - style="stroke:#00d1d1;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 170 - id="polyline36" /> 135 + style="stroke:#00d1d1;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 136 + id="polyline36" 137 + transform="translate(23.757862,2185.7233)" /> 171 138 <!-- Arrowhead on XXXpoint 4950 3450 - 3854 2510--> 172 139 <!-- Line --> 173 140 <polyline 174 141 points="4050,6600 4050,4414 " 175 - style="stroke:#00d1d1;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 176 - id="polyline40" /> 142 + style="stroke:#00d1d1;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 143 + id="polyline40" 144 + transform="translate(23.757862,2185.7233)" /> 177 145 <!-- Arrowhead on XXXpoint 4050 6600 - 4050 4290--> 178 146 <!-- Line --> 179 147 <polyline 180 148 points="1050,6600 1050,4414 " 181 - style="stroke:#00d1d1;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 182 - id="polyline44" /> 149 + style="stroke:#00d1d1;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 150 + id="polyline44" 151 + transform="translate(23.757862,2185.7233)" /> 183 152 <!-- Arrowhead on XXXpoint 1050 6600 - 1050 4290--> 184 153 <!-- Line --> 185 154 <polyline 186 155 points="2250,5400 2250,4414 " 187 - style="stroke:#00d1d1;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 188 - id="polyline48" /> 156 + style="stroke:#00d1d1;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 157 + id="polyline48" 158 + transform="translate(23.757862,2185.7233)" /> 189 159 <!-- Arrowhead on XXXpoint 2250 5400 - 2250 4290--> 190 160 <!-- Line --> 191 - <polyline 192 - points="2250,8100 2250,6364 " 193 - style="stroke:#00ff00;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 194 - id="polyline52" /> 195 161 <!-- Arrowhead on XXXpoint 2250 8100 - 2250 6240--> 196 162 <!-- Line --> 197 - <polyline 198 - points="1050,9300 1050,7564 " 199 - style="stroke:#00ff00;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 200 - id="polyline56" /> 201 163 <!-- Arrowhead on XXXpoint 1050 9300 - 1050 7440--> 202 164 <!-- Line --> 203 - <polyline 204 - points="4050,9300 4050,7564 " 205 - style="stroke:#00ff00;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 206 - id="polyline60" /> 207 165 <!-- Arrowhead on XXXpoint 4050 9300 - 4050 7440--> 208 166 <!-- Line --> 209 - <polyline 210 - points="5250,8100 5250,6364 " 211 - style="stroke:#00ff00;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 212 - id="polyline64" /> 213 167 <!-- Arrowhead on XXXpoint 5250 8100 - 5250 6240--> 214 168 <!-- Circle --> 215 169 <circle 216 - cx="2850" 217 - cy="3900" 170 + cx="2873.7581" 171 + cy="6085.7236" 218 172 r="76" 219 - style="fill:#000000;stroke:#000000;stroke-width:14;" 173 + style="fill:#000000;stroke:#000000;stroke-width:14" 220 174 id="circle68" /> 221 175 <!-- Circle --> 222 176 <circle 223 - cx="3150" 224 - cy="3900" 177 + cx="3173.7581" 178 + cy="6085.7236" 225 179 r="76" 226 - style="fill:#000000;stroke:#000000;stroke-width:14;" 180 + style="fill:#000000;stroke:#000000;stroke-width:14" 227 181 id="circle70" /> 228 182 <!-- Circle --> 229 183 <circle 230 - cx="3450" 231 - cy="3900" 184 + cx="3473.7581" 185 + cy="6085.7236" 232 186 r="76" 233 - style="fill:#000000;stroke:#000000;stroke-width:14;" 187 + style="fill:#000000;stroke:#000000;stroke-width:14" 234 188 id="circle72" /> 235 189 <!-- Circle --> 236 190 <circle 237 - cx="1350" 238 - cy="5100" 191 + cx="1373.7578" 192 + cy="7285.7236" 239 193 r="76" 240 - style="fill:#000000;stroke:#000000;stroke-width:14;" 194 + style="fill:#000000;stroke:#000000;stroke-width:14" 241 195 id="circle74" /> 242 196 <!-- Circle --> 243 197 <circle 244 - cx="1650" 245 - cy="5100" 198 + cx="1673.7578" 199 + cy="7285.7236" 246 200 r="76" 247 - style="fill:#000000;stroke:#000000;stroke-width:14;" 201 + style="fill:#000000;stroke:#000000;stroke-width:14" 248 202 id="circle76" /> 249 203 <!-- Circle --> 250 204 <circle 251 - cx="1950" 252 - cy="5100" 205 + cx="1973.7578" 206 + cy="7285.7236" 253 207 r="76" 254 - style="fill:#000000;stroke:#000000;stroke-width:14;" 208 + style="fill:#000000;stroke:#000000;stroke-width:14" 255 209 id="circle78" /> 256 210 <!-- Circle --> 257 211 <circle 258 - cx="4350" 259 - cy="5100" 212 + cx="4373.7578" 213 + cy="7285.7236" 260 214 r="76" 261 - style="fill:#000000;stroke:#000000;stroke-width:14;" 215 + style="fill:#000000;stroke:#000000;stroke-width:14" 262 216 id="circle80" /> 263 217 <!-- Circle --> 264 218 <circle 265 - cx="4650" 266 - cy="5100" 219 + cx="4673.7578" 220 + cy="7285.7236" 267 221 r="76" 268 - style="fill:#000000;stroke:#000000;stroke-width:14;" 222 + style="fill:#000000;stroke:#000000;stroke-width:14" 269 223 id="circle82" /> 270 224 <!-- Circle --> 271 225 <circle 272 - cx="4950" 273 - cy="5100" 226 + cx="4973.7578" 227 + cy="7285.7236" 274 228 r="76" 275 - style="fill:#000000;stroke:#000000;stroke-width:14;" 229 + style="fill:#000000;stroke:#000000;stroke-width:14" 276 230 id="circle84" /> 277 231 <!-- Line: box --> 278 232 <rect 279 - x="750" 280 - y="3450" 233 + x="773.75781" 234 + y="5635.7236" 281 235 width="1800" 282 236 height="900" 283 237 rx="0" 284 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 238 + style="fill:#ffbfbf;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 285 239 id="rect86" /> 286 240 <!-- Line: box --> 287 241 <rect 288 - x="300" 289 - y="6600" 242 + x="323.75787" 243 + y="8785.7227" 290 244 width="1500" 291 245 height="900" 292 246 rx="0" 293 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 247 + style="fill:#87cfff;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 294 248 id="rect88" /> 295 249 <!-- Line: box --> 296 250 <rect 297 - x="4500" 298 - y="5400" 251 + x="4523.7578" 252 + y="7585.7236" 299 253 width="1500" 300 254 height="900" 301 255 rx="0" 302 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 256 + style="fill:#87cfff;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 303 257 id="rect90" /> 304 258 <!-- Line: box --> 305 259 <rect 306 - x="3300" 307 - y="6600" 260 + x="3323.7581" 261 + y="8785.7227" 308 262 width="1500" 309 263 height="900" 310 264 rx="0" 311 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 265 + style="fill:#87cfff;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 312 266 id="rect92" /> 313 267 <!-- Line: box --> 314 268 <rect 315 - x="2250" 316 - y="1650" 269 + x="2273.7581" 270 + y="3835.7231" 317 271 width="1800" 318 272 height="900" 319 273 rx="0" 320 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 274 + style="fill:#ffbfbf;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 321 275 id="rect94" /> 322 276 <!-- Line: box --> 323 - <rect 324 - x="0" 325 - y="9300" 326 - width="2100" 327 - height="900" 328 - rx="0" 329 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ff00; " 330 - id="rect96" /> 277 + <!-- Line: box --> 278 + <!-- Line: box --> 279 + <!-- Line: box --> 331 280 <!-- Line: box --> 332 281 <rect 333 - x="1350" 334 - y="8100" 335 - width="2100" 336 - height="900" 337 - rx="0" 338 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ff00; " 339 - id="rect98" /> 340 - <!-- Line: box --> 341 - <rect 342 - x="3000" 343 - y="9300" 344 - width="2100" 345 - height="900" 346 - rx="0" 347 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ff00; " 348 - id="rect100" /> 349 - <!-- Line: box --> 350 - <rect 351 - x="4350" 352 - y="8100" 353 - width="2100" 354 - height="900" 355 - rx="0" 356 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#00ff00; " 357 - id="rect102" /> 358 - <!-- Line: box --> 359 - <rect 360 - x="1500" 361 - y="5400" 282 + x="1523.7578" 283 + y="7585.7236" 362 284 width="1500" 363 285 height="900" 364 286 rx="0" 365 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#87cfff; " 287 + style="fill:#87cfff;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 366 288 id="rect104" /> 367 289 <!-- Line --> 368 290 <polygon 369 - points="5550,3450 7350,2850 7350,5100 5550,4350 5550,3450 " 370 - style="stroke:#000000;stroke-width:14; stroke-linejoin:miter; stroke-linecap:butt; stroke-dasharray:120 120;fill:#ffbfbf; " 371 - id="polygon106" /> 291 + points="7350,2850 7350,5100 5550,4350 5550,3450 " 292 + style="fill:#ffbfbf;stroke:#000000;stroke-width:14;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:120, 120" 293 + id="polygon106" 294 + transform="translate(23.757862,2185.7233)" /> 372 295 <!-- Line --> 373 296 <polyline 374 297 points="9300,3150 10734,3150 " 375 - style="stroke:#000000;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 376 - id="polyline108" /> 298 + style="stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 299 + id="polyline108" 300 + transform="translate(23.757862,2185.7233)" /> 377 301 <!-- Arrowhead on XXXpoint 9300 3150 - 10860 3150--> 378 302 <!-- Line: box --> 379 303 <rect 380 - x="10800" 381 - y="2850" 304 + x="10823.758" 305 + y="5035.7236" 382 306 width="1200" 383 307 height="750" 384 308 rx="0" 385 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 309 + style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 386 310 id="rect112" /> 387 311 <!-- Line --> 388 312 <polyline 389 313 points="11400,3600 11400,4284 " 390 - style="stroke:#000000;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 391 - id="polyline114" /> 314 + style="stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 315 + id="polyline114" 316 + transform="translate(23.757862,2185.7233)" /> 392 317 <!-- Arrowhead on XXXpoint 11400 3600 - 11400 4410--> 393 318 <!-- Line: box --> 394 319 <rect 395 - x="10800" 396 - y="4350" 320 + x="10823.758" 321 + y="6535.7236" 397 322 width="1200" 398 323 height="750" 399 324 rx="0" 400 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 325 + style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 401 326 id="rect118" /> 402 327 <!-- Line --> 403 328 <polyline 404 329 points="11400,5100 11400,5784 " 405 - style="stroke:#000000;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 406 - id="polyline120" /> 330 + style="stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 331 + id="polyline120" 332 + transform="translate(23.757862,2185.7233)" /> 407 333 <!-- Arrowhead on XXXpoint 11400 5100 - 11400 5910--> 408 334 <!-- Line: box --> 409 335 <rect 410 - x="10800" 411 - y="5850" 336 + x="10823.758" 337 + y="8035.7236" 412 338 width="1200" 413 339 height="750" 414 340 rx="0" 415 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; " 341 + style="stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 416 342 id="rect124" /> 417 343 <!-- Line --> 418 344 <polyline 419 345 points="9300,3900 9900,3900 9900,4650 10734,4650 " 420 - style="stroke:#000000;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 421 - id="polyline126" /> 346 + style="stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 347 + id="polyline126" 348 + transform="translate(23.757862,2185.7233)" /> 422 349 <!-- Arrowhead on XXXpoint 9900 4650 - 10860 4650--> 423 350 <!-- Line --> 424 351 <polyline 425 352 points="9300,4650 9600,4650 9600,6150 10734,6150 " 426 - style="stroke:#000000;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 427 - id="polyline130" /> 353 + style="stroke:#000000;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 354 + id="polyline130" 355 + transform="translate(23.757862,2185.7233)" /> 428 356 <!-- Arrowhead on XXXpoint 9600 6150 - 10860 6150--> 429 357 <!-- Text --> 358 + <!-- Text --> 430 359 <text 431 360 xml:space="preserve" 432 - x="6450" 433 - y="300" 434 - fill="#000000" 435 - font-family="Helvetica" 361 + x="3173.7581" 362 + y="4135.7231" 363 + font-style="normal" 364 + font-weight="bold" 365 + font-size="192" 366 + id="text136" 367 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:middle;fill:#000000">struct</text> 368 + <!-- Text --> 369 + <text 370 + xml:space="preserve" 371 + x="3173.7581" 372 + y="4435.7236" 373 + font-style="normal" 374 + font-weight="bold" 375 + font-size="192" 376 + id="text138" 377 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:middle;fill:#000000">rcu_node</text> 378 + <!-- Text --> 379 + <text 380 + xml:space="preserve" 381 + x="1673.7578" 382 + y="5935.7236" 383 + font-style="normal" 384 + font-weight="bold" 385 + font-size="192" 386 + id="text140" 387 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:middle;fill:#000000">struct</text> 388 + <!-- Text --> 389 + <text 390 + xml:space="preserve" 391 + x="1673.7578" 392 + y="6235.7236" 393 + font-style="normal" 394 + font-weight="bold" 395 + font-size="192" 396 + id="text142" 397 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:middle;fill:#000000">rcu_node</text> 398 + <!-- Text --> 399 + <text 400 + xml:space="preserve" 401 + x="2273.7581" 402 + y="7885.7236" 403 + font-style="normal" 404 + font-weight="bold" 405 + font-size="192" 406 + id="text144" 407 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:middle;fill:#000000">struct</text> 408 + <!-- Text --> 409 + <text 410 + xml:space="preserve" 411 + x="2273.7581" 412 + y="8185.7236" 413 + font-style="normal" 414 + font-weight="bold" 415 + font-size="192" 416 + id="text146" 417 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:middle;fill:#000000">rcu_data</text> 418 + <!-- Text --> 419 + <text 420 + xml:space="preserve" 421 + x="1073.7578" 422 + y="9085.7227" 423 + font-style="normal" 424 + font-weight="bold" 425 + font-size="192" 426 + id="text148" 427 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:middle;fill:#000000">struct</text> 428 + <!-- Text --> 429 + <text 430 + xml:space="preserve" 431 + x="1073.7578" 432 + y="9385.7227" 433 + font-style="normal" 434 + font-weight="bold" 435 + font-size="192" 436 + id="text150" 437 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:middle;fill:#000000">rcu_data</text> 438 + <!-- Text --> 439 + <text 440 + xml:space="preserve" 441 + x="5273.7578" 442 + y="7885.7236" 443 + font-style="normal" 444 + font-weight="bold" 445 + font-size="192" 446 + id="text152" 447 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:middle;fill:#000000">struct</text> 448 + <!-- Text --> 449 + <text 450 + xml:space="preserve" 451 + x="5273.7578" 452 + y="8185.7236" 453 + font-style="normal" 454 + font-weight="bold" 455 + font-size="192" 456 + id="text154" 457 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:middle;fill:#000000">rcu_data</text> 458 + <!-- Text --> 459 + <text 460 + xml:space="preserve" 461 + x="4073.7578" 462 + y="9085.7227" 463 + font-style="normal" 464 + font-weight="bold" 465 + font-size="192" 466 + id="text156" 467 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:middle;fill:#000000">struct</text> 468 + <!-- Text --> 469 + <text 470 + xml:space="preserve" 471 + x="4073.7578" 472 + y="9385.7227" 473 + font-style="normal" 474 + font-weight="bold" 475 + font-size="192" 476 + id="text158" 477 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:middle;fill:#000000">rcu_data</text> 478 + <!-- Text --> 479 + <text 480 + xml:space="preserve" 481 + x="473.75784" 482 + y="3535.7231" 483 + font-style="normal" 484 + font-weight="bold" 485 + font-size="192" 486 + id="text160" 487 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:start;fill:#000000">struct rcu_state</text> 488 + <!-- Text --> 489 + <!-- Text --> 490 + <!-- Text --> 491 + <!-- Text --> 492 + <!-- Text --> 493 + <!-- Text --> 494 + <!-- Text --> 495 + <!-- Text --> 496 + <!-- Text --> 497 + <text 498 + xml:space="preserve" 499 + x="6023.7578" 500 + y="2935.7231" 436 501 font-style="normal" 437 502 font-weight="normal" 438 503 font-size="192" 439 - text-anchor="end" 440 - id="text134">rcu_bh</text> 504 + id="text178" 505 + style="font-style:normal;font-weight:normal;font-size:192px;font-family:Helvetica;text-anchor:end;fill:#000000">rcu_state</text> 441 506 <!-- Text --> 442 507 <text 443 508 xml:space="preserve" 444 - x="3150" 445 - y="1950" 446 - fill="#000000" 447 - font-family="Courier" 448 - font-style="normal" 449 - font-weight="bold" 450 - font-size="192" 451 - text-anchor="middle" 452 - id="text136">struct</text> 453 - <!-- Text --> 454 - <text 455 - xml:space="preserve" 456 - x="3150" 457 - y="2250" 458 - fill="#000000" 459 - font-family="Courier" 460 - font-style="normal" 461 - font-weight="bold" 462 - font-size="192" 463 - text-anchor="middle" 464 - id="text138">rcu_node</text> 465 - <!-- Text --> 466 - <text 467 - xml:space="preserve" 468 - x="1650" 469 - y="3750" 470 - fill="#000000" 471 - font-family="Courier" 472 - font-style="normal" 473 - font-weight="bold" 474 - font-size="192" 475 - text-anchor="middle" 476 - id="text140">struct</text> 477 - <!-- Text --> 478 - <text 479 - xml:space="preserve" 480 - x="1650" 481 - y="4050" 482 - fill="#000000" 483 - font-family="Courier" 484 - font-style="normal" 485 - font-weight="bold" 486 - font-size="192" 487 - text-anchor="middle" 488 - id="text142">rcu_node</text> 489 - <!-- Text --> 490 - <text 491 - xml:space="preserve" 492 - x="2250" 493 - y="5700" 494 - fill="#000000" 495 - font-family="Courier" 496 - font-style="normal" 497 - font-weight="bold" 498 - font-size="192" 499 - text-anchor="middle" 500 - id="text144">struct</text> 501 - <!-- Text --> 502 - <text 503 - xml:space="preserve" 504 - x="2250" 505 - y="6000" 506 - fill="#000000" 507 - font-family="Courier" 508 - font-style="normal" 509 - font-weight="bold" 510 - font-size="192" 511 - text-anchor="middle" 512 - id="text146">rcu_data</text> 513 - <!-- Text --> 514 - <text 515 - xml:space="preserve" 516 - x="1050" 517 - y="6900" 518 - fill="#000000" 519 - font-family="Courier" 520 - font-style="normal" 521 - font-weight="bold" 522 - font-size="192" 523 - text-anchor="middle" 524 - id="text148">struct</text> 525 - <!-- Text --> 526 - <text 527 - xml:space="preserve" 528 - x="1050" 529 - y="7200" 530 - fill="#000000" 531 - font-family="Courier" 532 - font-style="normal" 533 - font-weight="bold" 534 - font-size="192" 535 - text-anchor="middle" 536 - id="text150">rcu_data</text> 537 - <!-- Text --> 538 - <text 539 - xml:space="preserve" 540 - x="5250" 541 - y="5700" 542 - fill="#000000" 543 - font-family="Courier" 544 - font-style="normal" 545 - font-weight="bold" 546 - font-size="192" 547 - text-anchor="middle" 548 - id="text152">struct</text> 549 - <!-- Text --> 550 - <text 551 - xml:space="preserve" 552 - x="5250" 553 - y="6000" 554 - fill="#000000" 555 - font-family="Courier" 556 - font-style="normal" 557 - font-weight="bold" 558 - font-size="192" 559 - text-anchor="middle" 560 - id="text154">rcu_data</text> 561 - <!-- Text --> 562 - <text 563 - xml:space="preserve" 564 - x="4050" 565 - y="6900" 566 - fill="#000000" 567 - font-family="Courier" 568 - font-style="normal" 569 - font-weight="bold" 570 - font-size="192" 571 - text-anchor="middle" 572 - id="text156">struct</text> 573 - <!-- Text --> 574 - <text 575 - xml:space="preserve" 576 - x="4050" 577 - y="7200" 578 - fill="#000000" 579 - font-family="Courier" 580 - font-style="normal" 581 - font-weight="bold" 582 - font-size="192" 583 - text-anchor="middle" 584 - id="text158">rcu_data</text> 585 - <!-- Text --> 586 - <text 587 - xml:space="preserve" 588 - x="450" 589 - y="1350" 590 - fill="#000000" 591 - font-family="Courier" 592 - font-style="normal" 593 - font-weight="bold" 594 - font-size="192" 595 - text-anchor="start" 596 - id="text160">struct rcu_state</text> 597 - <!-- Text --> 598 - <text 599 - xml:space="preserve" 600 - x="1050" 601 - y="9600" 602 - fill="#000000" 603 - font-family="Courier" 604 - font-style="normal" 605 - font-weight="bold" 606 - font-size="192" 607 - text-anchor="middle" 608 - id="text162">struct</text> 609 - <!-- Text --> 610 - <text 611 - xml:space="preserve" 612 - x="1050" 613 - y="9900" 614 - fill="#000000" 615 - font-family="Courier" 616 - font-style="normal" 617 - font-weight="bold" 618 - font-size="192" 619 - text-anchor="middle" 620 - id="text164">rcu_dynticks</text> 621 - <!-- Text --> 622 - <text 623 - xml:space="preserve" 624 - x="4050" 625 - y="9600" 626 - fill="#000000" 627 - font-family="Courier" 628 - font-style="normal" 629 - font-weight="bold" 630 - font-size="192" 631 - text-anchor="middle" 632 - id="text166">struct</text> 633 - <!-- Text --> 634 - <text 635 - xml:space="preserve" 636 - x="4050" 637 - y="9900" 638 - fill="#000000" 639 - font-family="Courier" 640 - font-style="normal" 641 - font-weight="bold" 642 - font-size="192" 643 - text-anchor="middle" 644 - id="text168">rcu_dynticks</text> 645 - <!-- Text --> 646 - <text 647 - xml:space="preserve" 648 - x="2400" 649 - y="8400" 650 - fill="#000000" 651 - font-family="Courier" 652 - font-style="normal" 653 - font-weight="bold" 654 - font-size="192" 655 - text-anchor="middle" 656 - id="text170">struct</text> 657 - <!-- Text --> 658 - <text 659 - xml:space="preserve" 660 - x="2400" 661 - y="8700" 662 - fill="#000000" 663 - font-family="Courier" 664 - font-style="normal" 665 - font-weight="bold" 666 - font-size="192" 667 - text-anchor="middle" 668 - id="text172">rcu_dynticks</text> 669 - <!-- Text --> 670 - <text 671 - xml:space="preserve" 672 - x="5400" 673 - y="8400" 674 - fill="#000000" 675 - font-family="Courier" 676 - font-style="normal" 677 - font-weight="bold" 678 - font-size="192" 679 - text-anchor="middle" 680 - id="text174">struct</text> 681 - <!-- Text --> 682 - <text 683 - xml:space="preserve" 684 - x="5400" 685 - y="8700" 686 - fill="#000000" 687 - font-family="Courier" 688 - font-style="normal" 689 - font-weight="bold" 690 - font-size="192" 691 - text-anchor="middle" 692 - id="text176">rcu_dynticks</text> 693 - <!-- Text --> 694 - <text 695 - xml:space="preserve" 696 - x="6000" 697 - y="750" 698 - fill="#000000" 699 - font-family="Helvetica" 700 - font-style="normal" 701 - font-weight="normal" 702 - font-size="192" 703 - text-anchor="end" 704 - id="text178">rcu_sched</text> 705 - <!-- Text --> 706 - <text 707 - xml:space="preserve" 708 - x="11400" 709 - y="3300" 710 - fill="#000000" 711 - font-family="Helvetica" 509 + x="11423.758" 510 + y="5485.7236" 712 511 font-style="normal" 713 512 font-weight="normal" 714 513 font-size="216" 715 - text-anchor="middle" 716 - id="text180">T3</text> 514 + id="text180" 515 + style="font-style:normal;font-weight:normal;font-size:216px;font-family:Helvetica;text-anchor:middle;fill:#000000">T3</text> 717 516 <!-- Text --> 718 517 <text 719 518 xml:space="preserve" 720 - x="11400" 721 - y="4800" 722 - fill="#000000" 723 - font-family="Helvetica" 519 + x="11423.758" 520 + y="6985.7236" 724 521 font-style="normal" 725 522 font-weight="normal" 726 523 font-size="216" 727 - text-anchor="middle" 728 - id="text182">T2</text> 524 + id="text182" 525 + style="font-style:normal;font-weight:normal;font-size:216px;font-family:Helvetica;text-anchor:middle;fill:#000000">T2</text> 729 526 <!-- Text --> 730 527 <text 731 528 xml:space="preserve" 732 - x="11400" 733 - y="6300" 734 - fill="#000000" 735 - font-family="Helvetica" 529 + x="11423.758" 530 + y="8485.7227" 736 531 font-style="normal" 737 532 font-weight="normal" 738 533 font-size="216" 739 - text-anchor="middle" 740 - id="text184">T1</text> 534 + id="text184" 535 + style="font-style:normal;font-weight:normal;font-size:216px;font-family:Helvetica;text-anchor:middle;fill:#000000">T1</text> 741 536 <!-- Line --> 742 537 <polyline 743 538 points="5250,5400 5250,4414 " 744 - style="stroke:#00d1d1;stroke-width:30.00057884;stroke-linejoin:miter;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 745 - id="polyline186" /> 539 + style="stroke:#00d1d1;stroke-width:30.00057793;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" 540 + id="polyline186" 541 + transform="translate(23.757862,2185.7233)" /> 746 542 <!-- Arrowhead on XXXpoint 5250 5400 - 5250 4290--> 747 543 <!-- Line: box --> 748 544 <rect 749 - x="3750" 750 - y="3450" 545 + x="3773.7581" 546 + y="5635.7236" 751 547 width="1800" 752 548 height="900" 753 549 rx="0" 754 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 550 + style="fill:#ffbfbf;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 755 551 id="rect190" /> 756 552 <!-- Line: box --> 757 553 <rect 758 - x="7350" 759 - y="2850" 554 + x="7373.7578" 555 + y="5035.7236" 760 556 width="1950" 761 557 height="750" 762 558 rx="0" 763 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 559 + style="fill:#ffbfbf;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 764 560 id="rect192" /> 765 561 <!-- Line: box --> 766 562 <rect 767 - x="7350" 768 - y="3600" 563 + x="7373.7578" 564 + y="5785.7236" 769 565 width="1950" 770 566 height="750" 771 567 rx="0" 772 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 568 + style="fill:#ffbfbf;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 773 569 id="rect194" /> 774 570 <!-- Line: box --> 775 571 <rect 776 - x="7350" 777 - y="4350" 572 + x="7373.7578" 573 + y="6535.7236" 778 574 width="1950" 779 575 height="750" 780 576 rx="0" 781 - style="stroke:#000000;stroke-width:30; stroke-linejoin:miter; stroke-linecap:butt; fill:#ffbfbf; " 577 + style="fill:#ffbfbf;stroke:#000000;stroke-width:30;stroke-linecap:butt;stroke-linejoin:miter" 782 578 id="rect196" /> 783 579 <!-- Text --> 784 580 <text 785 581 xml:space="preserve" 786 - x="4650" 787 - y="4050" 788 - fill="#000000" 789 - font-family="Courier" 582 + x="4673.7578" 583 + y="6235.7236" 790 584 font-style="normal" 791 585 font-weight="bold" 792 586 font-size="192" 793 - text-anchor="middle" 794 - id="text198">rcu_node</text> 587 + id="text198" 588 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:middle;fill:#000000">rcu_node</text> 795 589 <!-- Text --> 796 590 <text 797 591 xml:space="preserve" 798 - x="4650" 799 - y="3750" 800 - fill="#000000" 801 - font-family="Courier" 592 + x="4673.7578" 593 + y="5935.7236" 802 594 font-style="normal" 803 595 font-weight="bold" 804 596 font-size="192" 805 - text-anchor="middle" 806 - id="text200">struct</text> 597 + id="text200" 598 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:middle;fill:#000000">struct</text> 807 599 <!-- Text --> 808 600 <text 809 601 xml:space="preserve" 810 - x="7500" 811 - y="3300" 812 - fill="#000000" 813 - font-family="Courier" 602 + x="7523.7578" 603 + y="5485.7236" 814 604 font-style="normal" 815 605 font-weight="bold" 816 606 font-size="192" 817 - text-anchor="start" 818 - id="text202">blkd_tasks</text> 607 + id="text202" 608 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:start;fill:#000000">blkd_tasks</text> 819 609 <!-- Text --> 820 610 <text 821 611 xml:space="preserve" 822 - x="7500" 823 - y="4050" 824 - fill="#000000" 825 - font-family="Courier" 612 + x="7523.7578" 613 + y="6235.7236" 826 614 font-style="normal" 827 615 font-weight="bold" 828 616 font-size="192" 829 - text-anchor="start" 830 - id="text204">gp_tasks</text> 617 + id="text204" 618 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:start;fill:#000000">gp_tasks</text> 831 619 <!-- Text --> 832 620 <text 833 621 xml:space="preserve" 834 - x="7500" 835 - y="4800" 836 - fill="#000000" 837 - font-family="Courier" 622 + x="7523.7578" 623 + y="6985.7236" 838 624 font-style="normal" 839 625 font-weight="bold" 840 626 font-size="192" 841 - text-anchor="start" 842 - id="text206">exp_tasks</text> 627 + id="text206" 628 + style="font-style:normal;font-weight:bold;font-size:192px;font-family:Courier;text-anchor:start;fill:#000000">exp_tasks</text> 843 629 </g> 844 630 </svg>