<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://open-iov.org/index.php?action=history&amp;feed=atom&amp;title=The_vGSP_Execution_Plane_%28vEP%29</id>
	<title>The vGSP Execution Plane (vEP) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://open-iov.org/index.php?action=history&amp;feed=atom&amp;title=The_vGSP_Execution_Plane_%28vEP%29"/>
	<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=The_vGSP_Execution_Plane_(vEP)&amp;action=history"/>
	<updated>2026-10-12T06:52:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://open-iov.org/index.php?title=The_vGSP_Execution_Plane_(vEP)&amp;diff=23967&amp;oldid=prev</id>
		<title>WikiBot: Fix repository links: point to the cgit tree URLs (git.vgpu.io/open-iov.git/tree/...)</title>
		<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=The_vGSP_Execution_Plane_(vEP)&amp;diff=23967&amp;oldid=prev"/>
		<updated>2026-10-12T04:40:08Z</updated>

		<summary type="html">&lt;p&gt;Fix repository links: point to the cgit tree URLs (git.vgpu.io/open-iov.git/tree/...)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:40, 12 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= The vGSP Execution Plane (vEP) =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= The vGSP Execution Plane (vEP) =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;blockquote&amp;gt;'''Canonical, maintained version of this page:''' [https://git.vgpu.io/open-iov/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;blob/master&lt;/del&gt;/docs/03-architecture/13-vexecution-plane.md &amp;lt;code&amp;gt;../docs/03-architecture/13-vexecution-plane.md&amp;lt;/code&amp;gt;]. This wiki page is the condensed public deep-dive: what the layer is, how a guest CUDA launch flows through it, where it stands today, and where it is going. It is condensed from the canonical document and its cited evidence; when the two disagree, the docs tree wins. Front door: [https://git.vgpu.io/open-iov/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;blob/master&lt;/del&gt;/docs/README.md &amp;lt;code&amp;gt;../docs/README.md&amp;lt;/code&amp;gt;].&amp;lt;/blockquote&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;blockquote&amp;gt;'''Canonical, maintained version of this page:''' [https://git.vgpu.io/open-iov&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.git&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tree&lt;/ins&gt;/docs/03-architecture/13-vexecution-plane.md &amp;lt;code&amp;gt;../docs/03-architecture/13-vexecution-plane.md&amp;lt;/code&amp;gt;]. This wiki page is the condensed public deep-dive: what the layer is, how a guest CUDA launch flows through it, where it stands today, and where it is going. It is condensed from the canonical document and its cited evidence; when the two disagree, the docs tree wins. Front door: [https://git.vgpu.io/open-iov&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.git&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tree&lt;/ins&gt;/docs/README.md &amp;lt;code&amp;gt;../docs/README.md&amp;lt;/code&amp;gt;].&amp;lt;/blockquote&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Status: 2026-10-08, tree &amp;lt;code&amp;gt;master @ 1f571dda&amp;lt;/code&amp;gt;. Tags: &amp;lt;code&amp;gt;[live]&amp;lt;/code&amp;gt; proven with the stock guest driver; &amp;lt;code&amp;gt;[gated]&amp;lt;/code&amp;gt; implemented, default-off or parameter-gated; &amp;lt;code&amp;gt;[wip]&amp;lt;/code&amp;gt; partial; &amp;lt;code&amp;gt;[wall]&amp;lt;/code&amp;gt; current blocker; &amp;lt;code&amp;gt;[target]&amp;lt;/code&amp;gt; named success latch; &amp;lt;code&amp;gt;[planned]&amp;lt;/code&amp;gt; designed, not built.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Status: 2026-10-08, tree &amp;lt;code&amp;gt;master @ 1f571dda&amp;lt;/code&amp;gt;. Tags: &amp;lt;code&amp;gt;[live]&amp;lt;/code&amp;gt; proven with the stock guest driver; &amp;lt;code&amp;gt;[gated]&amp;lt;/code&amp;gt; implemented, default-off or parameter-gated; &amp;lt;code&amp;gt;[wip]&amp;lt;/code&amp;gt; partial; &amp;lt;code&amp;gt;[wall]&amp;lt;/code&amp;gt; current blocker; &amp;lt;code&amp;gt;[target]&amp;lt;/code&amp;gt; named success latch; &amp;lt;code&amp;gt;[planned]&amp;lt;/code&amp;gt; designed, not built.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l80&quot;&gt;Line 80:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 80:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;''Canonical document: [https://git.vgpu.io/open-iov/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;blob/master&lt;/del&gt;/docs/03-architecture/13-vexecution-plane.md &amp;lt;code&amp;gt;docs/03-architecture/13-vexecution-plane.md&amp;lt;/code&amp;gt;]. See also: [https://git.vgpu.io/open-iov/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;blob/master&lt;/del&gt;/docs/03-architecture/09-full-system-picture.md full system picture], [https://git.vgpu.io/open-iov/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;blob/master&lt;/del&gt;/docs/03-architecture/11-physical-backend-guest-wiring.md physical backend guest wiring], [https://git.vgpu.io/open-iov/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;blob/master&lt;/del&gt;/docs/04-implementation/03-execution-frontier.md the execution frontier].''&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;''Canonical document: [https://git.vgpu.io/open-iov&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.git&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tree&lt;/ins&gt;/docs/03-architecture/13-vexecution-plane.md &amp;lt;code&amp;gt;docs/03-architecture/13-vexecution-plane.md&amp;lt;/code&amp;gt;]. See also: [https://git.vgpu.io/open-iov&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.git&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tree&lt;/ins&gt;/docs/03-architecture/09-full-system-picture.md full system picture], [https://git.vgpu.io/open-iov&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.git&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tree&lt;/ins&gt;/docs/03-architecture/11-physical-backend-guest-wiring.md physical backend guest wiring], [https://git.vgpu.io/open-iov&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.git&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tree&lt;/ins&gt;/docs/04-implementation/03-execution-frontier.md the execution frontier].''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff::1.12:old-23938:rev-23967 --&gt;
&lt;/table&gt;</summary>
		<author><name>WikiBot</name></author>
	</entry>
	<entry>
		<id>https://open-iov.org/index.php?title=The_vGSP_Execution_Plane_(vEP)&amp;diff=23938&amp;oldid=prev</id>
		<title>WikiBot: Carry the site-wide About/licensing message on every page (2026-10-12)</title>
		<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=The_vGSP_Execution_Plane_(vEP)&amp;diff=23938&amp;oldid=prev"/>
		<updated>2026-10-12T04:29:44Z</updated>

		<summary type="html">&lt;p&gt;Carry the site-wide About/licensing message on every page (2026-10-12)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:29, 12 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{About message}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= The vGSP Execution Plane (vEP) =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= The vGSP Execution Plane (vEP) =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff::1.12:old-23849:rev-23938 --&gt;
&lt;/table&gt;</summary>
		<author><name>WikiBot</name></author>
	</entry>
	<entry>
		<id>https://open-iov.org/index.php?title=The_vGSP_Execution_Plane_(vEP)&amp;diff=23849&amp;oldid=prev</id>
		<title>WikiBot: Re-sync page from tracked wiki source: fix cross-document links and diagram; refresh status</title>
		<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=The_vGSP_Execution_Plane_(vEP)&amp;diff=23849&amp;oldid=prev"/>
		<updated>2026-10-12T04:10:01Z</updated>

		<summary type="html">&lt;p&gt;Re-sync page from tracked wiki source: fix cross-document links and diagram; refresh status&lt;/p&gt;
&lt;a href=&quot;https://open-iov.org/index.php?title=The_vGSP_Execution_Plane_(vEP)&amp;amp;diff=23849&amp;amp;oldid=23828&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>WikiBot</name></author>
	</entry>
	<entry>
		<id>https://open-iov.org/index.php?title=The_vGSP_Execution_Plane_(vEP)&amp;diff=23828&amp;oldid=prev</id>
		<title>WikiBot: Remove unpaired blockquote tags left by reference cleanup</title>
		<link rel="alternate" type="text/html" href="https://open-iov.org/index.php?title=The_vGSP_Execution_Plane_(vEP)&amp;diff=23828&amp;oldid=prev"/>
		<updated>2026-10-12T03:58:28Z</updated>

		<summary type="html">&lt;p&gt;Remove unpaired blockquote tags left by reference cleanup&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;the-vgsp-execution-plane-vep&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= The vGSP Execution Plane (vEP) =&lt;br /&gt;
&lt;br /&gt;
Status: 2026-10-08, tree &amp;lt;code&amp;gt;master @ 1f571dda&amp;lt;/code&amp;gt;. Tags: &amp;lt;code&amp;gt;[live]&amp;lt;/code&amp;gt; proven with the stock guest driver; &amp;lt;code&amp;gt;[gated]&amp;lt;/code&amp;gt; implemented, default-off or parameter-gated; &amp;lt;code&amp;gt;[wip]&amp;lt;/code&amp;gt; partial; &amp;lt;code&amp;gt;[wall]&amp;lt;/code&amp;gt; current blocker; &amp;lt;code&amp;gt;[target]&amp;lt;/code&amp;gt; named success latch; &amp;lt;code&amp;gt;[planned]&amp;lt;/code&amp;gt; designed, not built.&lt;br /&gt;
&amp;lt;span id=&amp;quot;1-what-it-is&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 1. What it is ==&lt;br /&gt;
&lt;br /&gt;
'''vGSP (virtual GSP)''' is our host-side reimplementation of the GPU System Processor interface: the virtual device plus the emulated GSP-RM service the stock guest driver talks to, implemented by &amp;lt;code&amp;gt;vgsp.ko&amp;lt;/code&amp;gt;. The '''vGSP Execution Plane (vEP)''' is the half of vGSP that turns guest-authored GPU work into physical execution and guest-visible completion: channel ring and USERD discovery, GPU VA-to-PA truth, semaphore-release application, completion counters and notifiers, QMD handling for forwarded launches, and submission to the physical GPU's engines under the module-owned backend session.&lt;br /&gt;
The other half — the control plane (boot handshake, message queues, RPC, RM objects, BAR shadows) — makes the guest driver ''run''. The vEP makes the guest's work ''run''.&lt;br /&gt;
'''Four work domains''' organize the subsystem:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Domain&lt;br /&gt;
! Question&lt;br /&gt;
! Implemented by&lt;br /&gt;
|-&lt;br /&gt;
| Scheduler&lt;br /&gt;
| which channel's work runs, at what pace&lt;br /&gt;
| doorbell steering, the per-channel pump, discovery cadence, one ordered workqueue, one in-flight request&lt;br /&gt;
|-&lt;br /&gt;
| Allocator&lt;br /&gt;
| where rings, USERDs, counters, notifiers and scratch windows live&lt;br /&gt;
| ring/USERD autopin and pins, content-keyed pairing, counter derive, ladder scratch/PT pools, the BAR1 vidmem shadow&lt;br /&gt;
|-&lt;br /&gt;
| Control&lt;br /&gt;
| which RM objects/controls shape execution&lt;br /&gt;
| channel and event registration, &amp;lt;code&amp;gt;SET_PAGE_DIRECTORY&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PROMOTE_CTX&amp;lt;/code&amp;gt;, engine topology, the mode matrix&lt;br /&gt;
|-&lt;br /&gt;
| Share&lt;br /&gt;
| how clients/mdevs share the one GPU&lt;br /&gt;
| mdev backend refcount, one real session under a single lock, one workqueue; per-mdev clients and fairness are planned&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;2-the-shape-of-the-plane&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 2. The shape of the plane ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;mermaid&amp;quot;&amp;gt;flowchart TB&lt;br /&gt;
  subgraph GUEST[&amp;amp;quot;Guest VM - stock software&amp;amp;quot;]&lt;br /&gt;
    APP[&amp;amp;quot;CUDA application -&amp;amp;gt; libcuda -&amp;amp;gt; nvidia.ko&amp;amp;lt;br/&amp;amp;gt;push + QMD + GPFIFO + doorbell&amp;amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
  subgraph VEP[&amp;amp;quot;vGSP Execution Plane inside vgsp.ko&amp;amp;quot;]&lt;br /&gt;
    DB[&amp;amp;quot;doorbell steering&amp;amp;quot;] --&amp;amp;gt; PUMP[&amp;amp;quot;channel pump&amp;amp;quot;]&lt;br /&gt;
    PUMP --&amp;amp;gt; DISC[&amp;amp;quot;ring/USERD discovery + pins&amp;amp;quot;]&lt;br /&gt;
    DISC --&amp;amp;gt; TRUTH[&amp;amp;quot;VA-to-PA truth&amp;amp;lt;br/&amp;amp;gt;walk, rescue, pins&amp;amp;quot;]&lt;br /&gt;
    TRUTH --&amp;amp;gt; DEC[&amp;amp;quot;push decode + QMD capture&amp;amp;quot;]&lt;br /&gt;
    DEC --&amp;amp;gt; REL[&amp;amp;quot;release apply + counters + notifiers&amp;amp;quot;]&lt;br /&gt;
    DEC --&amp;amp;gt; WQ[&amp;amp;quot;ordered workqueue&amp;amp;lt;br/&amp;amp;gt;one in-flight request&amp;amp;quot;]&lt;br /&gt;
    WQ --&amp;amp;gt; SUB[&amp;amp;quot;ladder submission&amp;amp;lt;br/&amp;amp;gt;mode matrix&amp;amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
  subgraph PHY[&amp;amp;quot;Physical backend&amp;amp;quot;]&lt;br /&gt;
    LAD[&amp;amp;quot;module-owned ladder channel&amp;amp;quot;] --&amp;amp;gt; GSP[&amp;amp;quot;real GSP-RM server&amp;amp;quot;]&lt;br /&gt;
    GSP --&amp;amp;gt; ENG[&amp;amp;quot;GR / CE engines&amp;amp;quot;]&lt;br /&gt;
  end&lt;br /&gt;
  APP --&amp;amp;gt;|&amp;amp;quot;MMIO + DMA&amp;amp;quot;| DB&lt;br /&gt;
  REL --&amp;amp;gt;|&amp;amp;quot;release, counter, event&amp;amp;quot;| APP&lt;br /&gt;
  SUB --&amp;amp;gt; LAD&lt;br /&gt;
  ENG --&amp;amp;gt;|&amp;amp;quot;engine-authored release&amp;amp;quot;| SUB&amp;lt;/pre&amp;gt;&lt;br /&gt;
ASCII fallback:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;guest: push + QMD + GPFIFO entry + doorbell (BAR0 0x88704)&lt;br /&gt;
  -&amp;gt; pump (per-channel) -&amp;gt; ring/USERD discovery -&amp;gt; VA-to-PA truth -&amp;gt; decode&lt;br /&gt;
  -&amp;gt; release apply + counter publish + notifier/event -&amp;gt; MSI-X -&amp;gt; guest wakes&lt;br /&gt;
  -&amp;gt; (for real work) ordered workqueue -&amp;gt; ladder submission -&amp;gt; real GSP/engines&lt;br /&gt;
  -&amp;gt; engine-authored release -&amp;gt; poll -&amp;gt; completion publication&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;3-one-cuda-kernel-launch-end-to-end&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3. One CUDA kernel launch, end to end ==&lt;br /&gt;
&lt;br /&gt;
# '''Launch build (guest).''' &amp;lt;code&amp;gt;libcuda&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;nvidia.ko&amp;lt;/code&amp;gt; build the GR push: context methods, the inline launch descriptor (QMD), SASS and parameter pointers, and a release target. They append a GPFIFO entry and ring the BAR0 doorbell. &amp;lt;code&amp;gt;[live]&amp;lt;/code&amp;gt; observed with the stock driver.&lt;br /&gt;
# '''Steering and truth (host).''' The doorbell wakes the service thread; the pump resolves the channel's ring VA and USERD, reads &amp;lt;code&amp;gt;GP_PUT&amp;lt;/code&amp;gt;, fetches the GPFIFO entry and decodes the method stream. Translations are read-back proven from driver-published page directories, pins, or content-rescue. &amp;lt;code&amp;gt;[live]&amp;lt;/code&amp;gt; for CE; &amp;lt;code&amp;gt;[wip]&amp;lt;/code&amp;gt; for GR (discovery now succeeds, see §4).&lt;br /&gt;
# '''Capture.''' The decoder accumulates the QMD window and captures the launch candidate; the sema service queues one request on the single ordered workqueue. &amp;lt;code&amp;gt;[live]&amp;lt;/code&amp;gt; observed (ring consumed, methods execute).&lt;br /&gt;
# '''Physical submit.''' The backend relocates the QMD, copies program/param pages into module shadow windows whose PTEs were planted before the channel commit (the engine never sees a late PTE write — it caches 128-byte fetch lines with no invalidate), builds the launch method block, publishes it to the ladder channel's GPFIFO and rings the real doorbell. &amp;lt;code&amp;gt;[gated]&amp;lt;/code&amp;gt; default-off; latched on a proven real GR submission.&lt;br /&gt;
# '''Engine.''' The front-end fetches the entry and executes methods; then the '''inline-QMD install''' must materialise the descriptor for the engine to read, currently '''&amp;lt;code&amp;gt;[wall]&amp;lt;/code&amp;gt;''' — not observed. Context validity, destination mapping and fetch/alignment are exonerated; the recovered-method-stream form is the investigation.&lt;br /&gt;
# '''Completion.''' The engine authors the QMD release word and the channel release; the host applies the deferred release exactly once, publishes the completion counter, clears the notifier and posts the channel event; MSI-X wakes the guest. CE work is live in this shape &amp;lt;code&amp;gt;[gated]&amp;lt;/code&amp;gt;; for GR the completion-counter publication is the current second face of the wall.&lt;br /&gt;
&amp;lt;span id=&amp;quot;4-how-work-is-found-discovery-truth-completion&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 4. How work is found: discovery, truth, completion ==&lt;br /&gt;
&lt;br /&gt;
* '''Ring/USERD discovery''' has three cooperating sources: injected pins, a kernel-native trusted walk of driver-published page directories, and content-keyed discovery when neither names the ring. Content discovery scans '''both apertures''' (emulated vidmem and guest RAM), runs the FB scan first on a 2-second cadence, pairs a ring with the rank's staged ctx-init push, and validates the pair before pinning. Since the 2026-10-08 re-arm work (&amp;lt;code&amp;gt;7abd8f87&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;66388560&amp;lt;/code&amp;gt;) the discovery no longer retires permanently at a pass cap.&lt;br /&gt;
* '''The semaphore service''' decodes releases, translates their target pages through the trusted resolver plus a driver-published-VAS pool resolver, defers untranslatable releases with retry telemetry, and applies each release exactly once — in software, or by letting the engine author it under the relay (default off).&lt;br /&gt;
* '''Completion counters''' use a fixed 20-slot pool (a partial live channel count poisoned slots before the fix); each decoded release lands in the channel's exact slot. '''Notifiers''' are serviced by the pump, and family events are delivered as RM events + MSI-X through the guest's registered event objects.&lt;br /&gt;
&amp;lt;span id=&amp;quot;5-challenges-honestly&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 5. Challenges, honestly ==&lt;br /&gt;
&lt;br /&gt;
* '''GR dispatch wall.''' The forward path runs front-end methods, the context is valid and the destination window is accepted — and the descriptor install is still not observed. The mode matrix carries dozens of single-variable falsifiers (promote shapes, prelude/PCAS form, local-memory block, lane controls, shadow windows, pointer relocation).&lt;br /&gt;
* '''Completion publication.''' A boot where GR rings were discovered and releases applied still saw the guest re-queue the same push and give up. A later &amp;lt;code&amp;gt;sema_dbg=Y&amp;lt;/code&amp;gt; run settled it: the release was written to the exact slot, the notifier cleared and the event posted, while the completion counter publication never wrote because the fixed-total autoreg mapping makes it a structural no-op. The leading reading is the counter-slot publication; the GP_GET write-back is the secondary, still-open candidate. Both are debug-gated today.&lt;br /&gt;
* '''Reproducibility (ISSUE-0001).''' The green/stall split is per-boot. The first fix wave landed and the earlier CE freeze is gone; the stall moved to GR ring discovery, which the latest discovery work addresses. Acceptance is 10 cold boots green, pending.&lt;br /&gt;
* '''Multiple clients (ISSUE-0002).''' A second CUDA process wedges in guest UVM because host per-client sema/GR state is not reset when the guest re-runs its per-client boot handshake. Per-client state containers and reset are the designed path.&lt;br /&gt;
&amp;lt;span id=&amp;quot;6-portability&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 6. Portability ==&lt;br /&gt;
&lt;br /&gt;
The '''architecture''' ports: observe pushes, resolve truth, decode, execute/forward, publish completion. So does the '''RPC/RM object model''' and the mode-matrix practice. What does '''not''' port is address-level fact: ring conventions, VA windows, QMD offsets, context-image layout, PTE encodings, engine inventories and scratch layouts must be re-derived per driver version and GPU architecture by measurement, never guessed. A new version enters as a profile plus a measured delta; driver 610 additionally sits behind an explicit human approval gate.&lt;br /&gt;
&amp;lt;span id=&amp;quot;7-future&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 7. Future ==&lt;br /&gt;
&lt;br /&gt;
The planned next steps are reproducibility acceptance, the descriptor-install and completion-publication investigations (offline-first with the RISC-V GSP-RM debugger where possible), the arbitrary-kernel acceptance suite, then the near-native performance program. The unsolved future classes — multi-tenant fairness, fault replay/cancel, context switching between tenants, hostile-guest hardening, and version drift — each have a proactive design direction. 3D graphics reuses this pipeline once compute dispatch is proven; it adds engine breadth (video/image), more channels and synchronisation volume, and a much larger method vocabulary, but not a new plane.&lt;br /&gt;
-----&lt;/div&gt;</summary>
		<author><name>WikiBot</name></author>
	</entry>
</feed>