summaryrefslogtreecommitdiffstats
path: root/docs/03-architecture/09-full-system-picture.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/03-architecture/09-full-system-picture.md')
-rw-r--r--docs/03-architecture/09-full-system-picture.md38
1 files changed, 24 insertions, 14 deletions
diff --git a/docs/03-architecture/09-full-system-picture.md b/docs/03-architecture/09-full-system-picture.md
index e03a68e..3c15830 100644
--- a/docs/03-architecture/09-full-system-picture.md
+++ b/docs/03-architecture/09-full-system-picture.md
@@ -80,7 +80,7 @@ flowchart TB
class VDEV,EMU done
class MEMM,WORK wip
- class BE plan
+ class BE done
class IOMMU,VFIO done
class GSP,ENG,GMMU,VRAM,DB hw
class ND,USR,GKO,APP vendor
@@ -125,8 +125,9 @@ stateDiagram-v2
Emulated today: the module drives the
stage transitions and answers status
reads from the BAR0 shadow. The real
- backend boots the physical GSP in
- parallel [planned].
+ backend boots the physical GSP as its
+ own live session (init-done, static
+ configuration and clean releases proven).
end note
```
@@ -262,14 +263,14 @@ flowchart LR
F --> G["Write releases and completions<br/>into guest memory"]
G --> H["Guest trackers advance"]
- D -.->|"planned"| I["Forward to a real engine"]
+ D -.->|"wip/default-off"| I["Forward to a real engine"]
classDef done fill:#d5f5d5,stroke:#1e7a1e
classDef wip fill:#fff3cd,stroke:#9a7b1a
classDef plan fill:#f8d7da,stroke:#9a1a1a
class A,B,D done
class E,F,G,H wip
- class I plan
+ class I wip
```
This is a correctness bridge: it advances synchronization and memory
@@ -329,22 +330,30 @@ flowchart TB
R4 --> R5["Real submissions scheduled by GSP"]
R5 --> R6["Completion and faults relayed to guest"]
end
- G -.->|"translation [planned]"| R4
+ G -.->|"translation [wip/default-off]"| R4
classDef done fill:#d5f5d5,stroke:#1e7a1e
+ classDef wip fill:#fff3cd,stroke:#9a7b1a
classDef plan fill:#f8d7da,stroke:#9a1a1a
class A,B,C,D,E done
class F,G wip
- class R1,R2,R3,R4,R5,R6 plan
+ class R1,R2,R3 done
+ class R4,R5,R6 wip
```
+Backend boot, the real RM client, channel allocation and real CE copies are
+live; guest-forwarding and relay are default-off; GR execution and real guest
+page tables are the open `[planned]` parts (see
+[`11-physical-backend-guest-wiring.md`](11-physical-backend-guest-wiring.md)).
+
## 5. Scheduling and multi-tenancy
There is no hardware partitioning (no SR-IOV) on this GPU generation, so
tenancy is a **logical VF model**: each VM holds one mdev instance, and the
module gives each instance its own GSP-RM session, channels, page tables and
scheduling policy. “Per-VF GSP emulation” therefore means per-mdev emulation
-context plus a per-mdev real GSP client in the backend.
+context plus a per-mdev real GSP client in the backend. Today the backend is
+a single per-GPU session (live); per-mdev clients are planned.
```mermaid
flowchart TB
@@ -358,7 +367,7 @@ flowchart TB
Q2["Emulation context 2"]
Q3["Emulation context N"]
POL["Fairness policy [planned]<br/>time slices, quotas, priority, burst"]
- C1["Real GSP client 1 [planned]"]
+ C1["Real GSP client 1<br/>single per-GPU session [live]"]
C2["Real GSP client 2 [planned]"]
C3["Real GSP client N [planned]"]
end
@@ -381,7 +390,8 @@ flowchart TB
classDef wip fill:#fff3cd,stroke:#9a7b1a
classDef plan fill:#f8d7da,stroke:#9a1a1a
class Q1,Q2,Q3 done
- class C1,C2,C3,POL,SCHED plan
+ class C1 done
+ class C2,C3,POL,SCHED plan
```
**How multi-tenant performance works (and is intended to):**
@@ -636,10 +646,10 @@ against a stock guest driver with evidence in the repository.
| Guest memory access + VA-to-PA discovery | partial | yes | protocol-derived discovery, no external pins |
| Push decode + semaphore completion | partial | yes | complete GR/compute encodings |
| Software execution bridge (memsets, copies, releases) | partial | yes | remains bridge only |
-| Page-table population for server-owned ranges | no | no | design + validator, then implement |
-| Execution backend (own GPU + real GSP) | no | no | device ownership, real GSP bring-up, RM client |
-| Real work forwarding (GR and CE) | no | no | after backend bring-up |
-| Fault semantics (buffers, replay, cancel) | no | no | after forwarding |
+| Page-table population for server-owned ranges | partial (module-built scratch page tables, default off) | yes (default off) | real guest page tables |
+| Execution backend (own GPU + real GSP) | yes (single per-GPU session) | yes | per-mdev clients |
+| Real work forwarding (GR and CE) | partial (CE default-off) | yes (default off) | GR context validity/execution |
+| Fault semantics (buffers, replay, cancel) | partial (forwarded-engine observation/relay default-off) | yes (default off) | GR fault semantics and triage |
| Multi-tenant fairness policy | no | no | after multi-tenant forwarding |
| Version matrix (2+ driver families) | partial | partial | per-version profiles + A/B |
| Windows guest | no | no | after Linux execution path |