Skip to content

x86 test harness: no gate mode exercises process exit/teardown with counter visibility (mode=full hangs: completion.rs missing x86_64 timeout) #540

Description

@ryanbreen

Evidence

Discovered by the #470 PR-1b campaign's beast x86 gate while trying to get runtime proof (not just code review) that the page-table custody disposition counters (PT_ROOT_ABANDONED_*, PT_ROOT_DROPPED_UNDECIDED, PT_EXEC_WALK_LEASES_UNRETURNED, etc.) actually fire on x86 in production.

  • mode=kthread builds the kthread_test_only feature kernel, which never spawns or exits userspace processes. It structurally cannot exercise process teardown, so the disposition counters are unobservable in this mode — not a failure, just out of scope for what kthread mode drives.
  • mode=full is documented in run-x86-gate.sh as hanging on x86. Root cause: kernel/src/task/completion.rs is missing an x86_64 timeout that the aarch64 path has, so a full-mode x86 boot that reaches process exit/teardown never completes and the gate hangs rather than passing or failing cleanly.

Consequence

x86 runtime proof that the PT_ROOT_ABANDONED_* / disposition counters fire correctly in production must currently come from aarch64 parity + code review of the x86 code paths, not from an executed x86 gate. That is weaker evidence than the project wants for kernel-path changes.

Needed

Either:

  1. Fix mode=full (add the missing x86_64 timeout to kernel/src/task/completion.rs so process exit/teardown completes deterministically), or
  2. Add a new x86 gate mode that enables boot_tests process spawn/exit (i.e., not kthread-only) with counter visibility, without depending on the currently-hanging full mode.

Reference

Surfaced during the #470 PR-1b campaign (process page-table custody record). See PR-1b for the disposition-counter work this harness gap blocks from being runtime-proven on x86.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions