Skip to content

Conversation

@cagatay-y
Copy link
Contributor

cloud-hypervisor only supports MSI-X interrupts for PCI devices, so support for MSI-X is needed to support running on it. Additionally, MSI-X can allow us to set separate interrupt handlers for the configuration change interrupts and queue updates (even per-queue handlers once we have multiple queues) in the future.

@mkroening mkroening self-assigned this Dec 1, 2025
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark Results

Details
Benchmark Current: d8017b5 Previous: e645fec Performance Ratio
startup_benchmark Build Time 99.34 s 99.81 s 1.00
startup_benchmark File Size 0.86 MB 0.86 MB 1.00
Startup Time - 1 core 0.93 s (±0.04 s) 0.93 s (±0.04 s) 1.00
Startup Time - 2 cores 0.93 s (±0.03 s) 0.96 s (±0.03 s) 0.97
Startup Time - 4 cores 0.95 s (±0.03 s) 0.94 s (±0.03 s) 1.01
multithreaded_benchmark Build Time 96.73 s 102.13 s 0.95
multithreaded_benchmark File Size 0.97 MB 0.97 MB 1.00
Multithreaded Pi Efficiency - 2 Threads 87.54 % (±8.46 %) 88.34 % (±8.04 %) 0.99
Multithreaded Pi Efficiency - 4 Threads 43.35 % (±3.49 %) 44.56 % (±3.57 %) 0.97
Multithreaded Pi Efficiency - 8 Threads 25.31 % (±1.71 %) 25.91 % (±1.86 %) 0.98
micro_benchmarks Build Time 94.93 s 100.32 s 0.95
micro_benchmarks File Size 0.97 MB 0.97 MB 1.00
Scheduling time - 1 thread 67.50 ticks (±4.49 ticks) 68.60 ticks (±3.48 ticks) 0.98
Scheduling time - 2 threads 37.94 ticks (±4.94 ticks) 40.01 ticks (±5.48 ticks) 0.95
Micro - Time for syscall (getpid) 3.29 ticks (±0.50 ticks) 3.30 ticks (±0.47 ticks) 1.00
Memcpy speed - (built_in) block size 4096 68074.93 MByte/s (±48400.28 MByte/s) 66423.24 MByte/s (±47211.72 MByte/s) 1.02
Memcpy speed - (built_in) block size 1048576 29556.54 MByte/s (±24222.31 MByte/s) 29366.89 MByte/s (±24195.28 MByte/s) 1.01
Memcpy speed - (built_in) block size 16777216 28617.93 MByte/s (±23821.18 MByte/s) 24865.20 MByte/s (±20794.46 MByte/s) 1.15
Memset speed - (built_in) block size 4096 68766.22 MByte/s (±48904.64 MByte/s) 66997.01 MByte/s (±47611.29 MByte/s) 1.03
Memset speed - (built_in) block size 1048576 30329.44 MByte/s (±24663.19 MByte/s) 30137.28 MByte/s (±24628.24 MByte/s) 1.01
Memset speed - (built_in) block size 16777216 29403.88 MByte/s (±24271.54 MByte/s) 25636.38 MByte/s (±21296.15 MByte/s) 1.15
Memcpy speed - (rust) block size 4096 63083.79 MByte/s (±46152.60 MByte/s) 60802.24 MByte/s (±44540.11 MByte/s) 1.04
Memcpy speed - (rust) block size 1048576 29625.75 MByte/s (±24268.11 MByte/s) 29548.98 MByte/s (±24182.47 MByte/s) 1.00
Memcpy speed - (rust) block size 16777216 28647.73 MByte/s (±23846.78 MByte/s) 25616.27 MByte/s (±21548.07 MByte/s) 1.12
Memset speed - (rust) block size 4096 64034.43 MByte/s (±46801.57 MByte/s) 61752.87 MByte/s (±45214.15 MByte/s) 1.04
Memset speed - (rust) block size 1048576 30368.04 MByte/s (±24690.85 MByte/s) 30310.81 MByte/s (±24622.20 MByte/s) 1.00
Memset speed - (rust) block size 16777216 29422.31 MByte/s (±24285.72 MByte/s) 26370.24 MByte/s (±22014.77 MByte/s) 1.12
alloc_benchmarks Build Time 93.52 s 94.69 s 0.99
alloc_benchmarks File Size 0.93 MB 0.93 MB 1.00
Allocations - Allocation success 100.00 % 100.00 % 1
Allocations - Deallocation success 100.00 % 100.00 % 1
Allocations - Pre-fail Allocations 100.00 % 100.00 % 1
Allocations - Average Allocation time 10022.21 Ticks (±133.11 Ticks) 9799.65 Ticks (±144.68 Ticks) 1.02
Allocations - Average Allocation time (no fail) 10022.21 Ticks (±133.11 Ticks) 9799.65 Ticks (±144.68 Ticks) 1.02
Allocations - Average Deallocation time 988.99 Ticks (±669.59 Ticks) 919.79 Ticks (±324.70 Ticks) 1.08
mutex_benchmark Build Time 93.20 s 93.42 s 1.00
mutex_benchmark File Size 0.97 MB 0.97 MB 1.00
Mutex Stress Test Average Time per Iteration - 1 Threads 12.68 ns (±0.68 ns) 12.86 ns (±0.77 ns) 0.99
Mutex Stress Test Average Time per Iteration - 2 Threads 13.14 ns (±1.06 ns) 13.22 ns (±0.90 ns) 0.99

This comment was automatically generated by workflow using github-action-benchmark.

@cagatay-y cagatay-y force-pushed the cloud-hypervisor branch 2 times, most recently from 1bcd51c to 2f3ab43 Compare January 28, 2026 17:15
@cagatay-y cagatay-y closed this Jan 28, 2026
@cagatay-y cagatay-y reopened this Jan 28, 2026
@cagatay-y cagatay-y force-pushed the cloud-hypervisor branch 4 times, most recently from 4ffd61a to 844587c Compare January 29, 2026 16:11
cloud-hypervisor only supports MSI-X interrupts for PCI devices, so
support for MSI-X is needed to support running on it. Additionally,
MSI-X can allow us to set separate interrupt handlers for the
configuration change interrupts and queue updates (even per-queue
handlers once we have multiple queues) in the future.

MSI-X is not working correctly or at all on all platforms, so it is used
as a fallback.
@cagatay-y cagatay-y marked this pull request as ready for review January 29, 2026 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants