You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 8edda46
Browse filesBrowse the repository at this point in the historyBrowse files
nix: homa-vm-matrix (pair plan phase 3); init_on_free in test VMs
homa-vm-matrix runs every per-kernel smoke test and every cross-kernel
pair in parallel, each in its own directory (microvm.nix puts the QMP
socket in the cwd), and prints a summary table (verdict, echo, GRO
calls, cp_node rates) to the terminal and summary.md.
Its first run caught a use-after-free in homa_route_free on netns exit
and rmmod (STATUS.md F8; fix as fork draft #22). The guests now boot
with init_on_free=1, which turns that race into an oops on every run.
STATUS.md also records John's answer on PlatformLab#120: main will target an LTS
of 7.3 or later, so F1 (6.18 backports) is closed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: nix/STATUS.md
+40-10Lines changed: 40 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,7 @@ Related docs:
12
12
|||
13
13
|---|---|
14
14
|**Last update**| 2026-10-28 |
15
+
| 2026-10-29 | John: `main` will target an LTS of 7.3+ (F1 closed). Phase 3 `homa-vm-matrix`; guests boot with `init_on_free=1`; found F8 (UAF in `homa_route_free`), fix as fork #22|
15
16
|**Branch**|`nix-flake` on randomizedcoder/HomaModule, rebased on upstream `main`|
16
17
|**nixpkgs**|`nixos-unstable`|
17
18
|**Default kernel**|`linuxPackages_latest` (7.3); unit harness and fuzz-mock use 6.18.57 headers (F5) |
| Single VM |`homa-microvm-test-{6_12,7_3}`| ✅ insmod, loopback echo, netns/veth with GRO+RPS (about 1.7k `homa_gro_receive` and 460 `homa_set_softirq_cpu` calls), rmmod, clean dmesg |
33
34
| Two VMs |`homa-pair-test-<server>-<client>`| ✅ all four 6.12/7.3 pairings: ping, echo 100 B–1 MB, cp_node w4 over Homa and over TCP, clean dmesg on both. 8 VMs in parallel finish in 50 s |
34
35
| Latency sweep |`homa-pair-exp`, `homa-pair-exp-socket`| ✅ F2 explained: QEMU's TCP `socket` link stalls packets; over the UDP `dgram` link (now the default) Homa's P50 matches TCP's |
36
+
| VM matrix |`homa-vm-matrix`| ❌ on `main`: all 6 oops in `homa_route_free` (F8). ✅ 6/6 with the fix (fork #22), 46 s |
35
37
| KASAN VM |`homa-microvm-test-debug`| ⏳ not run yet (F7) |
36
38
| Static analysis |`analysis-deep`| Four rounds triaged; see the bugs below |
37
39
@@ -59,7 +61,7 @@ that traffic flows, not how fast Homa is.
Copy file name to clipboardExpand all lines: nix/microvms/PLAN-pairs.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,7 +60,7 @@ Two guests built by the existing `mkVm.nix`, each with a second NIC:
60
60
|---|---|---|---|
61
61
| 1 ✅ | Pair harness, same kernel |`homa-pair-test` (default kernel) |**Done:** echo + cp_node Homa/TCP pass on 7.3 ↔ 7.3, about 35 s cached; a client with a dead link fails at `PING`. The interactive pair (`homa-pair`) moves to phase 3 |
62
62
| 2 ✅ | Cross-kernel pairs |`homa-pair-test-<A>-<B>` for supported kernels (6.12 ↔ 7.3 both ways) |**Done:** all four pairings pass; each has its own link port, and all four run in parallel in 50 s. `vmSeries` in `kernel.nix` limits VM targets to 6.12 and 7.3 |
63
-
| 3 | One command for everything |`homa-vm-matrix`: every single-VM test plus every pair, run in parallel, printing a table (kernel(s), verdict, RPC counts, cp_node rates) |`nix run .#homa-vm-matrix` is the demo|
63
+
| 3 ✅ | One command for everything |`homa-vm-matrix` (`matrix.nix`): every single-VM test plus every pair, run in parallel, printing a table (kernel(s), verdict, echo, GRO calls, cp_node rates) |**Done:** 6 tests in 46 s. Its first run found a use-after-free in `homa_route_free` (STATUS.md F8); guests now boot with `init_on_free=1`|
64
64
| 4 | Lossy and slow links |`homa-pair-test-netem`: `tc netem loss 1% delay 1ms` on eth1 | Echo still completes, and the RESEND/retransmit counters in `/proc/net/homa_metrics` move |
65
65
| 5 | Homa qdisc on virtio | the pair with `tc qdisc replace dev eth1 root homa`| Exercises the pacer across VMs. virtio-net reports `SPEED_UNKNOWN`, so this should reproduce round-4 candidate 5 (link speed −1): a red test in a VM, then green with the fix |
66
66
| 6 (stretch) | Boot 7.0–7.2 | full kernels built from the kernel-src.nix tarballs (`buildLinux`, about 30 min each, cached) | The VM matrix covers every 7.x series, not just compile-only |
0 commit comments