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

xapi-project / xen-api / 32684403550
79%
master: 79%

Build:
Build:
LAST BUILD BRANCH: dnt/pirq
DEFAULT BRANCH: master
Ran 24 Aug 2026 02:51AM UTC
Jobs 1
Files 36
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

24 Aug 2026 02:50AM UTC coverage: 78.996%. Remained the same
32684403550

push

github

web-flow
xenopsd/xc: sync domain.ml with Xen 4.21's Xenctrl ABI additions (#7197)

`ocaml/xenopsd/xc/domain.ml` mirrors `Xenctrl.domain_create_flag` and
`Xenctrl.domctl_create_config`, both of which require listing every
constructor/field of the real type. Xen 4.21 added items to these types
that were missing from `domain.ml`, and in one case the mirror being
incomplete masked a second issue: the corresponding flag was never
actually being set anywhere.

- `CDF_TRAP_UNMAPPED_ACCESSES` on `domain_create_flag` (currently
Arm-only):
      - xen.git 980aff4e8fcd "xen/arm: Add way to disable traps on
        accesses to unmapped addresses" (Edgar E. Iglesias, 2025-06-16)
      - xen.git ab02a120c0a5 "tools/ocaml: Update bindings for
        CDF_TRAP_UNMAPPED_ACCESSES" (same day)
- pre-existing altp2m.nr field alongside altp2m_opts:
      - xen.git 5699554de9a9 "tools/ocaml: Add altp2m_count parameter"
        (Petr Beneš, 2025-08-25)

Both have been part of the public Xen ABI since before the 4.21.0-rc1
tag, so any build compiling xapi against Xen 4.21's actual OCaml Xenctrl
bindings fails at this type check.

Once the mirror type-checked, I could actually run an Arm domain through
xenopsd against a real Xen 4.21, which showed a second bug: `domain.ml`
never sets `CDF_TRAP_UNMAPPED_ACCESSES` in the flags list that `make`
passes to `Xenctrl.domain_create`, even though the type now lists it.
Without it, Xen traps guest accesses to unmapped addresses instead of
letting the guest handle them directly. On Arm this fires very early in
the kernel's own boot code, before it has installed its own exception
vector table, so the resulting injected exception lands at a fixed
vector offset off a zero base, which itself is unmapped, and the guest
immediately double-faults into an infinite loop.

libxl already sets this flag unconditionally for Arm domains
(`libxl__arch_domain_prepare_config()` in
`tools/libs/light/libxl_arm.c`), which is why a domain built with `xl
create` for t... (continued)

3667 of 4642 relevant lines covered (79.0%)

0.79 hits per line

Jobs
ID Job ID Ran Files Coverage
1 python3.11 - 32684403550.1 24 Aug 2026 02:51AM UTC 36
79.0
GitHub Action Run
Source Files on build 32684403550
  • Tree
  • List 36
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32684403550
  • 33a55da9 on github
  • Prev Build on gh-readonly-queue/master/pr-7226-5af66e617b2e4b2412eb8e9fc30fa98e4d34ca85 (#32438314113)
  • Next Build on gh-readonly-queue/master/pr-7197-e2ee48d6883e0b98c4d219d3f0778a10c6655607 (#32684403363)
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