diff options
Diffstat (limited to 'content/2023-01-14-xpost-matcha-threads/yield.drawio')
-rw-r--r-- | content/2023-01-14-xpost-matcha-threads/yield.drawio | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/content/2023-01-14-xpost-matcha-threads/yield.drawio b/content/2023-01-14-xpost-matcha-threads/yield.drawio new file mode 100644 index 0000000..164a1f1 --- /dev/null +++ b/content/2023-01-14-xpost-matcha-threads/yield.drawio @@ -0,0 +1,170 @@ +<mxfile host="Electron" modified="2024-12-17T21:47:19.951Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/23.1.5 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="JAmpZuPaR45DXouftlhj" version="23.1.5" type="device"> + <diagram name="Page-1" id="eupsqoG42ICuPfNcTmHv"> + <mxGraphModel dx="1195" dy="718" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="eODdzWfbsgeiVxMC9DDa-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="240" y="400" width="120" height="240" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-2" value="<font>process address space</font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=monospace;" vertex="1" parent="1"> + <mxGeometry x="240" y="360" width="120" height="30" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-3" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#FFFFFF;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="240" y="430" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-4" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#ffffff;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="240" y="580" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-10" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#ffffff;fillColor=#FFFFFF;shadow=0;glass=0;fillStyle=hatch;" vertex="1" parent="1"> + <mxGeometry x="240" y="430" width="120" height="20" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-12" value="<font face="monospace">stack A</font>" style="text;whiteSpace=wrap;rotation=-90;html=1;" vertex="1" parent="1"> + <mxGeometry x="350" y="445" width="55" height="30" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-14" value="<font face="monospace">stack B</font>" style="text;whiteSpace=wrap;rotation=-90;html=1;" vertex="1" parent="1"> + <mxGeometry x="350" y="570" width="55" height="30" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-15" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#ffffff;fillColor=#FFFFFF;shadow=0;glass=0;fillStyle=hatch;" vertex="1" parent="1"> + <mxGeometry x="240" y="540" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-17" value="core" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#FFFFFF;fillColor=none;align=center;verticalAlign=top;" vertex="1" parent="1"> + <mxGeometry x="80" y="440" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="eODdzWfbsgeiVxMC9DDa-20" target="eODdzWfbsgeiVxMC9DDa-25"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="200" y="485" /> + <mxPoint x="200" y="470" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-20" value="sp" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#ffffff;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="135" y="475" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="eODdzWfbsgeiVxMC9DDa-20" target="eODdzWfbsgeiVxMC9DDa-20"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-25" value="<font style="font-size: 11px;">callee-saved regs</font>" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#50FA7B;fillColor=none;fontColor=#FFFFFF;" vertex="1" parent="1"> + <mxGeometry x="240" y="450" width="120" height="20" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-26" value="<font style="font-size: 11px;">callee-saved regs</font>" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#ff55ff;fillColor=none;fontColor=#FFFFFF;" vertex="1" parent="1"> + <mxGeometry x="240" y="580" width="120" height="20" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-29" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="605" y="400" width="120" height="240" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-30" value="<font>process address space</font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=monospace;" vertex="1" parent="1"> + <mxGeometry x="605" y="360" width="120" height="30" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-31" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#FFFFFF;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="605" y="430" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-32" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#ffffff;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="605" y="580" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-33" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#ffffff;fillColor=#FFFFFF;shadow=0;glass=0;fillStyle=hatch;" vertex="1" parent="1"> + <mxGeometry x="605" y="430" width="120" height="20" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-34" value="stack A" style="text;whiteSpace=wrap;rotation=-90;fillColor=none;fontFamily=monospace;" vertex="1" parent="1"> + <mxGeometry x="715" y="445" width="55" height="30" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-35" value="stack B" style="text;whiteSpace=wrap;rotation=-90;fontFamily=monospace;" vertex="1" parent="1"> + <mxGeometry x="715" y="570" width="55" height="30" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-36" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#ffffff;fillColor=#FFFFFF;shadow=0;glass=0;fillStyle=hatch;" vertex="1" parent="1"> + <mxGeometry x="605" y="540" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="eODdzWfbsgeiVxMC9DDa-72" target="eODdzWfbsgeiVxMC9DDa-48"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="520" y="490.5099999999999" as="sourcePoint" /> + <mxPoint x="605" y="580" as="targetPoint" /> + <Array as="points"> + <mxPoint x="565" y="485" /> + <mxPoint x="565" y="600" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-42" value="<font style="font-size: 11px;">callee-saved regs</font>" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#50FA7B;fillColor=none;fontColor=#FFFFFF;" vertex="1" parent="1"> + <mxGeometry x="605" y="450" width="120" height="20" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-19" value="regs" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#50FA7B;fillColor=none;fontColor=#FFFFFF;" vertex="1" parent="1"> + <mxGeometry x="85" y="475" width="45" height="20" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-48" value="<font style="font-size: 11px;">callee-saved regs</font>" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#ff55ff;fillColor=none;fontColor=#FFFFFF;" vertex="1" parent="1"> + <mxGeometry x="605" y="580" width="120" height="20" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-49" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="240" y="720" width="120" height="260" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-50" value="<font>process address space</font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=monospace;" vertex="1" parent="1"> + <mxGeometry x="240" y="680" width="120" height="30" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-51" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#FFFFFF;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="240" y="750" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-52" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#ffffff;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="240" y="900" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-53" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#ffffff;fillColor=#FFFFFF;shadow=0;glass=0;fillStyle=hatch;" vertex="1" parent="1"> + <mxGeometry x="240" y="750" width="120" height="20" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-54" value="stack A" style="text;whiteSpace=wrap;rotation=-90;fillColor=none;fontFamily=monospace;" vertex="1" parent="1"> + <mxGeometry x="350" y="765" width="55" height="30" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-55" value="stack B" style="text;whiteSpace=wrap;rotation=-90;fontFamily=monospace;" vertex="1" parent="1"> + <mxGeometry x="350" y="890" width="55" height="30" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-56" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#ffffff;fillColor=#FFFFFF;shadow=0;glass=0;fillStyle=hatch;" vertex="1" parent="1"> + <mxGeometry x="240" y="860" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="eODdzWfbsgeiVxMC9DDa-80"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="240" y="900" as="targetPoint" /> + <Array as="points"> + <mxPoint x="200" y="805" /> + <mxPoint x="200" y="900" /> + </Array> + <mxPoint x="160" y="809" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-61" value="<font style="font-size: 11px;">callee-saved regs</font>" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#50FA7B;fillColor=none;fontColor=#FFFFFF;" vertex="1" parent="1"> + <mxGeometry x="240" y="770" width="120" height="20" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-64" value="<font><i>(1) save callee-saved registers of current thread</i></font>" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;fontFamily=monospace;" vertex="1" parent="1"> + <mxGeometry x="80" y="360" width="140" height="60" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-65" value="<font><i>(2) move to new stack pointer</i></font>" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;fontFamily=monospace;" vertex="1" parent="1"> + <mxGeometry x="440" y="360" width="140" height="50" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-66" value="<font><i>(3) restore callee-saved registers of new thread</i></font>" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;fontFamily=monospace;" vertex="1" parent="1"> + <mxGeometry x="80" y="680" width="140" height="60" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-71" value="core" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#FFFFFF;fillColor=none;align=center;verticalAlign=top;" vertex="1" parent="1"> + <mxGeometry x="440" y="440" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-72" value="sp" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#ffffff;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="495" y="475" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-73" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="eODdzWfbsgeiVxMC9DDa-72" target="eODdzWfbsgeiVxMC9DDa-72"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-74" value="regs" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#50FA7B;fillColor=none;fontColor=#FFFFFF;" vertex="1" parent="1"> + <mxGeometry x="445" y="475" width="45" height="20" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-79" value="core" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#FFFFFF;fillColor=none;align=center;verticalAlign=top;" vertex="1" parent="1"> + <mxGeometry x="80" y="760" width="80" height="60" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-80" value="sp" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#ffffff;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="135" y="795" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-81" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="eODdzWfbsgeiVxMC9DDa-80" target="eODdzWfbsgeiVxMC9DDa-80"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="eODdzWfbsgeiVxMC9DDa-82" value="regs" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=monospace;strokeColor=#FF55FF;fillColor=none;fontColor=#FFFFFF;" vertex="1" parent="1"> + <mxGeometry x="85" y="795" width="45" height="20" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> |