summaryrefslogtreecommitdiffstats
path: root/docs/03-architecture/03-gsp-and-gsp-rm.md
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 16:11:28 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-29 16:11:28 -0400
commit78b8f909784676c5ec6f02a6c48d51ec2a589f96 (patch)
tree3bf70f86312b66071ea9a96debcf84fe25ff4ae8 /docs/03-architecture/03-gsp-and-gsp-rm.md
parentad16069d87c3c852b3f3c68ed41c62d581c213ed (diff)
downloadopen-iov-78b8f909784676c5ec6f02a6c48d51ec2a589f96.tar.gz
open-iov-78b8f909784676c5ec6f02a6c48d51ec2a589f96.zip
docs: add the full-system picture and interaction/scheduling diagrams
- new 03-architecture/09-full-system-picture.md: end-state map, GSP boot, guest init, RPC lifecycle, memory model, work path (bridge and end state), scheduling, isolation levels, KVM/mdev/VFIO, BAR/engine/channel/GMMU, portability, performance model, implementation/test status - new 03-architecture/10-interaction-and-scheduling.md: interaction inventory, control-plane call path, msgq element lifecycle, channel pump, concurrency, timing budgets, multi-tenant scheduling, teardown ordering, versioning - README: mermaid system diagram replaces the ASCII block; reading list extended and renumbered - component docs: GSP boot sequence, mdev/VFIO lifecycle, end-state interaction sequence; STATE-CURRENT links
Diffstat (limited to 'docs/03-architecture/03-gsp-and-gsp-rm.md')
-rw-r--r--docs/03-architecture/03-gsp-and-gsp-rm.md23
1 files changed, 23 insertions, 0 deletions
diff --git a/docs/03-architecture/03-gsp-and-gsp-rm.md b/docs/03-architecture/03-gsp-and-gsp-rm.md
index 8809bb7..fe51838 100644
--- a/docs/03-architecture/03-gsp-and-gsp-rm.md
+++ b/docs/03-architecture/03-gsp-and-gsp-rm.md
@@ -54,6 +54,29 @@ Our emulation implements stage completion rather than the stages themselves —
which is legitimate because the *only observable* to the driver is the state
machine it polls.
+```mermaid
+sequenceDiagram
+ autonumber
+ participant GD as Guest driver
+ participant R0 as BAR0 shadow
+ participant GE as GSP emulation thread
+ participant MQ as Message queues in guest sysmem
+ participant GRM as GSP-RM emulation
+
+ GD->>R0: WPR descriptors and boot kicks
+ GE-->>R0: stage status transitions
+ GD->>R0: poll for boot complete
+ R0-->>GD: firmware running
+ GD->>MQ: set up queues and ring the doorbell
+ GE->>MQ: read and dispatch elements
+ GRM-->>MQ: write replies
+ GE-->>GD: MSI-X completion
+```
+
+The cross-component detail (doorbells, queues, interrupts, latency classes) is
+in [`09-full-system-picture.md`](09-full-system-picture.md) and
+[`10-interaction-and-scheduling.md`](10-interaction-and-scheduling.md).
+
## 3. The transport: message queues and RPC
GSP-RM's transport is a shared-memory message queue pair: