Files and artifacts
This page is the single source of truth for repository directories, build artifacts, session directories, guest image files and path-related environment variables. Version and provenance data is in Version matrix.
Source directories
Path |
Content |
Notes |
|---|---|---|
|
YAML decoding, validation, template merging, memory layout, adapters and command rendering |
Rust library exposing |
|
Execution plans, process supervision, resource ownership, disks and cleanup |
Rust library exposing |
|
Command line, signal handling, events and verdict output |
the |
|
Topology rendering, session lifecycle and vfio-user integration tests |
tests that need QEMU or gem5 are marked |
|
Reusable vHost and device-model configurations |
imported by machine configurations |
|
Complete machine configurations and multi-machine compositions |
tests load configurations and render every process |
|
Reserved for example programs run after a vHost boots |
topology YAML lives under |
|
Build, development container, launchers, test runners and image helper scripts |
|
|
CI lifecycle, ROCm regression, image and runtime artifact tools |
see the |
|
Guest image recipes (Packer template and Ansible playbook) |
the only recipe is |
|
MI300X device model, vfio-user server, GART/PM4/SDMA/IH |
content of the gem5 submodule |
|
cosim gem5 configuration |
|
|
SST network experiment data models |
independent of the Rust launcher |
|
vfio-user transport library |
a dependency of the gem5 submodule |
|
QEMU vfio-user server and client implementation |
content of the QEMU submodule |
|
Bilingual documentation sources |
Chinese primary, English file-by-file mirror |
Build artifacts
The build recipes map to the following artifacts; version data is in Version matrix.
Artifact |
Path |
Recipe |
|---|---|---|
QEMU |
|
|
gem5 |
|
|
Guest kernel |
|
|
Guest disk |
|
|
ROCm asset bundle |
|
|
Rust launcher |
|
|
Sample GPU program |
|
|
Session directories and runtime artifacts
cosim run creates an independent directory and resources for every machine; the common paths are:
Path |
Content |
Lifetime |
|---|---|---|
|
run directory: |
kept after a normal exit; |
|
session lock; the launcher and all child processes hold the same lock |
released after every process exits |
|
pool directory on Linux with one |
removed after a normal exit |
|
vfio-user socket served by the device to the host |
removed on exit |
|
per-machine qcow2 disk overlays ( |
removed on exit |
|
shared disk image lease directory ( |
lock files remain after the session |
|
diagnostic artifact directory captured by the legacy shell launcher |
managed by the launcher cleanup path |
Guest image files
The guest image is built from the only recipe and its driver initialization depends on these files.
Path (inside the guest) |
Purpose |
|---|---|
|
VGA BIOS ROM binary written to |
|
IP discovery firmware |
|
symbolic link to |
|
boot-time initialization unit |
|
initialization script: ROM write, firmware link, driver load and verification |
|
ROCm 7.0 DKMS amdgpu kernel module |
gem5 MI300X model sources
File ( |
Purpose |
|---|---|
|
vfio-user server SimObject exporting BARs, config space and interrupts |
|
Python wrapper for the vfio-user SimObject |
|
CosimBridge interface used by the vfio-user server |
|
GPU device core: |
|
GART, AGP, MMHUB and user-context translation with the shared-VRAM fallback |
|
PM4 decoding, DMA routing, VRAM write routing and |
|
PM4 opcodes including |
|
SDMA execution, rptr writeback routing and the |
|
IH ring DMA and MSI-X interrupt delivery |
|
ASIC initialization complete register |
gem5 configuration, Python components and QEMU interface
File |
Purpose |
|---|---|
|
vfio-user cosim system configuration started by the |
|
MI300X device definition |
|
QEMU device-side vfio-user object implementation |
Sources and maintenance
The path and file lists follow the current repository layout; update this page when files move:
Build artifact paths are defined by
justfileandscripts/host/build.sh.Session paths and reserved names are defined by
crates/cosim-runtime/src/layout.rs.Guest file paths are defined by
provision.ymlandfiles/in the image recipe.Environment variables are defined by
justfile,scripts/host/dev.sh,scripts/host/cosim_launch.shandcrates/cosim-runtime/src/env.rs.
Verify with:
just --list
just build-status
just run-topology resources/machines/single-gpu.yaml --dry-run