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

xapi-project / xen-api / 16720676649
80%

Build:
DEFAULT BRANCH: master
Ran 04 Aug 2025 10:31AM UTC
Jobs 1
Files 0
Run time –
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

pending completion
16720676649

push

github

web-flow
CA-414627: increase polling duration for tapdisk (#6611)

Polling mode is a performance optimization in tapdisk, where it would
busy poll the PV ring for the next request, instead of going to sleep
and waiting for an event channel to wake it up when the next request
arrives. When the guest supplies us with a steady sequence of IO
requests this is quicker (it avoids a lot of syscalls), at the expense
of consuming more Dom0 CPU.
Once polling mode is entered if there are no requests for
polling-duration microseconds, then polling mode is exited.

The wakeup granularity is 4ms on the 4.19 kernel (which also matches
CONFIG_HZ=250).
The default polling duration is 1ms, but we may not be able to reliably
handle such low timeouts.
On newer kernels we seem to hit the 1ms polling duration timeout all the
time, which results in tapdisk entering and exiting polling mode very
often. This is in fact a lot slower than just staying in event mode, or
permanently staying in polling mode when measured with a Phoronix SQLite
benchmark.

Testing showed that a 6ms value results in good benchmark results (~40%
faster than the default event based), and a 3ms value in bad benchmark
results (50% slower than event based).

Increase the default polling duration to be a multiple of the wakeup
granularity on 4.19, which should work with both 4.19 kernels and newer.

Eventually we should measure what is the optimal value where the
overhead of entering/exiting polling mode is no longer greater than
staying in event mode. (This is similar to how entering and exiting C
modes need to take into account enter and latencies, except in this case
those latencies are not known).
Jobs
ID Job ID Ran Files Coverage
1 python3.11 - 16720676649.1 04 Aug 2025 10:31AM UTC 34
80.35
GitHub Action Run
Source Files on build 16720676649
Detailed source file information is not available for this build.
  • Back to Repo
  • Github Actions Build #16720676649
  • ebeb7178 on github
  • Prev Build on master (#16713647101)
  • Next Build on master (#16740077888)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc