Commit 7ec9b6a
DSWS flow: throttle deadman message-bus read off the idle-coast hot path
Root cause of the W=16 chunked-dispatch brick + wall instability (measured
2026-07-05): deadman_check does an s_sendmsg_rtn RTC read (an SQ-front-end op)
at every loop-head. With 24 WGs x 16 waves = 384 waves and only 2 tiles/chunk,
~382 idle waves spin the coast loop and hammer that message bus ~41k times per
chunk. That front-end spam (a) destabilized the coast wall -- identical STAGINSTR
work measured 0.324s vs 1.996s across two chunks -- and (b) starved the
compositor's SQC(inst) instruction fetch -> GCVM_L2 page fault -> MODE1.
Fix: throttle the RTC read to once every DEADMAN_EVERY (=64) iterations via a
per-wave counter in s71 (the high-RTC reg, unused at TRACE=0; deadman_check only
reads s70). Force-retire slack = DEADMAN_EVERY iters (negligible vs 0.5s deadline).
Result (12-chunk W=16, same config as the bricking run): all chunks complete,
wall flat at 0.325s (6x variance gone), oracle CLEAN bad=0 max_rel=0, no brick.
grow-fail=0 throughout also disproves the VGPR-starvation-livelock hypothesis.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0132aDSBLwusCJ4KzHQTnvdu1 parent e06a599 commit 7ec9b6a
1 file changed
Lines changed: 14 additions & 1 deletion
Lines changed: 14 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
517 | 517 | | |
518 | 518 | | |
519 | 519 | | |
520 | | - | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
521 | 528 | | |
522 | 529 | | |
523 | 530 | | |
524 | 531 | | |
| 532 | + | |
525 | 533 | | |
526 | 534 | | |
527 | 535 | | |
528 | 536 | | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
529 | 541 | | |
530 | 542 | | |
531 | 543 | | |
532 | 544 | | |
533 | 545 | | |
| 546 | + | |
534 | 547 | | |
535 | 548 | | |
536 | 549 | | |
| |||
0 commit comments