Skip to content

doc: add CPU profiles and time-ABI components to the responsibility map - #461

Merged
Pedro Henrique Penna (ppenna) merged 1 commit into
devfrom
doc-sync/ownership-map-cpu-time
Oct 10, 2026
Merged

Pedro Henrique Penna (ppenna) merged 1 commit into
devfrom
doc-sync/ownership-map-cpu-time

Conversation

@ppenna

Copy link
Copy Markdown
Contributor

Summary

The component responsibility map is the entry point for the design docs, but it was written before CPU profiles and the time ABI's guest and host components existed. As a result, it did not say which component owns the guest-visible CPU surface, the guest's time obligations, restore entropy, host qualification, or the NVX-side egress-policy compiler. This PR adds those areas to the map. It names components only, following the map's navigation-aid style, and does not describe their internals.

OpenVMM pin (source of truth): f4566bab0a30324de0a2ac292a65d0081ba319e0. Base: origin/dev at 38c67cf17cceaba0acdbddb19a422bab8828df11.

Changes

All changes are in doc/design/code-ownership-map.md (5 rows added, 1 row extended):

Row Evidence
CPU profiles (catalog, --cpu-profile selection, host profiles and auto fallback, backend support and restore checks, CPU fingerprints): OpenVMM CPU-profile catalog, with the shared time-ABI layer that builds the effective CPUID openvmm/vmm_core/cpu_profile/src/lib.rs module docs (Selection, Verification, Restore, fingerprints; "OpenVMM builds it in virt::time_abi::cpuid::effective_cpuid"); openvmm/vmm_core/virt/src/time_abi/cpuid.rs; openvmm/openvmm/openvmm_entry/src/cpu_fingerprint.rs
Structured egress-policy files: NVX launcher's egress-policy compiler scripts/nvx_tools/egress_policy.py ("Compile structured IPv4 egress policies to the native OpenVMM rule grammar"), used by scripts/nvx.py for run --network-egress-policy-file
Restore entropy, added to the guest init agent and snapshot helper row along with the reseed helper guest/common/nvx-snapshot calls /sbin/nvx-reseed (a full reseed, or --generation-only for instance-checkpoint); guest/common/nvx-reseed.c; doc/design/time-abi.md#restore-entropy
Guest time-ABI obligations (conformance checks, violation watcher, wall-clock discipline, snapshot time steps): NVX guest time component guest/common/nvx-time.c header; guest/common/init runs nvx-time boot; nvx-snapshot runs nvx-time pre-capture, capture, and restore-finish; doc/design/time-abi.md#guest-obligations
Host qualification for the time ABI: NVX host doctor, a subset of which CI's runner validation runs python scripts/nvx.py doctor --help (checks H1 to H7); scripts/nvx_tools/doctor.py CHECK_TITLES; .github/actions/validate-runner/action.yml runs doctor --checks H1 H2 H4 plus H3 and H6 when their inputs enable them

Conservative choices

Follow-ups (out of scope)

Validation

  • python -m unittest scripts.test_nvx_tools.CliTests scripts.test_performance.PerformanceTests: Ran 110 tests, OK (skipped=1).
  • A throwaway checker kept outside the repo found every relative link and anchor resolving in the changed file and in files that link to it (doc/design.md). The changed file has one H1 and balanced code fences, and doc/design.md links all 16 chapters in doc/design/. Errors: 0.
  • git diff --check: clean.
  • python scripts\nvx.py verify: passed ("source tree and submodule metadata are consistent").
  • The only changed path is doc/design/code-ownership-map.md, which matches ^(doc/|.*\.md$).

The component responsibility map predates CPU profiles and the time ABI's
guest and host components. Assign the CPU-profile catalog, the NVX
egress-policy compiler, restore entropy, the guest time component, and
host qualification to their components.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 10, 2026 02:07
@ppenna Pedro Henrique Penna (ppenna) added the documentation Improvements or additions to documentation label Oct 10, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The documentation accurately reflects the referenced components and preserves the map’s established scope and style.

0 open findings

What changed in this PR

Updates the responsibility map to cover newer CPU-profile and time-ABI components.

Changes:

  • Adds ownership entries for CPU profiles and egress-policy compilation.
  • Documents restore entropy, guest time obligations, and host qualification ownership.
File Description
doc/​design/​code-ownership-map.md Extends the architectural responsibility map with five areas and one expanded entry.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@ppenna
Pedro Henrique Penna (ppenna) merged commit 9a5dff3 into dev Oct 10, 2026
28 checks passed
@ppenna
Pedro Henrique Penna (ppenna) deleted the doc-sync/ownership-map-cpu-time branch October 10, 2026 02:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants