xref: /dpdk/doc/guides/howto/img/virtio_user_as_exception_path.svg (revision decb35d890209f603b01c1d23f35995bd51228fc)
1*decb35d8SBruce Richardson<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2*decb35d8SBruce Richardson<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3*decb35d8SBruce Richardson<!-- Generated by Microsoft Visio, SVG Export virtio_user_as_exceptional_pathvsdx.svg Page-1 -->
4*decb35d8SBruce Richardson<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"
5*decb35d8SBruce Richardson		xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="5.77778in" height="3.88851in"
6*decb35d8SBruce Richardson		viewBox="0 0 416 279.973" xml:space="preserve" color-interpolation-filters="sRGB" class="st13">
7*decb35d8SBruce Richardson	<v:documentProperties v:langID="1033" v:viewMarkup="false"/>
8*decb35d8SBruce Richardson
9*decb35d8SBruce Richardson	<style type="text/css">
10*decb35d8SBruce Richardson	<![CDATA[
11*decb35d8SBruce Richardson		.st1 {visibility:visible}
12*decb35d8SBruce Richardson		.st2 {fill:#5b9bd5;fill-opacity:0.22;filter:url(#filter_2);stroke:#5b9bd5;stroke-opacity:0.22}
13*decb35d8SBruce Richardson		.st3 {fill:#ffffff;stroke:#c7c8c8;stroke-width:0.25}
14*decb35d8SBruce Richardson		.st4 {stroke:#000000;stroke-dasharray:7,5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
15*decb35d8SBruce Richardson		.st5 {fill:#000000;font-family:Calibri;font-size:0.833336em}
16*decb35d8SBruce Richardson		.st6 {fill:none;stroke:none;stroke-width:0.25}
17*decb35d8SBruce Richardson		.st7 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-style:italic}
18*decb35d8SBruce Richardson		.st8 {fill:#70ad47;stroke:#c7c8c8;stroke-width:0.25}
19*decb35d8SBruce Richardson		.st9 {stroke:#5b9bd5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.75}
20*decb35d8SBruce Richardson		.st10 {marker-end:url(#mrkr4-68);marker-start:url(#mrkr4-66);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
21*decb35d8SBruce Richardson		.st11 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.28409090909091}
22*decb35d8SBruce Richardson		.st12 {fill:#d8d8d8;stroke:#c7c8c8;stroke-width:0.25}
23*decb35d8SBruce Richardson		.st13 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
24*decb35d8SBruce Richardson	]]>
25*decb35d8SBruce Richardson	</style>
26*decb35d8SBruce Richardson
27*decb35d8SBruce Richardson	<defs id="Markers">
28*decb35d8SBruce Richardson		<g id="lend4">
29*decb35d8SBruce Richardson			<path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"/>
30*decb35d8SBruce Richardson		</g>
31*decb35d8SBruce Richardson		<marker id="mrkr4-66" class="st11" v:arrowType="4" v:arrowSize="2" v:setback="6.68" refX="6.68" orient="auto"
32*decb35d8SBruce Richardson				markerUnits="strokeWidth" overflow="visible">
33*decb35d8SBruce Richardson			<use xlink:href="#lend4" transform="scale(3.52) "/>
34*decb35d8SBruce Richardson		</marker>
35*decb35d8SBruce Richardson		<marker id="mrkr4-68" class="st11" v:arrowType="4" v:arrowSize="2" v:setback="7.04" refX="-7.04" orient="auto"
36*decb35d8SBruce Richardson				markerUnits="strokeWidth" overflow="visible">
37*decb35d8SBruce Richardson			<use xlink:href="#lend4" transform="scale(-3.52,-3.52) "/>
38*decb35d8SBruce Richardson		</marker>
39*decb35d8SBruce Richardson	</defs>
40*decb35d8SBruce Richardson	<defs id="Filters">
41*decb35d8SBruce Richardson		<filter id="filter_2">
42*decb35d8SBruce Richardson			<feGaussianBlur stdDeviation="2"/>
43*decb35d8SBruce Richardson		</filter>
44*decb35d8SBruce Richardson	</defs>
45*decb35d8SBruce Richardson	<g v:mID="0" v:index="1" v:groupContext="foregroundPage">
46*decb35d8SBruce Richardson		<title>Page-1</title>
47*decb35d8SBruce Richardson		<v:pageProperties v:drawingScale="1" v:pageScale="1" v:drawingUnits="0" v:shadowOffsetX="9" v:shadowOffsetY="-9"/>
48*decb35d8SBruce Richardson		<v:layer v:name="Connector" v:index="0"/>
49*decb35d8SBruce Richardson		<g id="shape23-1" v:mID="23" v:groupContext="shape" transform="translate(195.804,-74.9728)">
50*decb35d8SBruce Richardson			<title>Rectangle.23</title>
51*decb35d8SBruce Richardson			<v:userDefs>
52*decb35d8SBruce Richardson				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
53*decb35d8SBruce Richardson			</v:userDefs>
54*decb35d8SBruce Richardson			<g id="shadow23-2" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
55*decb35d8SBruce Richardson					transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
56*decb35d8SBruce Richardson				<rect x="0" y="113.473" width="216.6" height="166.5" class="st2"/>
57*decb35d8SBruce Richardson			</g>
58*decb35d8SBruce Richardson			<rect x="0" y="113.473" width="216.6" height="166.5" class="st3"/>
59*decb35d8SBruce Richardson		</g>
60*decb35d8SBruce Richardson		<g id="shape42-6" v:mID="42" v:groupContext="shape" v:layerMember="0" transform="translate(146.904,-277.473)">
61*decb35d8SBruce Richardson			<title>Dynamic connector.42</title>
62*decb35d8SBruce Richardson			<path d="M-9 279.97 L-9 540.97" class="st4"/>
63*decb35d8SBruce Richardson		</g>
64*decb35d8SBruce Richardson		<g id="shape45-9" v:mID="45" v:groupContext="shape" transform="translate(2.9044,-142.292)">
65*decb35d8SBruce Richardson			<title>Rectangle.45</title>
66*decb35d8SBruce Richardson			<desc>tap</desc>
67*decb35d8SBruce Richardson			<v:userDefs>
68*decb35d8SBruce Richardson				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
69*decb35d8SBruce Richardson			</v:userDefs>
70*decb35d8SBruce Richardson			<v:textBlock v:margins="rect(4,4,4,4)"/>
71*decb35d8SBruce Richardson			<v:textRect cx="34.05" cy="264.132" width="68.1" height="31.6807"/>
72*decb35d8SBruce Richardson			<g id="shadow45-10" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
73*decb35d8SBruce Richardson					transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
74*decb35d8SBruce Richardson				<rect x="0" y="248.292" width="68.1" height="31.6807" class="st2"/>
75*decb35d8SBruce Richardson			</g>
76*decb35d8SBruce Richardson			<rect x="0" y="248.292" width="68.1" height="31.6807" class="st3"/>
77*decb35d8SBruce Richardson			<text x="27.35" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>tap</text>		</g>
78*decb35d8SBruce Richardson		<g id="shape46-15" v:mID="46" v:groupContext="shape" transform="translate(2.9044,-43.2921)">
79*decb35d8SBruce Richardson			<title>Rectangle.46</title>
80*decb35d8SBruce Richardson			<desc>vhost ko</desc>
81*decb35d8SBruce Richardson			<v:userDefs>
82*decb35d8SBruce Richardson				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
83*decb35d8SBruce Richardson			</v:userDefs>
84*decb35d8SBruce Richardson			<v:textBlock v:margins="rect(4,4,4,4)"/>
85*decb35d8SBruce Richardson			<v:textRect cx="34.05" cy="264.132" width="68.1" height="31.6807"/>
86*decb35d8SBruce Richardson			<g id="shadow46-16" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
87*decb35d8SBruce Richardson					transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
88*decb35d8SBruce Richardson				<rect x="0" y="248.292" width="68.1" height="31.6807" class="st2"/>
89*decb35d8SBruce Richardson			</g>
90*decb35d8SBruce Richardson			<rect x="0" y="248.292" width="68.1" height="31.6807" class="st3"/>
91*decb35d8SBruce Richardson			<text x="16.86" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>vhost ko  </text>		</g>
92*decb35d8SBruce Richardson		<g id="shape47-21" v:mID="47" v:groupContext="shape" transform="translate(18.9544,-257.223)">
93*decb35d8SBruce Richardson			<title>Sheet.47</title>
94*decb35d8SBruce Richardson			<desc>Kernel space</desc>
95*decb35d8SBruce Richardson			<v:textBlock v:margins="rect(4,4,4,4)"/>
96*decb35d8SBruce Richardson			<v:textRect cx="44.025" cy="268.723" width="88.05" height="22.5"/>
97*decb35d8SBruce Richardson			<rect x="0" y="257.473" width="88.05" height="22.5" class="st6"/>
98*decb35d8SBruce Richardson			<text x="13.44" y="272.32" class="st7" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Kernel space</text>		</g>
99*decb35d8SBruce Richardson		<g id="shape48-24" v:mID="48" v:groupContext="shape" transform="translate(148.854,-257.223)">
100*decb35d8SBruce Richardson			<title>Sheet.48</title>
101*decb35d8SBruce Richardson			<desc>User space</desc>
102*decb35d8SBruce Richardson			<v:textBlock v:margins="rect(4,4,4,4)"/>
103*decb35d8SBruce Richardson			<v:textRect cx="44.025" cy="268.723" width="88.05" height="22.5"/>
104*decb35d8SBruce Richardson			<rect x="0" y="257.473" width="88.05" height="22.5" class="st6"/>
105*decb35d8SBruce Richardson			<text x="17.7" y="272.32" class="st7" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>User space</text>		</g>
106*decb35d8SBruce Richardson		<g id="shape49-27" v:mID="49" v:groupContext="shape" transform="translate(218.904,-182.792)">
107*decb35d8SBruce Richardson			<title>Rectangle.49</title>
108*decb35d8SBruce Richardson			<desc>ETHDEV</desc>
109*decb35d8SBruce Richardson			<v:userDefs>
110*decb35d8SBruce Richardson				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
111*decb35d8SBruce Richardson			</v:userDefs>
112*decb35d8SBruce Richardson			<v:textBlock v:margins="rect(4,4,4,4)"/>
113*decb35d8SBruce Richardson			<v:textRect cx="83.25" cy="264.132" width="166.5" height="31.6807"/>
114*decb35d8SBruce Richardson			<g id="shadow49-28" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
115*decb35d8SBruce Richardson					transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
116*decb35d8SBruce Richardson				<rect x="0" y="248.292" width="166.5" height="31.6807" class="st2"/>
117*decb35d8SBruce Richardson			</g>
118*decb35d8SBruce Richardson			<rect x="0" y="248.292" width="166.5" height="31.6807" class="st3"/>
119*decb35d8SBruce Richardson			<text x="66.9" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>ETHDEV</text>		</g>
120*decb35d8SBruce Richardson		<g id="shape50-33" v:mID="50" v:groupContext="shape" transform="translate(218.904,-142.292)">
121*decb35d8SBruce Richardson			<title>Rectangle.50</title>
122*decb35d8SBruce Richardson			<desc>virtio PMD</desc>
123*decb35d8SBruce Richardson			<v:userDefs>
124*decb35d8SBruce Richardson				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
125*decb35d8SBruce Richardson			</v:userDefs>
126*decb35d8SBruce Richardson			<v:textBlock v:margins="rect(4,4,4,4)"/>
127*decb35d8SBruce Richardson			<v:textRect cx="38.7911" cy="264.132" width="77.59" height="31.6807"/>
128*decb35d8SBruce Richardson			<g id="shadow50-34" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
129*decb35d8SBruce Richardson					transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
130*decb35d8SBruce Richardson				<rect x="0" y="248.292" width="77.5823" height="31.6807" class="st2"/>
131*decb35d8SBruce Richardson			</g>
132*decb35d8SBruce Richardson			<rect x="0" y="248.292" width="77.5823" height="31.6807" class="st3"/>
133*decb35d8SBruce Richardson			<text x="17.12" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>virtio PMD</text>		</g>
134*decb35d8SBruce Richardson		<g id="shape51-39" v:mID="51" v:groupContext="shape" transform="translate(308.904,-142.292)">
135*decb35d8SBruce Richardson			<title>Rectangle.51</title>
136*decb35d8SBruce Richardson			<desc>other PMDs</desc>
137*decb35d8SBruce Richardson			<v:userDefs>
138*decb35d8SBruce Richardson				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
139*decb35d8SBruce Richardson			</v:userDefs>
140*decb35d8SBruce Richardson			<v:textBlock v:margins="rect(4,4,4,4)"/>
141*decb35d8SBruce Richardson			<v:textRect cx="38.7911" cy="264.132" width="77.59" height="31.6807"/>
142*decb35d8SBruce Richardson			<g id="shadow51-40" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
143*decb35d8SBruce Richardson					transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
144*decb35d8SBruce Richardson				<rect x="0" y="248.292" width="77.5823" height="31.6807" class="st2"/>
145*decb35d8SBruce Richardson			</g>
146*decb35d8SBruce Richardson			<rect x="0" y="248.292" width="77.5823" height="31.6807" class="st3"/>
147*decb35d8SBruce Richardson			<text x="14.6" y="267.13" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>other PMDs</text>		</g>
148*decb35d8SBruce Richardson		<g id="shape52-45" v:mID="52" v:groupContext="shape" transform="translate(218.904,-86.3131)">
149*decb35d8SBruce Richardson			<title>Rectangle.52</title>
150*decb35d8SBruce Richardson			<desc>virtio-user</desc>
151*decb35d8SBruce Richardson			<v:userDefs>
152*decb35d8SBruce Richardson				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
153*decb35d8SBruce Richardson			</v:userDefs>
154*decb35d8SBruce Richardson			<v:textBlock v:margins="rect(4,4,4,4)"/>
155*decb35d8SBruce Richardson			<v:textRect cx="38.7911" cy="256.393" width="77.59" height="47.1597"/>
156*decb35d8SBruce Richardson			<g id="shadow52-46" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
157*decb35d8SBruce Richardson					transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
158*decb35d8SBruce Richardson				<rect x="0" y="232.813" width="77.5823" height="47.1597" class="st2"/>
159*decb35d8SBruce Richardson			</g>
160*decb35d8SBruce Richardson			<rect x="0" y="232.813" width="77.5823" height="47.1597" class="st8"/>
161*decb35d8SBruce Richardson			<text x="17.84" y="247.39" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>virtio-user<v:newlineChar/><v:newlineChar/></text>		</g>
162*decb35d8SBruce Richardson		<g id="shape53-51" v:mID="53" v:groupContext="shape" transform="translate(223.404,-90.1829)">
163*decb35d8SBruce Richardson			<title>Rectangle.53</title>
164*decb35d8SBruce Richardson			<desc>vhost adapter</desc>
165*decb35d8SBruce Richardson			<v:userDefs>
166*decb35d8SBruce Richardson				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
167*decb35d8SBruce Richardson			</v:userDefs>
168*decb35d8SBruce Richardson			<v:textBlock v:margins="rect(4,4,4,4)"/>
169*decb35d8SBruce Richardson			<v:textRect cx="34.05" cy="268.183" width="68.1" height="23.5798"/>
170*decb35d8SBruce Richardson			<g id="shadow53-52" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
171*decb35d8SBruce Richardson					transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
172*decb35d8SBruce Richardson				<rect x="0" y="256.393" width="68.1" height="23.5798" class="st2"/>
173*decb35d8SBruce Richardson			</g>
174*decb35d8SBruce Richardson			<rect x="0" y="256.393" width="68.1" height="23.5798" class="st3"/>
175*decb35d8SBruce Richardson			<text x="5.82" y="271.18" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>vhost adapter</text>		</g>
176*decb35d8SBruce Richardson		<g id="shape54-57" v:mID="54" v:groupContext="shape" v:layerMember="0" transform="translate(71.0044,-59.1325)">
177*decb35d8SBruce Richardson			<title>Dynamic connector</title>
178*decb35d8SBruce Richardson			<path d="M0 279.97 L63.9 279.97 A3 3 0 1 1 69.9 279.97 L186.69 279.97 L186.69 252.79" class="st9"/>
179*decb35d8SBruce Richardson		</g>
180*decb35d8SBruce Richardson		<g id="shape55-60" v:mID="55" v:groupContext="shape" v:layerMember="0" transform="translate(71.0044,-149.132)">
181*decb35d8SBruce Richardson			<title>Dynamic connector.55</title>
182*decb35d8SBruce Richardson			<path d="M6.68 270.97 L7.04 270.97 L63.9 270.97 A3 3 0 0 1 69.9 270.97 L140.86 270.97" class="st10"/>
183*decb35d8SBruce Richardson		</g>
184*decb35d8SBruce Richardson		<g id="shape56-69" v:mID="56" v:groupContext="shape" transform="translate(308.904,-5.2228)">
185*decb35d8SBruce Richardson			<title>Rectangle.38</title>
186*decb35d8SBruce Richardson			<v:userDefs>
187*decb35d8SBruce Richardson				<v:ud v:nameU="visVersion" v:val="VT0(15):26"/>
188*decb35d8SBruce Richardson			</v:userDefs>
189*decb35d8SBruce Richardson			<g id="shadow56-70" v:groupContext="shadow" v:shadowOffsetX="0.345598" v:shadowOffsetY="-1.97279" v:shadowType="1"
190*decb35d8SBruce Richardson					transform="matrix(1,0,0,1,0.345598,1.97279)" class="st1">
191*decb35d8SBruce Richardson				<rect x="0" y="257.473" width="77.5823" height="22.5" rx="11.25" ry="11.25" class="st2"/>
192*decb35d8SBruce Richardson			</g>
193*decb35d8SBruce Richardson			<rect x="0" y="257.473" width="77.5823" height="22.5" rx="11.25" ry="11.25" class="st12"/>
194*decb35d8SBruce Richardson		</g>
195*decb35d8SBruce Richardson		<g id="shape57-74" v:mID="57" v:groupContext="shape" transform="translate(318.204,-5.2228)">
196*decb35d8SBruce Richardson			<title>Sheet.57</title>
197*decb35d8SBruce Richardson			<desc>NIC</desc>
198*decb35d8SBruce Richardson			<v:textBlock v:margins="rect(4,4,4,4)"/>
199*decb35d8SBruce Richardson			<v:textRect cx="28.125" cy="268.723" width="56.25" height="22.5"/>
200*decb35d8SBruce Richardson			<rect x="0" y="257.473" width="56.25" height="22.5" class="st6"/>
201*decb35d8SBruce Richardson			<text x="19.61" y="272.32" class="st7" v:langID="2052"><v:paragraph v:horizAlign="1"/><v:tabList/>NIC</text>		</g>
202*decb35d8SBruce Richardson		<g id="shape58-77" v:mID="58" v:groupContext="shape" v:layerMember="0" transform="translate(356.696,-142.292)">
203*decb35d8SBruce Richardson			<title>Dynamic connector.41</title>
204*decb35d8SBruce Richardson			<path d="M-9 286.65 L-9 287.01 L-9 387.5" class="st10"/>
205*decb35d8SBruce Richardson		</g>
206*decb35d8SBruce Richardson	</g>
207*decb35d8SBruce Richardson</svg>
208