diff options
Diffstat (limited to 'docs/07-developers/onboarding-and-standards.md')
| -rw-r--r-- | docs/07-developers/onboarding-and-standards.md | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/docs/07-developers/onboarding-and-standards.md b/docs/07-developers/onboarding-and-standards.md index 78503f4..3d7ac78 100644 --- a/docs/07-developers/onboarding-and-standards.md +++ b/docs/07-developers/onboarding-and-standards.md @@ -17,7 +17,9 @@ — where the code lives (30 min). 5. [`../04-implementation/01-known-knowns-and-unknowns.md`](../04-implementation/01-known-knowns-and-unknowns.md) — what to work on and what is hard (30 min). -6. The subsystem doc for whatever you plan to touch. +6. Working on CUDA: [`../../userspace/cuda/READ-ME-FIRST.md`](../../userspace/cuda/READ-ME-FIRST.md) + — CUDA stack analysis, tooling, and the current blockers. +7. The subsystem doc for whatever you plan to touch. ### 1.2 Environment @@ -53,6 +55,8 @@ the VM holding it. The stack manager enforces the order. open-iov/ ├── kernel/ host module (GSP emulation, device model, memory model) ├── userspace/ management library + examples +├── userspace/cuda/ CUDA stack analysis + tooling (start at +│ userspace/cuda/READ-ME-FIRST.md) ├── tools/ debugging and analysis tools (guest-diag, rmq, │ firmware analysis wrappers) ├── scripts/ build/load/test automation, VM harness @@ -96,8 +100,12 @@ open-iov/ the definition of done. * Prefer a table or a decision tree over prose for anything an operator will follow under pressure. -* Protocol facts (IDs, offsets, structures) must cite their source - (the decompiled study notes, or a live trace). +* Protocol facts (IDs, offsets, structures) must cite their source (a live + trace, or an analysis artifact). Userspace (`libcuda`) addresses are *file + virtual addresses* (`libcuda+0x...`); Ghidra loads that library at **image + base `0x100000`**, so old decompilations produced without translating the + offset are 0x100000 too low (the wrong functions) — re-derive any conclusion + drawn from them. ## 4. Tooling @@ -105,7 +113,10 @@ open-iov/ |---|---| | `scripts/stack_manager.sh` | build/load/status/test/unload with correct ordering | | `scripts/vgpu_vm.py` | VM lifecycle incl. guest-agent exec/shell | -| `tools/guest-diag/` | guest-side diagnostics (ptrace tracer, engines, probes, push helper) | +| `tools/guest-diag/` | guest-side diagnostics (ioctl tracer, engines, probes, push helper) | +| `userspace/cuda/tools/` | CUDA binary analysis (crash decoder, callgraph walk, decompile-at, corpus annotation) | +| `tools/cuda-ab/` | host-vs-guest CUDA A/B harness (one deterministic workload, diffed results) | +| `tools/rmq/` | host RM-API oracle for ground-truth GPU/RM data | | `tools/firmware_analyzer.py` + Ghidra scripts | firmware analysis pipeline | | module debug parameters | guest-memory scanning/poking, VRAM inspection | | QEMU gdbstub workflow | guest virtual-memory inspection/writing | @@ -128,9 +139,11 @@ open-iov/ ```bash make kernel # open-iov-vfio.ko (first!) -make nvidia # NVIDIA OpenRM modules with KBUILD_EXTRA_SYMBOLS +./scripts/build_nvidia_openrm.sh # optional OpenRM modules, KBUILD_EXTRA_SYMBOLS from kernel/Module.symvers make userspace # libiov.so, examples make all # in the correct order +make tests # build the host test binaries only (does not run them) +./scripts/stack_manager.sh test # run the host test suite make clean ``` |
