• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

google / alioth / 36648321950
38%

Build:
DEFAULT BRANCH: main
Ran 30 Sep 2026 12:07AM UTC
Jobs 1
Files 130
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Sep 2026 11:54PM UTC coverage: 37.859% (+0.1%) from 37.728%
36648321950

push

github

Lencerf
fix(virtio): fix memory ordering in split and packed virtqueues

Shared virtqueue rings in guest memory are accessed concurrently by host
worker threads and guest vCPUs. Fix the memory ordering and ring access
primitives across Queue, SplitQueue, and PackedQueue:

- In Queue::handle_desc() and Queue::handle_deferred(), place a SeqCst
  fence between push_used() and interrupt_enabled() so that publishing a
  used entry is always ordered before reading the driver's interrupt
  suppression state. Without this store-load barrier, checking
  used_event or driver DescEvent can be reordered before the used
  index/flag update, losing interrupts on asynchronous completions such
  as io_uring. In handle_desc(), the fence and the check are skipped once
  an interrupt is already pending for the batch.

- Access synchronization control words with AtomicU16::from_ptr using
  Acquire loads (avail_hdr.idx, packed desc.flag, interrupt.flag) and
  Release stores (used_hdr.idx, packed used desc.flag), and use Relaxed
  atomic loads/stores for event and flag fields paired with explicit
  fences (avail_event, used_event, ring flags, notification.flag,
  interrupt.index).

- Read and write non-atomic ring payload data (descriptors, avail_ring
  entries, and used_ring elements) with read_volatile()/write_volatile()
  instead of shared/mutable Rust references, and mark PackedQueue's
  DescEvent as #[repr(C)].

Closes: #504
Assisted-by: Antigravity:Gemini-3.8-Flash
Signed-off-by: Changyuan Lyu <changyuanl@google.com>

785 of 1596 branches covered (49.19%)

Branch coverage included in aggregate %.

49 of 50 new or added lines in 3 files covered. (98.0%)

2 existing lines in 1 file now uncovered.

5684 of 15491 relevant lines covered (36.69%)

922.33 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
98.33
0.9% alioth/src/virtio/queue/queue.rs

Coverage Regressions

Lines Coverage ∆ File
2
81.62
-0.35% alioth/src/virtio/dev/vsock/uds_vsock.rs
Jobs
ID Job ID Ran Files Coverage
1 36648321950.1 30 Sep 2026 12:07AM UTC 130
37.86
GitHub Action Run
Source Files on build 36648321950
  • Tree
  • List 130
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #36648321950
  • 9da8623c on github
  • Prev Build on main (#36457055736)
  • Next Build on main (#36653607736)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc