Click a patch. Blue outline = what it needs
(ancestors); vermilion = what needs it (descendants). Click again or press
Clear to reset.
Legend
verified dependency
inferred (verify during group review)
gold arrow: completes an end goal (hexagons). Each goal is drawn beside the group that achieves it; together the four constitute the ASI end state (guest-owned data not reachable from other contexts).
green node border: vetted so far (status shown on selection)
double border: posted to xen-devel (thread link on selection)
Dependencies already implied by a drawn path are recorded but not drawn; the click-cone includes them.
Postings
part 1 (Aug 2026) — nodes 02–08: cover letter (threads via the sidebar; links resolve on lore once posted)
Open items
This graph is a work in progress: it maps the whole intended series, and dependency lines (especially dashed ones) may still change as later groups are vetted.
Posting model: a rolling series. Patches are posted from the front as they become ready and dropped once committed; new ones are appended as they mature. "A later patch" in a message may therefore mean "next round in this series".
Groups are not posting units. Some stand alone (nodes 2-8 retire the stashed GDT/LDT L1 pointers; the interface simplification could go by itself); others only make sense with their consumers (the per-vCPU tables without their users are infrastructure with no user).
Edges are logical dependencies -- an edge means the pair cannot compose in the other order without redesign -- plus a few purpose edges ("A exists to make B reviewable"). Dashed edges are inferred from titles/messages and should be confirmed as their groups are reviewed. Symbol hits inside docs/designs/asi.md are index updates, not dependencies.
Known commuting pairs deliberately carry no edge: e.g. the GDT and LDT conversions versus the destroy() parameter switch -- either order composes, with one-line adapters on whichever comes second.
The per-vCPU address space and mapcache is delivered jointly by the per-vCPU L3, the per-vCPU mapcache and the unique root L4; the cluster is named for that effect, and is what per-CPU stacks, the unified mapcache and the state window depend on (cluster edges).
The Arm patches are parked, not part of this series; the design doc's arm64 work item reads TODO accordingly.
Source of truth: gen-depgraph.py (same directory);
positions read live from stg series; regenerate with
python3 gen-depgraph.py.