Skip to content

Commit 0292cfb

Browse files
nix/STATUS, pr-tracker: PlatformLab#146 fixed for 6.17; F15 drafted (fork #29)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent f976c9e commit 0292cfb

2 files changed

Lines changed: 11 additions & 4 deletions

File tree

‎analysis-reports/pr-tracker.md‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ John Ousterhout lands PRs by applying our commits to `main` himself, so a landed
2020

2121
## Round 5: VM and sanitizer findings (2 landed, 3 open)
2222

23-
Opened 2026-10-31 as one batch. #144 landed as `a6c0f9e`, #145 as `5cb0ec2` (2026-11-06). On #146, John asked for it to build on 6.17.8, which has no `mem_cgroup_from_sk`.
23+
Opened 2026-10-31 as one batch. #144 landed as `a6c0f9e`, #145 as `5cb0ec2` (2026-11-06). On #146, John asked for it to build on 6.17.8, which has no `mem_cgroup_from_sk`; fixed with a `LINUX_VERSION_CODE` check and force-pushed (2026-11-07), CI green on #146-#148.
2424

2525
| Upstream | Fork | Branch | Change | Found by |
2626
|---|---|---|---|---|
2727
| [#144](https://github.com/PlatformLab/HomaModule/pull/144) | #22 | `fix/peer-free-net-rcu-barrier` | `rcu_barrier()` in `homa_peer_free_net`: `homa_route_free` use-after-free (F8) | KASAN, test-first |
2828
| [#145](https://github.com/PlatformLab/HomaModule/pull/145) | #23 | `fix/qdisc-unknown-link-speed` | Homa qdisc on a link reporting `SPEED_UNKNOWN` (F11) | pair lifecycle, test-first |
29-
| [#146](https://github.com/PlatformLab/HomaModule/pull/146) | #26 | `fix/rpc-memcg-without-config-memcg` | `mem_cgroup_from_sk()`, not `sk_memcg` (F12b: no build without `CONFIG_MEMCG`) | `analysis-netdev` |
29+
| [#146](https://github.com/PlatformLab/HomaModule/pull/146) | #26 | `fix/rpc-memcg-without-config-memcg` | `mem_cgroup_from_sk()` from 6.18, `sk_memcg` before (F12b: no build without `CONFIG_MEMCG`) | `analysis-netdev` |
3030
| [#147](https://github.com/PlatformLab/HomaModule/pull/147) | #27 | `fix/peertab-lock-rhashtable-walk` | Walk `route_ht` outside `peertab->lock` (F13: softirq lock-order inversion) | lockdep |
3131
| [#148](https://github.com/PlatformLab/HomaModule/pull/148) | #28 | `fix/qdisc-deferred-offset-data-race` | Annotate `homa_qdisc_deferred_offset`'s lockless reads (F14) | KCSAN |
3232

@@ -133,6 +133,9 @@ about before sending code, since he plans to move `main` to the next LTS.
133133

134134
## Next
135135

136+
F15 (`freed_pages` set but unused in the stripped `homa_pool_free_bufs`, W=1): drafted as fork
137+
[#29](https://github.com/randomizedcoder/HomaModule/pull/29), `fix/pool-freed-pages-strip`, waiting for review.
138+
136139
Round 4 plan, eight candidates: [`round4/candidates.md`](round4/candidates.md).
137140

138141
## Checking status

‎nix/STATUS.md‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,10 @@ net/homa/homa_pool.c:361:13: error: variable 'freed_pages' set but not used [-We
494494

495495
The in-tree W=1 builds (gcc, clang, i386) fail on it. `make __STRIP__=1` without W=1 builds.
496496

497+
Fix: the declaration and increment go inside `#ifndef __STRIP__` blocks. Drafted as fork #29
498+
(`fix/pool-freed-pages-strip`); with it and #146, `analysis-netdev`'s gcc, clang and i386 W=1
499+
builds have 0 findings.
500+
497501
### The pair lifecycle on KASAN kernels
498502

499503
`homa-pair-lifecycle-debug` runs all 39 phases (2026-10-31, with the F8/F11 fixes). KASAN,
@@ -536,7 +540,7 @@ is `homa_route_free`, in an RCU callback, taking `peertab->lock` after the walk
536540
| 19 | F13: walk the route table outside `peertab->lock`, sent (upstream #147) | A possible hard hang at netns exit; lockdep fails the KASAN VM until it is fixed | small | us → upstream |
537541
| 18 | F12: `strip.py` `#else` toggle (landed: 10dd9b7, #134, not ours) and `mem_cgroup_from_sk()`, sent (upstream #146) | The net-next files must build in-tree before any submission | small | us → upstream |
538542
| 20 | F14: `skb_queue_len_lockless()` and `READ_ONCE`/`WRITE_ONCE` on `tx_left`, sent (upstream #148) | KCSAN fails the pair lifecycle until the intended race is annotated | small | us → upstream |
539-
| 21 | F15: `freed_pages` only under `#ifndef __STRIP__` in `homa_pool_free_bufs` | `analysis-netdev`: the stripped source fails W=1 again | small | us → upstream |
543+
| 21 | F15: `freed_pages` only under `#ifndef __STRIP__` in `homa_pool_free_bufs` | `analysis-netdev`: the stripped source fails W=1 again | small | drafted (fork #29) |
540544
| 12 | Keep `nix/fuzz/known-findings.txt` in step with upstream | Entries come out as fixes land, so the fuzz-mock gate stays meaningful; currently empty | ongoing | us |
541545

542546
---
@@ -556,4 +560,4 @@ is `homa_route_free`, in an RCU callback, taking `peertab->lock` after the walk
556560
| 2026-10-30 | Nix review and refactor, same targets: the debug VM boots its KASAN/KMEMLEAK kernel (it booted the plain one before) with a homa.ko built for it, and passes; kernel trees keep their name; `homa-lint` is `analysis-quick`; dead code and unused exports removed (drvPaths checked against a baseline); pair tests build their link port from their name and share one cp_node command line; stale comments fixed |
557561
| 2026-10-30 | Demo evidence: `analysis-netdev` (netdev's checks on the `make net-next` files: found F12, they do not build in-tree), `homa-tests-coverage` (gcov: 86.7 % of lines), sanitizer VMs (`-debug`: KASAN, KFENCE, KMEMLEAK, lockdep, UBSAN; `-kcsan`) for the smoke test and the pair lifecycle (found F13 and F14; KASAN names F8), and `homa-evidence`, one HTML report of all of it. The netem drop check accepts a quarter of the configured loss (0.1 % measured 0.04 % over 82k packets) |
558562
| 2026-10-31 | Fixes drafted on the fork: #26 (F12b), #27 (F13), #28 (F14); F12a is upstream #134. Gated with temporary `nix/patches` (all of F8, F11, F12a/b, F13, F14): 884/884 unit tests; `analysis-netdev` builds in-tree (gcc, clang, i386 W=1: 0 warnings); KASAN/lockdep smoke PASS and pair lifecycle with no sanitizer report (its 7 failures are echo 5/6 on the default qdisc, see above); KCSAN pair lifecycle PASS 3 of 3. `homaLib` drops a patch with no hunks in a subset (a `util/`-only fix in the module's source) |
559-
| 2026-11-07 | Rebased onto 5cb0ec2: F8, F11, F12a and round 4 (#137-#140) landed. John on #146: `mem_cgroup_from_sk` is not in 6.17.8, the kernel `main` is on; `homa-build-matrix` tested 6.12, 6.18 and 7.x but not that one, so it missed it. Added 6.17.8 (`kernelSrc`, BTF off: its libbpf fails on current glibc). Found F15. The VM results above predate this rebase |
563+
| 2026-11-07 | Rebased onto 5cb0ec2: F8, F11, F12a and round 4 (#137-#140) landed. John on #146: `mem_cgroup_from_sk` is not in 6.17.8, the kernel `main` is on; `homa-build-matrix` tested 6.12, 6.18 and 7.x but not that one, so it missed it. Added 6.17.8 (`kernelSrc`, BTF off: its libbpf fails on current glibc). Found F15 (drafted, fork #29). #146 fixed for 6.17 and #146-#148 force-pushed; CI green. The VM results above predate this rebase |

0 commit comments

Comments
 (0)