mirror of
https://github.com/tailscale/tailscale.git
synced 2026-09-13 06:19:11 -04:00
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>