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

google / alioth / 37276303154
39%
main: 38%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/main/pr-523-2aee599daedf7f0aa9274c6ff739ecfd470cdbee
DEFAULT BRANCH: main
Ran 05 Oct 2026 07:14AM 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

05 Oct 2026 07:10AM UTC coverage: 38.543% (+0.02%) from 38.526%
37276303154

push

github

Lencerf
refactor(mem): turn RamBus into an RCU cell of Ram snapshots

Virtio workers used to hold RamBus::lock_layout() for as long as a
device was running, so any runtime change of the guest RAM layout,
e.g. memory hot-plug, blocked forever on the write lock.

Borrowing the read-copy-update idea from Linux RCU,

- Readers call RamBus::load() to get an immutable snapshot. The read
  lock is only held while cloning the Arc.
- Writers call RamBus::update(), which copies the layout, applies the
  change and publishes the result atomically. A failed update
  publishes nothing, and Memory batches all RAM ranges of a region
  into a single update.
- Each published layout carries a generation number, so a reader can
  detect a stale snapshot with a single atomic load by comparing
  Ram::generation() with RamBus::generation().

Since ArcMemPages is reference counted, a snapshot keeps every host
mapping it refers to alive, even after the slot is removed from the
bus.

This commit fixes the deadlock, but a running virtio worker still uses
the snapshot taken when the device was activated. Follow-up commits
make workers pick up new snapshots.

Assisted-by: Antigravity:Claude-Fable-5.1
Signed-off-by: Changyuan Lyu <changyuanl@google.com>

800 of 1638 branches covered (48.84%)

Branch coverage included in aggregate %.

51 of 68 new or added lines in 5 files covered. (75.0%)

2 existing lines in 1 file now uncovered.

5831 of 15566 relevant lines covered (37.46%)

918.71 hits per line

Uncovered Changes

Lines Coverage ∆ File
14
46.72
0.94% alioth/src/mem/mem.rs
2
0.0
0.0% alioth/src/virtio/vu/backend.rs
1
0.0
0.0% alioth/src/cpu/cpu_amd64/sev.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 37276303154.1 05 Oct 2026 07:14AM UTC 130
38.54
GitHub Action Run
Source Files on build 37276303154
  • Tree
  • List 130
  • Changed 7
  • Source Changed 6
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #37276303154
  • f6e9389a on github
  • Prev Build on main (#37217771086)
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