Repository navigation
ci(smp): attach the restricted user network to the SMP harnesses (STRICT-Q S2) - #102
Merged
Merged
Conversation
STRICT-Q S2 (D2(a), #64): smp_test.sh, smp_test_4core.sh and extended_smp_test.sh boot with the same virtio-net device and restricted user netdev as kernel_test.sh, so the seven network runtime cases run instead of deferring on a missing eth0. Extending boot_check.sh remains a separate, undecided proposal.
2 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plan item: STRICT-Q
Problem and outcome
STRICT-Q (#64) needs a strict pass at SMP-4. On that harness, seven network runtime cases defer only because the guest has no
eth0:smp_test_4core.sh,smp_test.shandextended_smp_test.shboot without a network device.kernel_test.shhas had one since P1-A, and the same cases pass there.This is batch S2 of the approved STRICT-Q design (Nilix-docs-private
design/strict-q-deferral-inventory.md, decision D2(a), approved 2026-11-10). The three SMP harnesses now attach the same restricted user network askernel_test.sh, so those cases run.Related issue or audit finding
Related: #64. Design: Zero-kernel/Nilix-docs-private#4 (D2).
Design and scope
-netdev user,id=net0,restrict=on,ipv6=off -device virtio-net-pci,netdev=net0,romfile=, exactly as inkernel_test.sh.restrict=onkeeps the guest off the host network. SLIRP still answers the guest, which is all the network cases need, as they already show at runtime 1 and 4 vCPUs.romfile=skips the iPXE option ROM.net_ns_tx_isolation,netns_config_isolation,netns_rx_ingress,netns_rx_pool_lifecycle,netns_rx_eth0_slirp,netns_arp_probe_txandnetns_pending_frame.gate_log_test.pygains a test that the three SMP harnesses andkernel_test.shpass these arguments to QEMU, and thatboot_check.shdoes not.boot_check.sh. On 2026-11-11 the maintainer decided it gets no NIC for now; [RFC]: keep boot_check.sh without a NIC for now (STRICT-Q D2 residual) #103 records the decision and the options for later.Kernel safety and invariants
kernel_test.sh.restrict=ongives it no route to the host or the internet.unsafe/ MMIO / page-table / usercopy justification: none; no kernel change.Validation evidence
Public index:
.validation/strict-q-s2/README.md. Receipts are archived privately in Zero-kernel/Nilix-docs-private#14.Local (Fedora):
Negative control (local edit, never committed): restoring
smp_test.shfrom2e09191fails the new test in itssmp_test.shcase.Dev host, QEMU 8.2 (TCG), parent
2e09191and this branch side by side, no retries:smp_test.sh)In strict SMP-4, exactly the seven network cases change, each from deferred to pass. No other case changes.
The extended runs come from a second batch. In the first batch, the extended harness was BLOCKED before QEMU started because my script left the host's
zstdoff PATH.Extended CI on this branch, run 42978556364 (
45924d6):counts.json, the seven cases pass at 8, 16 and 32 vCPUs on both images, with 45/29 at each size. On main's 24.04 smp-8-16 artifact they are deferred, at 38/36.None of these is a strict pass.
Compatibility, performance, and rollout
The extended harnesses run in window mode: each guest runs for its whole window (900 s at 8 and 16 vCPUs, 3600 s at 32), and QUALIFIED means the suite completed inside it. Gate times against main's Extended run 42950345865 (
297d7d5):final-owner-16gate (243.6 s → 539.5 s), which runsshared_final_owner.shthroughkernel_test.sh. This PR touches neither;kernel_test.shalready had the NIC.Backout is a revert.
Checklist
unsafeblocks have localSAFETYreasoning and a minimized unsafe scope. (none)