- If revisiting unit2nix, use the real dependency path again, but target a different upstream lever than host/member-closure pruning, Redox-side
members = [ member ]hints, or globally disablingtest/clippyoutputs. Local-copy vendoring inside Redox is still a confound (9011mssteady-state even for a no-op copy), the real-input host/member pruning patch lost (6833mssteady-state against a6621mslocal-input control), and current locked unit2nix treats Redox-sidemembers = [ member ]as effectively noise. Also stale: globally disablingtest/clippyoutputs by default was much worse (14000ms). Mildly promising only: on a clean detached worktree, current unit2nix HEAD is around7210-7216ms, and a local patch that delays test/clippy graph construction until.test/.clippyis actually accessed improved that to about7036-7182ms. That gain is still low-confidence, but it is worth remembering as a future upstream direction. - Do not chase
base.srcextraction first:nix eval --raw .#base.src.drvPathis only about260ms, so the remainingbasePerCratecost is mostly unit2nix/workspace aggregation, not patched-source passthru lookup. - Rebuild benchmarking is newly viable again on the kept tree because
make-disk-image.nixnow normalizes GPT disk/partition GUIDs and CRCs in place afterparted. If rebuild-focused iteration becomes worth a new experiment session, use that fixed tree rather than the old nondeterministic baseline. - Run-ms staging ideas must use a writable Cloud Hypervisor-supported COW path or a different VMM. Old paths now stale: qcow2 backing files (
CreateQcowDiskSync(BackingFilesDisabled)) and plain read-only raw disks (ReadOnlyduring early boot). - Smoke-profile initfs trimming remains viable only in narrow steps. Kept so far: exclude
rtcd,ptyd,ipcd,acpid, andlived; direct hot-cache A/B favoredacpidexclusion (9877msand10253mswithacpidexcluded vs12336msafter reverting onlyacpid), and warm reruns withlivedexcluded reached about6873-7257ms. Known unsafe: excludehwd, or excludeacpid/hwd/rtcdtogether — both broke boot during switchroot. Also stale now: replacinghwdwith a directpcidoverride while excludinghwd; that path regressed catastrophically. - Smoke-profile hardware narrowing is now validated too:
storageDrivers = [ "virtio-blkd" ]andnetworkDrivers = [ ]produced a stable hot-cache win. Do not re-test broader driver sets unless the smoke workload stops being Cloud-Hypervisor-only. - Smoke-profile VM resource reduction now looks stale too: both
1024MiB/1 vCPUand512MiB/1 vCPUlost badly, and512MiB/2 vCPUwas rebuild-heavy/confounded enough that it is not worth pursuing further on this benchmark. - Also stale for current tree:
/power.acpiEnable = false; retrying576MiBand592MiBsmoke images after the newer trims;32MiBESP (too small);48MiBESP (build_ms regression);cp -a --reflink=autofor the rootTree copy;cp disk.img→mv disk.imginmake-disk-image.nix(flat vs same-file dirty control); smoke-onlydiskImageBootCompat = falseto skip copied$out/boot/*files (still lost badly versus current head);boot.initSkip = [ "hwd" ](boot failure); andcp --sparse=alwaysfor mk-vm-test runtime disk staging (slight loss vs same-file dirty control). - Do not pursue
bootloaderPerCrateright now. The QEMU-only runner wiring was an off-path confound for the active CH smoke benchmark, and the deeper on-path experiment is currently blocked because even with a generatedbootloader-build-plan.json, the per-crate UEFI build fails inaeswith undefined__extendhfsf2/__truncsfhf2. - Image-build micro-tunes to drop: larger-block final
ddwrites inmake-disk-image.nix, direct-to-output image creation inmake-{esp,redoxfs,disk}-image.nix, ESP payload slimming inmake-esp-image.nix, disk-image output boot symlink swaps, incremental serial-log polling inmk-vm-test.nix, and the QEMU-onlybootloaderPerCraterunner wiring all lost clearly, landed flat, or were off-path for the active CH smoke benchmark.