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

google / alioth / 37579315330
38%

Build:
DEFAULT BRANCH: main
Ran 07 Oct 2026 06:04AM 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

07 Oct 2026 05:58AM UTC coverage: 39.652% (+0.6%) from 39.088%
37579315330

push

github

Lencerf
feat(vfio-user): implement VFIO_USER_DEVICE_GET_REGION_IO_FDS

Ask the server which sub-regions of a BAR it wants to watch with a file
descriptor, and register them as ioeventfds, so that a doorbell write no
longer travels through a VM exit and a REGION_WRITE round trip.

Device gains get_region_notifiers(), defaulting to none: kernel VFIO has
no equivalent, VFIO_DEVICE_IOEVENTFD goes the other way round and hands
an eventfd to the kernel so that it writes a fixed value to the device.
VfioPciDev::new() now takes an optional notifier registry, shared by the
BAR callbacks, which register the notifiers once the guest programs a
BAR address, mirroring what virtio-pci does for its queue notifiers.

Only VFIO_USER_IO_FD_TYPE_IOEVENTFD is honored. An ioregionfd needs a
KVM feature that is not upstream, and a shadow ioeventfd additionally
needs KVM to store the written value in a shared buffer, which upstream
cannot do either; libvfio-user documents clients as free to ignore it.
Sub-regions with KVM_IOEVENTFD_FLAG_PIO are dropped as well, since
NotifierRegistry cannot express port IO, as are sub-regions reaching
past the region, which the protocol makes the client's job to check.

Note the sub-region layout follows libvfio-user, which sends 48-byte
entries carrying the shadow fields whatever the type. The protocol
documentation describes 40-byte entries, predating shadow ioeventfds,
and computes the entry stride from an argsz that includes the message
header, which no implementation does.

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

838 of 1670 branches covered (50.18%)

Branch coverage included in aggregate %.

148 of 182 new or added lines in 5 files covered. (81.32%)

141 existing lines in 5 files now uncovered.

6042 of 15681 relevant lines covered (38.53%)

912.72 hits per line

Uncovered Changes

Lines Coverage ∆ File
18
0.0
0.0% alioth/src/vm/vm.rs
6
80.47
1.88% alioth/src/vfio/user/conn.rs
5
89.82
0.26% alioth/src/vfio/pci.rs
3
28.24
-0.66% alioth/src/vfio/device.rs
2
93.63
-0.04% alioth/src/vfio/user/device.rs

Coverage Regressions

Lines Coverage ∆ File
83
0.0
0.0% alioth/src/hv/kvm/vm/vm.rs
54
0.0
0.0% alioth/src/hv/hvf/vm.rs
2
81.51
-0.35% alioth/src/virtio/dev/vsock/uds_vsock.rs
1
99.0
0.01% alioth/src/virtio/pci.rs
1
0.0
0.0% alioth/src/vm/vm.rs
Jobs
ID Job ID Ran Files Coverage
1 37579315330.1 07 Oct 2026 06:04AM UTC 130
39.65
GitHub Action Run
Source Files on build 37579315330
  • Tree
  • List 130
  • Changed 13
  • Source Changed 11
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #37579315330
  • b3d31763 on github
  • Prev Build on main (#37285254877)
  • Next Build on main (#38102977701)
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