aboutsummaryrefslogtreecommitdiffhomepage
path: root/content/2023-01-14-xpost-matcha-threads/yield.drawio
diff options
context:
space:
mode:
Diffstat (limited to 'content/2023-01-14-xpost-matcha-threads/yield.drawio')
-rw-r--r--content/2023-01-14-xpost-matcha-threads/yield.drawio170
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="&lt;font&gt;process address space&lt;/font&gt;" 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="&lt;font face=&quot;monospace&quot;&gt;stack A&lt;/font&gt;" 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="&lt;font face=&quot;monospace&quot;&gt;stack B&lt;/font&gt;" 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="&lt;font style=&quot;font-size: 11px;&quot;&gt;callee-saved regs&lt;/font&gt;" 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="&lt;font style=&quot;font-size: 11px;&quot;&gt;callee-saved regs&lt;/font&gt;" 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="&lt;font&gt;process address space&lt;/font&gt;" 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="&lt;font style=&quot;font-size: 11px;&quot;&gt;callee-saved regs&lt;/font&gt;" 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="&lt;font style=&quot;font-size: 11px;&quot;&gt;callee-saved regs&lt;/font&gt;" 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="&lt;font&gt;process address space&lt;/font&gt;" 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="&lt;font style=&quot;font-size: 11px;&quot;&gt;callee-saved regs&lt;/font&gt;" 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="&lt;font&gt;&lt;i&gt;(1) save callee-saved registers of current thread&lt;/i&gt;&lt;/font&gt;" 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="&lt;font&gt;&lt;i&gt;(2) move to new stack pointer&lt;/i&gt;&lt;/font&gt;" 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="&lt;font&gt;&lt;i&gt;(3) restore callee-saved registers of new thread&lt;/i&gt;&lt;/font&gt;" 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>