Fix: prevent L2 swimlane records from crossing buffers - #1513
Conversation
Reserve each AICore record slot before ACK so an AICPU buffer rotation after FIN cannot redirect the completed task into the next buffer generation. Commit timestamps and task identity to the reserved address after FIN without reading the active head again. Capture end_time immediately after task execution and before FIN. Keep the existing ACK gate responsible only for old-buffer lifetime and host collection. Validated with the Qwen3-14B warmup-only serving workload: 860265 Prefill and 19264 Decode AICPU/AICore records matched one-to-one, with no zero start times, duplicate keys, join gaps, sequence breaks, or invalid buffer boundaries.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThe L2 swimlane recording path now separates record-slot reservation from record population. Both AICore executors reserve records before acknowledgement, capture execution end time earlier, and commit timing and task identity afterward. ChangesL2 swimlane recording
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant AICoreExecutor
participant ReserveHelper
participant AICPU
participant ExecuteTask
participant CommitHelper
AICoreExecutor->>ReserveHelper: reserve L2 swimlane record
AICoreExecutor->>AICPU: issue task ACK
AICoreExecutor->>ExecuteTask: execute task
ExecuteTask-->>AICoreExecutor: return execution result
AICoreExecutor->>AICPU: write task FIN
AICoreExecutor->>CommitHelper: commit reserved record with timing and identity
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 |
Reserve each AICore record slot before ACK so an AICPU buffer rotation after FIN cannot redirect the completed task into the next buffer generation. Commit timestamps and task identity to the reserved address after FIN without reading the active head again.
Capture end_time immediately after task execution and before FIN. Keep the existing ACK gate responsible only for old-buffer lifetime and host collection.
Validated with the Qwen3-14B warmup-only serving workload: 860265 Prefill and 19264 Decode AICPU/AICore records matched one-to-one, with no zero start times, duplicate keys, join gaps, sequence breaks, or invalid buffer boundaries.