Fix: keep dispatch marker in producer slot state - #1411
Conversation
Move the propagation once-guard into an unused ready-state bit so late fanin wiring stays on the producer slot cache line. Keep completed fanin accounting for normal readiness while skipping early-only marker checks after disqualification.
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughDispatch propagation tracking moves from ChangesDispatch propagation and fanin wiring
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant FaninWiring
participant TaskSlotState
participant DispatchPropagation
FaninWiring->>TaskSlotState: Check propagation marker
FaninWiring->>FaninWiring: Count completed_fanin and seed early dispatch
DispatchPropagation->>TaskSlotState: Atomically claim marker
DispatchPropagation->>FaninWiring: Propagate fanin
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request refactors the task dispatch propagation logic by moving the dispatch_propagated flag from the shared PTO2TaskPayload structure to the slot-local ready_state bitmask in PTO2TaskSlotState to optimize cache line usage. It also renames early_finished to completed_fanin for clarity. The reviewer recommends restoring conservative memory ordering (acquire and acq_rel) instead of relaxed for the new has_dispatch_propagated and try_mark_dispatch_propagated methods to ensure robust synchronization for these claim guards.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
- Restore conservative acquire/acq_rel ordering for marker operations. - Align the A5 completed-fanin name with A2A3 in code, docs, and tests.
Summary
ready_statebit in the already-hot 64-byte slot state.Related Issues