documentation: Remove unnecessary images from requirements
This commit removes a cutesy cartoon and also a diagram that can just as easily be represented by text. Reported-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
Родитель
514f1eb5f4
Коммит
11a65df573
Двоичные данные
Documentation/RCU/Design/Requirements/2013-08-is-it-dead.png
Двоичные данные
Documentation/RCU/Design/Requirements/2013-08-is-it-dead.png
Двоичный файл не отображается.
До Ширина: | Высота: | Размер: 98 KiB |
|
@ -1,237 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Creator: fig2dev Version 3.2 Patchlevel 5d -->
|
|
||||||
|
|
||||||
<!-- CreationDate: Tue Mar 4 18:34:25 2014 -->
|
|
||||||
|
|
||||||
<!-- Magnification: 3.000 -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="1089.1382"
|
|
||||||
height="668.21368"
|
|
||||||
viewBox="-2121 -36 14554.634 8876.4061"
|
|
||||||
id="svg2"
|
|
||||||
version="1.1"
|
|
||||||
inkscape:version="0.48.3.1 r9886"
|
|
||||||
sodipodi:docname="RCUApplicability.svg">
|
|
||||||
<metadata
|
|
||||||
id="metadata40">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<defs
|
|
||||||
id="defs38" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1"
|
|
||||||
objecttolerance="10"
|
|
||||||
gridtolerance="10"
|
|
||||||
guidetolerance="10"
|
|
||||||
inkscape:pageopacity="0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:window-width="849"
|
|
||||||
inkscape:window-height="639"
|
|
||||||
id="namedview36"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:zoom="0.51326165"
|
|
||||||
inkscape:cx="544.56912"
|
|
||||||
inkscape:cy="334.10686"
|
|
||||||
inkscape:window-x="149"
|
|
||||||
inkscape:window-y="448"
|
|
||||||
inkscape:window-maximized="0"
|
|
||||||
inkscape:current-layer="g4"
|
|
||||||
fit-margin-top="5"
|
|
||||||
fit-margin-left="5"
|
|
||||||
fit-margin-right="5"
|
|
||||||
fit-margin-bottom="5" />
|
|
||||||
<g
|
|
||||||
style="fill:none;stroke-width:0.025in"
|
|
||||||
id="g4"
|
|
||||||
transform="translate(-2043.6828,14.791398)">
|
|
||||||
<!-- Line: box -->
|
|
||||||
<rect
|
|
||||||
x="0"
|
|
||||||
y="0"
|
|
||||||
width="14400"
|
|
||||||
height="8775"
|
|
||||||
rx="0"
|
|
||||||
style="fill:#ffa1a1;stroke:#000000;stroke-width:21;stroke-linecap:butt;stroke-linejoin:miter"
|
|
||||||
id="rect6" />
|
|
||||||
<!-- Line: box -->
|
|
||||||
<rect
|
|
||||||
x="1350"
|
|
||||||
y="0"
|
|
||||||
width="11700"
|
|
||||||
height="6075"
|
|
||||||
rx="0"
|
|
||||||
style="fill:#ffff00;stroke:#000000;stroke-width:21;stroke-linecap:butt;stroke-linejoin:miter"
|
|
||||||
id="rect8" />
|
|
||||||
<!-- Line: box -->
|
|
||||||
<rect
|
|
||||||
x="2700"
|
|
||||||
y="0"
|
|
||||||
width="9000"
|
|
||||||
height="4275"
|
|
||||||
rx="0"
|
|
||||||
style="fill:#00ff00;stroke:#000000;stroke-width:21;stroke-linecap:butt;stroke-linejoin:miter"
|
|
||||||
id="rect10" />
|
|
||||||
<!-- Line: box -->
|
|
||||||
<rect
|
|
||||||
x="4050"
|
|
||||||
y="0"
|
|
||||||
width="6300"
|
|
||||||
height="2475"
|
|
||||||
rx="0"
|
|
||||||
style="fill:#87cfff;stroke:#000000;stroke-width:21;stroke-linecap:butt;stroke-linejoin:miter"
|
|
||||||
id="rect12" />
|
|
||||||
<!-- Text -->
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="7200"
|
|
||||||
y="900"
|
|
||||||
font-style="normal"
|
|
||||||
font-weight="normal"
|
|
||||||
font-size="324"
|
|
||||||
id="text14"
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"><tspan
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"
|
|
||||||
id="tspan3017">Read-Mostly, Stale &</tspan></text>
|
|
||||||
<!-- Text -->
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="7200"
|
|
||||||
y="1350"
|
|
||||||
font-style="normal"
|
|
||||||
font-weight="normal"
|
|
||||||
font-size="324"
|
|
||||||
id="text16"
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"><tspan
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"
|
|
||||||
id="tspan3019">Inconsistent Data OK</tspan></text>
|
|
||||||
<!-- Text -->
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="7200"
|
|
||||||
y="1800"
|
|
||||||
font-style="normal"
|
|
||||||
font-weight="normal"
|
|
||||||
font-size="324"
|
|
||||||
id="text18"
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"><tspan
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"
|
|
||||||
id="tspan3021">(RCU Works Great!!!)</tspan></text>
|
|
||||||
<!-- Text -->
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="7200"
|
|
||||||
y="3825"
|
|
||||||
font-style="normal"
|
|
||||||
font-weight="normal"
|
|
||||||
font-size="324"
|
|
||||||
id="text20"
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"><tspan
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"
|
|
||||||
id="tspan3023">(RCU Works Well)</tspan></text>
|
|
||||||
<!-- Text -->
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="7200"
|
|
||||||
y="3375"
|
|
||||||
font-style="normal"
|
|
||||||
font-weight="normal"
|
|
||||||
font-size="324"
|
|
||||||
id="text22"
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"><tspan
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"
|
|
||||||
id="tspan3025">Read-Mostly, Need Consistent Data</tspan></text>
|
|
||||||
<!-- Text -->
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="7200"
|
|
||||||
y="5175"
|
|
||||||
font-style="normal"
|
|
||||||
font-weight="normal"
|
|
||||||
font-size="324"
|
|
||||||
id="text24"
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"><tspan
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"
|
|
||||||
id="tspan3027">Read-Write, Need Consistent Data</tspan></text>
|
|
||||||
<!-- Text -->
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="7200"
|
|
||||||
y="6975"
|
|
||||||
font-style="normal"
|
|
||||||
font-weight="normal"
|
|
||||||
font-size="324"
|
|
||||||
id="text26"
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"
|
|
||||||
sodipodi:linespacing="125%">Update-Mostly, Need Consistent Data</text>
|
|
||||||
<!-- Text -->
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="7200"
|
|
||||||
y="5625"
|
|
||||||
font-style="normal"
|
|
||||||
font-weight="normal"
|
|
||||||
font-size="324"
|
|
||||||
id="text28"
|
|
||||||
sodipodi:linespacing="125%"
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"><tspan
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"
|
|
||||||
id="tspan3029">(RCU Might Be OK...)</tspan></text>
|
|
||||||
<!-- Text -->
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="7200"
|
|
||||||
y="7875"
|
|
||||||
font-style="normal"
|
|
||||||
font-weight="normal"
|
|
||||||
font-size="324"
|
|
||||||
id="text30"
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"
|
|
||||||
sodipodi:linespacing="125%">(1) Provide Existence Guarantees For Update-Friendly Mechanisms</text>
|
|
||||||
<!-- Text -->
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="7200"
|
|
||||||
y="8325"
|
|
||||||
font-style="normal"
|
|
||||||
font-weight="normal"
|
|
||||||
font-size="324"
|
|
||||||
id="text32"
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"
|
|
||||||
sodipodi:linespacing="125%">(2) Provide Wait-Free Read-Side Primitives for Real-Time Use)</text>
|
|
||||||
<!-- Text -->
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
x="7200"
|
|
||||||
y="7425"
|
|
||||||
font-style="normal"
|
|
||||||
font-weight="normal"
|
|
||||||
font-size="324"
|
|
||||||
id="text34"
|
|
||||||
style="font-size:427.63009644px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L"
|
|
||||||
sodipodi:linespacing="125%">(RCU is Very Unlikely to be the Right Tool For The Job, But it Can:</text>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
До Ширина: | Высота: | Размер: 10 KiB |
|
@ -1120,12 +1120,27 @@ These classes is covered in the following sections.
|
||||||
<h3><a name="Specialization">Specialization</a></h3>
|
<h3><a name="Specialization">Specialization</a></h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
RCU is and always has been intended primarily for read-mostly situations, as
|
RCU is and always has been intended primarily for read-mostly situations,
|
||||||
illustrated by the following figure.
|
which means that RCU's read-side primitives are optimized, often at the
|
||||||
This means that RCU's read-side primitives are optimized, often at the
|
|
||||||
expense of its update-side primitives.
|
expense of its update-side primitives.
|
||||||
|
Experience thus far is captured by the following list of situations:
|
||||||
|
|
||||||
<p><img src="RCUApplicability.svg" alt="RCUApplicability.svg" width="70%"></p>
|
<ol>
|
||||||
|
<li> Read-mostly data, where stale and inconsistent data is not
|
||||||
|
a problem: RCU works great!
|
||||||
|
<li> Read-mostly data, where data must be consistent:
|
||||||
|
RCU works well.
|
||||||
|
<li> Read-write data, where data must be consistent:
|
||||||
|
RCU <i>might</i> work OK.
|
||||||
|
Or not.
|
||||||
|
<li> Write-mostly data, where data must be consistent:
|
||||||
|
RCU is very unlikely to be the right tool for the job,
|
||||||
|
with the following exceptions, where RCU can provide:
|
||||||
|
<ol type=a>
|
||||||
|
<li> Existence guarantees for update-friendly mechanisms.
|
||||||
|
<li> Wait-free read-side primitives for real-time use.
|
||||||
|
</ol>
|
||||||
|
</ol>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
This focus on read-mostly situations means that RCU must interoperate
|
This focus on read-mostly situations means that RCU must interoperate
|
||||||
|
@ -1171,10 +1186,7 @@ some period of time, so the exact wait period is a judgment call.
|
||||||
One of our pair of veternarians might wait 30 seconds before pronouncing
|
One of our pair of veternarians might wait 30 seconds before pronouncing
|
||||||
the cat dead, while the other might insist on waiting a full minute.
|
the cat dead, while the other might insist on waiting a full minute.
|
||||||
The two veternarians would then disagree on the state of the cat during
|
The two veternarians would then disagree on the state of the cat during
|
||||||
the final 30 seconds of the minute following the last heartbeat, as
|
the final 30 seconds of the minute following the last heartbeat.
|
||||||
fancifully illustrated below:
|
|
||||||
|
|
||||||
<p><img src="2013-08-is-it-dead.png" alt="2013-08-is-it-dead.png" width="431"></p>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Interestingly enough, this same situation applies to hardware.
|
Interestingly enough, this same situation applies to hardware.
|
||||||
|
|
|
@ -1257,12 +1257,27 @@ These classes is covered in the following sections.
|
||||||
<h3><a name="Specialization">Specialization</a></h3>
|
<h3><a name="Specialization">Specialization</a></h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
RCU is and always has been intended primarily for read-mostly situations, as
|
RCU is and always has been intended primarily for read-mostly situations,
|
||||||
illustrated by the following figure.
|
which means that RCU's read-side primitives are optimized, often at the
|
||||||
This means that RCU's read-side primitives are optimized, often at the
|
|
||||||
expense of its update-side primitives.
|
expense of its update-side primitives.
|
||||||
|
Experience thus far is captured by the following list of situations:
|
||||||
|
|
||||||
<p><img src="RCUApplicability.svg" alt="RCUApplicability.svg" width="70%"></p>
|
<ol>
|
||||||
|
<li> Read-mostly data, where stale and inconsistent data is not
|
||||||
|
a problem: RCU works great!
|
||||||
|
<li> Read-mostly data, where data must be consistent:
|
||||||
|
RCU works well.
|
||||||
|
<li> Read-write data, where data must be consistent:
|
||||||
|
RCU <i>might</i> work OK.
|
||||||
|
Or not.
|
||||||
|
<li> Write-mostly data, where data must be consistent:
|
||||||
|
RCU is very unlikely to be the right tool for the job,
|
||||||
|
with the following exceptions, where RCU can provide:
|
||||||
|
<ol type=a>
|
||||||
|
<li> Existence guarantees for update-friendly mechanisms.
|
||||||
|
<li> Wait-free read-side primitives for real-time use.
|
||||||
|
</ol>
|
||||||
|
</ol>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
This focus on read-mostly situations means that RCU must interoperate
|
This focus on read-mostly situations means that RCU must interoperate
|
||||||
|
@ -1330,10 +1345,7 @@ some period of time, so the exact wait period is a judgment call.
|
||||||
One of our pair of veternarians might wait 30 seconds before pronouncing
|
One of our pair of veternarians might wait 30 seconds before pronouncing
|
||||||
the cat dead, while the other might insist on waiting a full minute.
|
the cat dead, while the other might insist on waiting a full minute.
|
||||||
The two veternarians would then disagree on the state of the cat during
|
The two veternarians would then disagree on the state of the cat during
|
||||||
the final 30 seconds of the minute following the last heartbeat, as
|
the final 30 seconds of the minute following the last heartbeat.
|
||||||
fancifully illustrated below:
|
|
||||||
|
|
||||||
<p><img src="2013-08-is-it-dead.png" alt="2013-08-is-it-dead.png" width="431"></p>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Interestingly enough, this same situation applies to hardware.
|
Interestingly enough, this same situation applies to hardware.
|
||||||
|
|
Загрузка…
Ссылка в новой задаче