|
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1378px" preserveAspectRatio="none" style="width:981px;height:1378px;" version="1.1" viewBox="0 0 981 1378" width="981px" zoomAndPan="magnify"><defs><filter height="300%" id="f18e5664g1tade" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter><filter height="1" id="b18e5664g1tade0" width="1" x="0" y="0"><feFlood flood-color="#D3D3D3" result="flood"/><feComposite in="SourceGraphic" in2="flood" operator="over"/></filter><filter height="1" id="b18e5664g1tade1" width="1" x="0" y="0"><feFlood flood-color="#FFFF00" result="flood"/><feComposite in="SourceGraphic" in2="flood" operator="over"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="156.6641" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="86" y="93.7266"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="125.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="86" y="357.7891"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="156.6641" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="86" y="563.5859"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="319.3281" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="86" y="827.6484"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="231.9297" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="454" y="215.2578"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="361.4609" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="454" y="685.1172"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="184.6641" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="454" y="1111.8438"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="355.4609" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="877" y="127.8594"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="259.0625" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="877" y="597.7188"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="384.4609" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="877" y="928.0469"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="91" x2="91" y1="54.5938" y2="1321.5078"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="459" x2="459" y1="54.5938" y2="1321.5078"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="881.5" x2="881.5" y1="54.5938" y2="1321.5078"/><rect fill="#FEFECE" filter="url(#f18e5664g1tade)" height="46.5938" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="27" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="110" x="34" y="24">«vcpu@hcpu1»</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="45" x="66.5" y="40.2969">mterm</text><rect fill="#FEFECE" filter="url(#f18e5664g1tade)" height="46.5938" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="27" y="1320.5078"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="110" x="34" y="1341.5078">«vcpu@hcpu1»</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="45" x="66.5" y="1357.8047">mterm</text><rect fill="#FEFECE" filter="url(#f18e5664g1tade)" height="46.5938" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="395" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="110" x="402" y="24">«vcpu@hcpu2»</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="43" x="435.5" y="40.2969">mmc0</text><rect fill="#FEFECE" filter="url(#f18e5664g1tade)" height="46.5938" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="395" y="1320.5078"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="110" x="402" y="1341.5078">«vcpu@hcpu2»</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="43" x="435.5" y="1357.8047">mmc0</text><rect fill="#FEFECE" filter="url(#f18e5664g1tade)" height="46.5938" style="stroke: #A80036; stroke-width: 1.5;" width="161" x="799.5" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="147" x="806.5" y="24">«struct blockdev_rw»</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="16" x="872" y="40.2969">rw</text><rect fill="#FEFECE" filter="url(#f18e5664g1tade)" height="46.5938" style="stroke: #A80036; stroke-width: 1.5;" width="161" x="799.5" y="1320.5078"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="147" x="806.5" y="1341.5078">«struct blockdev_rw»</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="16" x="872" y="1357.8047">rw</text><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="156.6641" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="86" y="93.7266"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="125.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="86" y="357.7891"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="156.6641" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="86" y="563.5859"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="319.3281" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="86" y="827.6484"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="231.9297" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="454" y="215.2578"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="361.4609" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="454" y="685.1172"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="184.6641" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="454" y="1111.8438"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="355.4609" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="877" y="127.8594"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="259.0625" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="877" y="597.7188"/><rect fill="#FFFFFF" filter="url(#f18e5664g1tade)" height="384.4609" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="877" y="928.0469"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="91" x2="138" y1="80.7266" y2="80.7266"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="138" x2="138" y1="80.7266" y2="93.7266"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="97" x2="138" y1="93.7266" y2="93.7266"/><polygon fill="#A80036" points="107,89.7266,97,93.7266,107,97.7266,103,93.7266" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="137" x="103" y="75.6606">blockdev_rw_blocks()</text><polygon fill="#A80036" points="865,123.8594,875,127.8594,865,131.8594,869,127.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="96" x2="871" y1="127.8594" y2="127.8594"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="24" x="103" y="122.7935">A1.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="131" y="122.7935"/><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="141" x="131" y="122.7935">struct blockdev_rw rw</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="276" y="122.7935">is allocated on stack frame.</text><polygon fill="#A80036" points="865,152.9922,875,156.9922,865,160.9922,869,156.9922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="96" x2="871" y1="156.9922" y2="156.9922"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="24" x="103" y="151.9263">A2.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="131" y="151.9263"/><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="128" x="131" y="151.9263">rw.req.bdev = bdev</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="263" y="151.9263">(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="24" x="268" y="151.9263">B1.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="62" x="296" y="151.9263">uses this)</text><polygon fill="#A80036" points="865,182.125,875,186.125,865,190.125,869,186.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="96" x2="871" y1="186.125" y2="186.125"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="24" x="103" y="181.0591">A3.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="131" y="181.0591"/><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="116" x="131" y="181.0591">bwork->d.rw.r = r</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="90" x="251" y="181.0591">(r is pointer to</text><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="41" x="345" y="181.0591">rw.req</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="386" y="181.0591">)</text><polygon fill="#A80036" points="442,211.2578,452,215.2578,442,219.2578,446,215.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="96" x2="448" y1="215.2578" y2="215.2578"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="24" x="103" y="210.1919">A4.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="131" y="210.1919"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="302" x="131" y="210.1919">vmm_completion_complete(&wq->work_avail)</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="96" x2="138" y1="249.3906" y2="249.3906"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="138" x2="138" y1="249.3906" y2="262.3906"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="91" x2="138" y1="262.3906" y2="262.3906"/><polygon fill="#A80036" points="101,258.3906,91,262.3906,101,266.3906,97,262.3906" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="24" x="103" y="244.3247">A5.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="131" y="244.3247"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="218" x="131" y="244.3247">vmm_completion_wait(&rw.done)</text><polygon fill="#A80036" points="865,282.5234,875,286.5234,865,290.5234,869,286.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="464" x2="871" y1="286.5234" y2="286.5234"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="24" x="471" y="281.4575">B1.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="47" x="499" y="281.4575">refer to</text><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="53" x="550" y="281.4575">r->bdev</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="607" y="281.4575">@</text><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="231" x="620" y="281.4575">vmm_blockdev_complete_request()</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="464" x2="506" y1="315.6563" y2="315.6563"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="506" x2="506" y1="315.6563" y2="328.6563"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="465" x2="506" y1="328.6563" y2="328.6563"/><polygon fill="#A80036" points="475,324.6563,465,328.6563,475,332.6563,471,328.6563" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="24" x="471" y="310.5903">B2.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="499" y="310.5903"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="76" x="499" y="310.5903">brq->read()</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="579" y="310.5903">or</text><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="79" x="596" y="310.5903">brq->write()</text><polygon fill="#A80036" points="107,353.7891,97,357.7891,107,361.7891,103,357.7891" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="101" x2="453" y1="357.7891" y2="357.7891"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="24" x="113" y="352.7231">B3.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="141" y="352.7231"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="263" x="141" y="352.7231">vmm_completion_complete(&rw->done)</text><polygon fill="#A80036" points="865,395.4883,875,399.4883,865,403.4883,869,399.4883" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="464" x2="871" y1="399.4883" y2="399.4883"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="24" x="471" y="394.4224">B4.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="499" y="394.4224"/><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="106" x="499" y="394.4224">r->bdev = NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="609" y="394.4224">@</text><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="231" x="622" y="394.4224">vmm_blockdev_complete_request()</text><path d="M293,370.7891 L293,410.7891 L445,410.7891 L445,380.7891 L435,370.7891 L293,370.7891 " fill="#FBFB77" filter="url(#f18e5664g1tade)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M435,370.7891 L435,380.7891 L445,380.7891 L435,370.7891 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="107" x="304" y="387.856">critical section</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="131" x="299" y="402.9888">Nondestructive case</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="464" x2="506" y1="446.1875" y2="446.1875"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="506" x2="506" y1="446.1875" y2="459.1875"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="459" x2="506" y1="459.1875" y2="459.1875"/><polygon fill="#A80036" points="469,455.1875,459,459.1875,469,463.1875,465,459.1875" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="24" x="471" y="441.1216">B5.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="499" y="441.1216"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="269" x="499" y="441.1216">vmm_completion_wait(&wq->work_avail)</text><polygon fill="#A80036" points="870,479.3203,880,483.3203,870,487.3203,874,483.3203" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="91" x2="876" y1="483.3203" y2="483.3203"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="153" x="98" y="478.2544">Discard the stack frame</text><line style="stroke: #A80036; stroke-width: 2.0;" x1="873" x2="891" y1="474.3203" y2="492.3203"/><line style="stroke: #A80036; stroke-width: 2.0;" x1="873" x2="891" y1="492.3203" y2="474.3203"/><rect fill="#EEEEEE" filter="url(#f18e5664g1tade)" height="3" style="stroke: #EEEEEE; stroke-width: 1.0;" width="966.5" x="3" y="511.8867"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="969.5" y1="511.8867" y2="511.8867"/><line style="stroke: #000000; stroke-width: 1.0;" x1="3" x2="969.5" y1="514.8867" y2="514.8867"/><rect fill="#EEEEEE" filter="url(#f18e5664g1tade)" height="23.1328" style="stroke: #000000; stroke-width: 2.0;" width="208" x="382.25" y="501.3203"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="189" x="388.25" y="517.3872">Destructive case is below</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="91" x2="138" y1="550.5859" y2="550.5859"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="138" x2="138" y1="550.5859" y2="563.5859"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="97" x2="138" y1="563.5859" y2="563.5859"/><polygon fill="#A80036" points="107,559.5859,97,563.5859,107,567.5859,103,563.5859" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="137" x="103" y="545.52">blockdev_rw_blocks()</text><polygon fill="#A80036" points="865,593.7188,875,597.7188,865,601.7188,869,597.7188" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="96" x2="871" y1="597.7188" y2="597.7188"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="103" y="592.6528">A01.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="140" y="592.6528"/><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="141" x="140" y="592.6528">struct blockdev_rw rw</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="285" y="592.6528">is allocated on stack frame.</text><polygon fill="#A80036" points="865,622.8516,875,626.8516,865,630.8516,869,626.8516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="96" x2="871" y1="626.8516" y2="626.8516"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="103" y="621.7856">A02.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="140" y="621.7856"/><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="128" x="140" y="621.7856">rw.req.bdev = bdev</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="272" y="621.7856">(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="277" y="621.7856">B01.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="62" x="314" y="621.7856">uses this)</text><polygon fill="#A80036" points="865,651.9844,875,655.9844,865,659.9844,869,655.9844" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="96" x2="871" y1="655.9844" y2="655.9844"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="103" y="650.9185">A03.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="140" y="650.9185"/><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="116" x="140" y="650.9185">bwork->d.rw.r = r</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="90" x="260" y="650.9185">(r is pointer to</text><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="41" x="354" y="650.9185">rw.req</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="395" y="650.9185">)</text><polygon fill="#A80036" points="442,681.1172,452,685.1172,442,689.1172,446,685.1172" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="96" x2="448" y1="685.1172" y2="685.1172"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="103" y="680.0513">A04.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="140" y="680.0513"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="302" x="140" y="680.0513">vmm_completion_complete(&wq->work_avail)</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="96" x2="138" y1="719.25" y2="719.25"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="138" x2="138" y1="719.25" y2="732.25"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="91" x2="138" y1="732.25" y2="732.25"/><polygon fill="#A80036" points="101,728.25,91,732.25,101,736.25,97,732.25" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="103" y="714.1841">A05.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="140" y="714.1841"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="218" x="140" y="714.1841">vmm_completion_wait(&rw.done)</text><polygon fill="#A80036" points="865,752.3828,875,756.3828,865,760.3828,869,756.3828" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="464" x2="871" y1="756.3828" y2="756.3828"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="471" y="751.3169">B01.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="47" x="508" y="751.3169">refer to</text><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="53" x="559" y="751.3169">r->bdev</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="616" y="751.3169">@</text><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="231" x="629" y="751.3169">vmm_blockdev_complete_request()</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="464" x2="506" y1="785.5156" y2="785.5156"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="506" x2="506" y1="785.5156" y2="798.5156"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="465" x2="506" y1="798.5156" y2="798.5156"/><polygon fill="#A80036" points="475,794.5156,465,798.5156,475,802.5156,471,798.5156" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="471" y="780.4497">B02.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="508" y="780.4497"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="76" x="508" y="780.4497">brq->read()</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="588" y="780.4497">or</text><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="79" x="605" y="780.4497">brq->write()</text><polygon fill="#A80036" points="107,823.6484,97,827.6484,107,831.6484,103,827.6484" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="101" x2="453" y1="827.6484" y2="827.6484"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="113" y="822.5825">B03.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="150" y="822.5825"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="263" x="150" y="822.5825">vmm_completion_complete(&rw->done)</text><polygon fill="#A80036" points="870,852.7813,880,856.7813,870,860.7813,874,856.7813" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="96" x2="876" y1="856.7813" y2="856.7813"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="153" x="103" y="851.7153">Discard the stack frame</text><line style="stroke: #A80036; stroke-width: 2.0;" x1="873" x2="891" y1="847.7813" y2="865.7813"/><line style="stroke: #A80036; stroke-width: 2.0;" x1="873" x2="891" y1="865.7813" y2="847.7813"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="96" x2="138" y1="885.9141" y2="885.9141"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="138" x2="138" y1="885.9141" y2="898.9141"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="97" x2="138" y1="898.9141" y2="898.9141"/><polygon fill="#A80036" points="107,894.9141,97,898.9141,107,902.9141,103,898.9141" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="137" x="103" y="880.8481">blockdev_rw_blocks()</text><path d="M252,871.2813 L252,896.2813 L888,896.2813 L888,881.2813 L878,871.2813 L252,871.2813 " fill="#FBFB77" filter="url(#f18e5664g1tade)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M878,871.2813 L878,881.2813 L888,881.2813 L878,871.2813 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="357" x="258" y="888.3481">The stack frame is allocated at the same place because</text><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="137" x="619" y="888.3481">blockdev_rw_blocks()</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="113" x="760" y="888.3481">is called in a loop.</text><polygon fill="#A80036" points="865,924.0469,875,928.0469,865,932.0469,869,928.0469" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="96" x2="871" y1="928.0469" y2="928.0469"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="103" y="922.981">A11.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="140" y="922.981"/><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="141" x="140" y="922.981">struct blockdev_rw rw</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="285" y="922.981">is allocated on stack frame.</text><polygon fill="#A80036" points="865,953.1797,875,957.1797,865,961.1797,869,957.1797" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="96" x2="871" y1="957.1797" y2="957.1797"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="103" y="952.1138">A12.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="140" y="952.1138"/><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="128" x="140" y="952.1138">rw.req.bdev = bdev</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="272" y="952.1138">(</text><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="277" y="952.1138">B11.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="61" x="314" y="952.1138">uses this.</text><text fill="#000000" filter="url(#b18e5664g1tade1)" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="22" x="379" y="952.1138">But</text><text fill="#000000" filter="url(#b18e5664g1tade1)" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="405" y="952.1138">B04.</text><text fill="#000000" filter="url(#b18e5664g1tade1)" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="65" x="442" y="952.1138">overwrites</text><text fill="#000000" filter="url(#b18e5664g1tade1)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="34" x="511" y="952.1138">NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="545" y="952.1138">)</text><polygon fill="#A80036" points="865,994.8789,875,998.8789,865,1002.8789,869,998.8789" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="464" x2="871" y1="998.8789" y2="998.8789"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="471" y="993.813">B04.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="508" y="993.813"/><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="106" x="508" y="993.813">r->bdev = NULL</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="618" y="993.813">@</text><a href="https://github.com/avpatel/xvisor-next/blob/e321d1a80f7bd60489b5d93802b4851b8f2e881e/core/block/vmm_blockdev.c#L130" target="_top" xlink:actuate="onRequest" xlink:show="new" xlink:title="https://github.com/avpatel/xvisor-next/blob/e321d1a80f7bd60489b5d93802b4851b8f2e881e/core/block/vmm_blockdev.c#L130" xlink:type="simple"><text fill="#0000FF" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="229" x="631" y="993.813">vmm_blockdev_complete_request()</text></a><path d="M307,970.1797 L307,1010.1797 L445,1010.1797 L445,980.1797 L435,970.1797 L307,970.1797 " fill="#FBFB77" filter="url(#f18e5664g1tade)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M435,970.1797 L435,980.1797 L445,980.1797 L435,970.1797 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="107" x="318" y="987.2466">critical section</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="107" x="313" y="1002.3794">Destructive case</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="464" x2="506" y1="1045.5781" y2="1045.5781"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="506" x2="506" y1="1045.5781" y2="1058.5781"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="459" x2="506" y1="1058.5781" y2="1058.5781"/><polygon fill="#A80036" points="469,1054.5781,459,1058.5781,469,1062.5781,465,1058.5781" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="471" y="1040.5122">B05.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="508" y="1040.5122"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="269" x="508" y="1040.5122">vmm_completion_wait(&wq->work_avail)</text><polygon fill="#A80036" points="865,1078.7109,875,1082.7109,865,1086.7109,869,1082.7109" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="96" x2="871" y1="1082.7109" y2="1082.7109"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="103" y="1077.645">A13.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="140" y="1077.645"/><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="116" x="140" y="1077.645">bwork->d.rw.r = r</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="90" x="260" y="1077.645">(r is pointer to</text><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="41" x="354" y="1077.645">rw.req</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="5" x="395" y="1077.645">)</text><polygon fill="#A80036" points="442,1107.8438,452,1111.8438,442,1115.8438,446,1111.8438" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="96" x2="448" y1="1111.8438" y2="1111.8438"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="103" y="1106.7778">A14.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="140" y="1106.7778"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="302" x="140" y="1106.7778">vmm_completion_complete(&wq->work_avail)</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="96" x2="138" y1="1145.9766" y2="1145.9766"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="138" x2="138" y1="1145.9766" y2="1158.9766"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="91" x2="138" y1="1158.9766" y2="1158.9766"/><polygon fill="#A80036" points="101,1154.9766,91,1158.9766,101,1162.9766,97,1158.9766" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="103" y="1140.9106">A15.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="140" y="1140.9106"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="218" x="140" y="1140.9106">vmm_completion_wait(&rw.done)</text><path d="M8,1166.9766 L8,1191.9766 L170,1191.9766 L170,1176.9766 L160,1166.9766 L8,1166.9766 " fill="#FBFB77" filter="url(#f18e5664g1tade)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M160,1166.9766 L160,1176.9766 L170,1176.9766 L160,1166.9766 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="141" x="14" y="1184.0435">Keep waiting forever...</text><polygon fill="#A80036" points="865,1218.2422,875,1222.2422,865,1226.2422,869,1222.2422" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="464" x2="871" y1="1222.2422" y2="1222.2422"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="471" y="1217.1763">B11.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="47" x="508" y="1217.1763">refer to</text><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="53" x="559" y="1217.1763">r->bdev</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="616" y="1217.1763">@</text><a href="https://github.com/avpatel/xvisor-next/blob/e321d1a80f7bd60489b5d93802b4851b8f2e881e/core/block/vmm_blockdev.c#L120" target="_top" xlink:actuate="onRequest" xlink:show="new" xlink:title="https://github.com/avpatel/xvisor-next/blob/e321d1a80f7bd60489b5d93802b4851b8f2e881e/core/block/vmm_blockdev.c#L120" xlink:type="simple"><text fill="#0000FF" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="229" x="629" y="1217.1763">vmm_blockdev_complete_request()</text></a><path d="M380,1235.2422 L380,1260.2422 L956,1260.2422 L956,1245.2422 L946,1235.2422 L380,1235.2422 " fill="#FBFB77" filter="url(#f18e5664g1tade)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M946,1235.2422 L946,1245.2422 L956,1245.2422 L946,1235.2422 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="231" x="386" y="1252.3091">vmm_blockdev_complete_request()</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="621" y="1252.3091">returns</text><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="99" x="671" y="1252.3091">VMM_EINVALID</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="54" x="774" y="1252.3091">because</text><text fill="#000000" filter="url(#b18e5664g1tade0)" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="53" x="832" y="1252.3091">r->bdev</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="52" x="889" y="1252.3091">is NULL.</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="464" x2="506" y1="1295.5078" y2="1295.5078"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="506" x2="506" y1="1295.5078" y2="1308.5078"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="459" x2="506" y1="1308.5078" y2="1308.5078"/><polygon fill="#A80036" points="469,1304.5078,459,1308.5078,469,1312.5078,465,1308.5078" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" text-decoration="underline" textLength="33" x="471" y="1290.4419">B12.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="0" x="508" y="1290.4419"/><text fill="#000000" font-family="sans-serif" font-size="13" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="269" x="508" y="1290.4419">vmm_completion_wait(&wq->work_avail)</text><!-- |
Investigation tools
run-qemu.sh
dlist.gdb
run-qemu.gdb