You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This PR adds loom coverage for the runtime io_uring waker, which coordinates producer-side publishes and out-of-band wakes with loop-side eventfd/futex parking through a packed atomic state word. The tests model the production sequence and wait-bit state with loom atomics, replace kernel wake surfaces with loom-visible futex and eventfd models, and use a minimal queued-request model so missing release/acquire synchronization around request publication can be caught.
The models cover the main wakeup paths: publish publishing to pending, wake publishing to clear_wait, armed publish/wake races through the eventfd path, fully-idle futex parking, eventfd wake deduplication, sticky unarmed wakes, final-handle drop wakeups, sequence wraparound, and repeated loop drain cycles. They also include deterministic generated producer programs for producer-only, eventfd-loop, and futex-loop histories.
The goal is to make the waker's concurrency contract explicit: every published submission must be observed exactly once, pure wakes must not advance the submission sequence, wait targets must be cleared after wakeup, unarmed wakes must not queue eventfd readiness, eventfd readiness must be coalesced and acknowledged correctly, and queue writes made before publish/wake must be visible after the loop observes pending or resumes through clear_wait.
❌ Patch coverage is 98.11321% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 95.82%. Comparing base (c32f535) to head (db06010). ⚠️ Report is 2 commits behind head on main.
❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds loom coverage for the runtime io_uring waker, which coordinates producer-side publishes and out-of-band wakes with loop-side
eventfd/futexparking through a packed atomic state word. The tests model the production sequence and wait-bit state with loom atomics, replace kernel wake surfaces with loom-visiblefutexandeventfdmodels, and use a minimal queued-request model so missing release/acquire synchronization around request publication can be caught.The models cover the main wakeup paths:
publishpublishing topending,wakepublishing toclear_wait, armedpublish/wakeraces through theeventfdpath, fully-idlefutexparking,eventfdwake deduplication, sticky unarmed wakes, final-handle drop wakeups, sequence wraparound, and repeated loop drain cycles. They also include deterministic generated producer programs for producer-only,eventfd-loop, andfutex-loop histories.The goal is to make the waker's concurrency contract explicit: every published submission must be observed exactly once, pure wakes must not advance the submission sequence, wait targets must be cleared after wakeup, unarmed wakes must not queue
eventfdreadiness,eventfdreadiness must be coalesced and acknowledged correctly, and queue writes made beforepublish/wakemust be visible after the loop observespendingor resumes throughclear_wait.Depends on #3692.