tstest/membudget: add live-heap budget regression tests
Static size checks (iossize) catch binary dirty-page growth but nothing covered runtime heap cost, which is what actually consumes the iOS Network Extension's 50 MiB jetsam budget. Bring up a tsnet backend (with the full condregister feature set, matching shipping clients) against an in-process testcontrol server and assert live post-GC heap budgets for (a) backend startup with zero peers and (b) marginal cost per netmap peer. The startup test measures 1.3 MiB today and fails loudly on the conn25 flow-table pre-allocation regression (17 MiB) that jetsam-killed the iOS extension on large tailnets. Budgets are deliberately generous (6-12x current measurements) to stay flake-free while still catching the multi-MiB regressions that matter for mobile. A new debugknob enables us to constrain the GSO/GRO batch size to 1 for these tests so as to avoid the memory allocation associated with those buffers, which are a known issue with their own work stream. Updates tailscale/corp#46408 Updates tailscale/corp#18514 Signed-off-by: James Tucker <james@tailscale.com>
J
James Tucker committed
0d66cde14f699b9de73d60956b532e78a10535db
Parent: 2d98e75
Committed by James Tucker <jftucker@gmail.com>
on 8/14/2026, 11:45:04 PM