From 78b8f909784676c5ec6f02a6c48d51ec2a589f96 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Tue, 29 Sep 2026 16:11:28 -0400 Subject: 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 --- docs/03-architecture/03-gsp-and-gsp-rm.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'docs/03-architecture/03-gsp-and-gsp-rm.md') 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: -- cgit v1.2.3