//dsp:modal_loop_test is the ASan lane's critical path at 74% of its budget #61

Open
opened 2026-09-05 12:31:37 +00:00 by bcox · 0 comments
Owner

After modal-cymbals sharded //patches:patches_test, the slowest target in
the ASan lane is //dsp:modal_loop_test at 665 s against a 900 s budget
(size = "large", dsp/BUILD.bazel:240) -- 74%, and unsharded.

For contrast, //patches:patches_test now runs four shards at 262 / 344 / 364 /
399 s, so its worst shard sits at 44% of its own budget. The whole ASan lane is
734 s wall.

Nothing on modal-cymbals touched dsp/modal_loop_test.cc; it simply became
the binding target once the other one was sharded. Filed so that the next
person to add a case to it knows what the headroom is, rather than finding out
from a timeout.

shard_count is the same one-line remedy that worked for the patches target,
and it needs no code movement. Worth knowing from that experience: sharding is
not free -- four ASan shards of patches_test summed to 1.53x the single-
process time, because ASan renderers contend for memory bandwidth. What it buys
is N budgets, not less work.

Found while running the sanitizer lanes for modal-cymbals.

After `modal-cymbals` sharded `//patches:patches_test`, the slowest target in the ASan lane is `//dsp:modal_loop_test` at **665 s against a 900 s budget** (`size = "large"`, `dsp/BUILD.bazel:240`) -- 74%, and unsharded. For contrast, `//patches:patches_test` now runs four shards at 262 / 344 / 364 / 399 s, so its worst shard sits at 44% of its own budget. The whole ASan lane is 734 s wall. Nothing on `modal-cymbals` touched `dsp/modal_loop_test.cc`; it simply became the binding target once the other one was sharded. Filed so that the next person to add a case to it knows what the headroom is, rather than finding out from a timeout. `shard_count` is the same one-line remedy that worked for the patches target, and it needs no code movement. Worth knowing from that experience: sharding is not free -- four ASan shards of `patches_test` summed to 1.53x the single- process time, because ASan renderers contend for memory bandwidth. What it buys is N budgets, not less work. Found while running the sanitizer lanes for `modal-cymbals`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
bcox/tymbal#61
No description provided.