Skip to content

vms-a9e: SHOW CPU — primary, active/configured sets, per-CPU state + capabilities - #465

Merged
baron-3dl merged 1 commit into
mainfrom
vms-a9e-show-cpu
Aug 13, 2026
Merged

baron-3dl merged 1 commit into
mainfrom
vms-a9e-show-cpu

Conversation

@baron-3dl

Copy link
Copy Markdown
Contributor

Summary

Implements the SHOW CPU DCL command (rd vms-a9e). It was absent on origin/main and fell through to %DCL-W-IVKEYW. Now it renders the authentic OpenVMS SHOW CPU report from real system data.

Forms

  • /SUMMARY (default per DCL Dictionary /ALL/SUMMARY): Multiprocessing is ENABLED/DISABLED, PRIMARY CPU, Active CPUs, Configured CPUs.
  • /BRIEF: per-CPU CPU nn is in RUN state.
  • /FULL: per-CPU state + Capabilities of this CPU: (PRIMARY QUORUM RUN for the primary, QUORUM RUN for secondaries) + Processes which can only execute on this CPU:.

Real data (INV-6 — no fabrication)

  • Configured set: /sys/devices/system/cpu/present
  • Active set: /sys/devices/system/cpu/online (sysconf _SC_NPROCESSORS_CONF/_ONLN fallback)
  • Primary CPU = lowest online CPU (the boot processor)
  • Per-CPU state / capabilities derived from those real facts

Honest omissions (omit rather than invent)

  • Per-CPU Current Process: line — the OVMX executive tracks no per-CPU process binding, so there is no real value to print.
  • VECTOR capability and the microcode minimum multiprocessing revision levels / synchronization-image lines — VMS-internal, no OVMX source.

These need a future executive CPU database (flagged in the rd item).

Clean-room provenance (Rule 8)

Report layout/wording taken only from public OpenVMS docs, cited in the source comment: VSI OpenVMS Wiki SHOW CPU, the OpenVMS DCL Dictionary SHOW CPU entry, and the marc.vos.net OpenVMS HELP mirror. No disassembly.

Wiring

Static function in existing dcl_cmd_show.c; no new cross-image symbol or TU → no native-link enumeration changes.

Tests

  • tests/dcl/test_show_cpu.sh — summary: PRIMARY CPU + active/configured sets from real data.
  • tests/dcl/test_show_cpu_full.sh — per-CPU RUN state + PRIMARY QUORUM RUN.
  • Both fail on origin/main (IVKEYW) and pass with this change; full-build dcl-integration suite green (ctest exit 0, 128 passed).

🤖 Generated with Claude Code

…state + capabilities

Adds the SHOW CPU DCL command (previously fell through to %DCL-W-IVKEYW).
Renders the authentic OpenVMS report from REAL system data:

  - /SUMMARY (default): Multiprocessing ENABLED/DISABLED, PRIMARY CPU,
    Active CPUs, Configured CPUs.
  - /BRIEF: per-CPU "CPU nn is in RUN state".
  - /FULL: per-CPU state + "Capabilities of this CPU:" (PRIMARY QUORUM RUN
    for the primary, QUORUM RUN for secondaries) + the bound-process line.

Data is sourced from the running system, never fabricated (INV-6):
configured set from /sys/devices/system/cpu/present, active set from
/sys/devices/system/cpu/online (sysconf fallback), primary = lowest online
CPU (boot processor). Per-CPU state and capabilities are derived from those
real facts.

Honest omissions (HARD RULE 2 — omit rather than invent): the per-CPU
"Current Process:" line (OVMX executive tracks no per-CPU process binding),
the VECTOR capability, and the microcode "minimum multiprocessing revision
levels"/synchronization-image lines have no OVMX source, so they are omitted
rather than rendered as fabricated values. These need a future executive CPU
database (flagged in rd vms-a9e).

Report layout/wording is clean-room (Rule 8) from public OpenVMS docs only:
VSI OpenVMS Wiki SHOW CPU, the OpenVMS DCL Dictionary SHOW CPU entry, and the
marc.vos.net OpenVMS HELP mirror — cited in the source comment. No new
cross-image symbol or TU, so no native-link wiring changes.

Tests: tests/dcl/test_show_cpu.sh (summary: PRIMARY CPU + active/configured
sets from real data) and test_show_cpu_full.sh (per-CPU RUN state +
PRIMARY QUORUM RUN capabilities). Both fail on origin/main (IVKEYW) and pass
with this change; full-build dcl-integration suite green (ctest exit 0).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@baron-3dl
baron-3dl merged commit f46f8fe into main Aug 13, 2026
61 checks passed
baron-3dl added a commit that referenced this pull request Aug 13, 2026
…ve (#472)

Bump OVMX_PRODUCT_VERSION V0.4-2 → V0.4-3. 15 PRs since V0.4-2. Headline:
the self-host toolchain now BUILDS — MMK.EXE drives real compile+link
inside OVMX against a live executive.

  SELF-HOST #4 COMPLETE  MMK.EXE genuinely drives compile+link builds vs real
                         /dev/vms (#464 capstone). Full exec-drive substrate:
                         async AST delivery + interruptible $HIBER (#457),
                         IO$M_NOW (#458), DCL-over-mailbox (#460), + crash fixes
                         #463 (32→64 ptr-width) / #464 (IO$M_NOW func-code mask).
                         Freeze-join fix (#459). Component build host-proven (#470).
  UX FIDELITY            SHOW CPU (#465), file protection SET/display (#467),
                         RECALL readline-independent (#468), DCL scripting
                         $STATUS/%X + CALL/SUBROUTINE + DECK/EOD (#469),
                         DIRECTORY wildcards/ellipsis (#461).
  + swept other threads' merged work

Self-host spine #5/#6 (MMK-drives-a-real-component IN QEMU) in flight.

Co-authored-by: alice <alice@workspace.local>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant