Skip to content

Conversation

cagatay-y
Copy link
Contributor

It is possible for PCI devices to offer multiple capabilities of the same type that are offered through different kinds of BARs (e.g. IO or memory), so it is possible to encounter an incompatible capability but still function with an alternative.

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

Benchmark Current: 7aae972 Previous: c6484a7 Performance Ratio
startup_benchmark Build Time 116.04 s 109.12 s 1.06
startup_benchmark File Size 0.90 MB 0.90 MB 1.00
Startup Time - 1 core 0.93 s (±0.04 s) 0.88 s (±0.02 s) 1.06
Startup Time - 2 cores 0.93 s (±0.03 s) 0.87 s (±0.02 s) 1.07
Startup Time - 4 cores 0.96 s (±0.03 s) 0.87 s (±0.03 s) 1.10
multithreaded_benchmark Build Time 117.31 s 104.93 s 1.12
multithreaded_benchmark File Size 1.01 MB 1.01 MB 1.00
Multithreaded Pi Efficiency - 2 Threads 3.62 % (±17.39 %) 3.66 % (±17.59 %) 0.99
Multithreaded Pi Efficiency - 4 Threads 1.76 % (±8.43 %) 1.91 % (±9.18 %) 0.92
Multithreaded Pi Efficiency - 8 Threads 0.98 % (±4.71 %) 1.02 % (±4.90 %) 0.96
micro_benchmarks Build Time 117.45 s 102.53 s 1.15
micro_benchmarks File Size 1.01 MB 1.01 MB 1.00
Scheduling time - 1 thread 2.99 ticks (±14.35 ticks) 2.54 ticks (±12.22 ticks) 1.17
Scheduling time - 2 threads 1.50 ticks (±7.22 ticks) 1.29 ticks (±6.17 ticks) 1.17
Micro - Time for syscall (getpid) 0.16 ticks (±0.78 ticks) 0.11 ticks (±0.53 ticks) 1.47
Memcpy speed - (built_in) block size 4096 1795.98 MByte/s (±8620.69 MByte/s) 1662.23 MByte/s (±7978.72 MByte/s) 1.08
Memcpy speed - (built_in) block size 1048576 718.89 MByte/s (±3450.69 MByte/s) 802.31 MByte/s (±3851.09 MByte/s) 0.90
Memcpy speed - (built_in) block size 16777216 215.37 MByte/s (±1033.76 MByte/s) 231.25 MByte/s (±1110.01 MByte/s) 0.93
Memset speed - (built_in) block size 4096 1875.00 MByte/s (±9000.00 MByte/s) 1875.00 MByte/s (±9000.00 MByte/s) 1
Memset speed - (built_in) block size 1048576 987.34 MByte/s (±4739.22 MByte/s) 1009.80 MByte/s (±4847.02 MByte/s) 0.98
Memset speed - (built_in) block size 16777216 947.68 MByte/s (±4548.87 MByte/s) 995.24 MByte/s (±4777.13 MByte/s) 0.95
Memcpy speed - (rust) block size 4096 1411.76 MByte/s (±6776.47 MByte/s) 1463.41 MByte/s (±7024.39 MByte/s) 0.96
Memcpy speed - (rust) block size 1048576 756.37 MByte/s (±3630.59 MByte/s) 795.04 MByte/s (±3816.19 MByte/s) 0.95
Memcpy speed - (rust) block size 16777216 218.91 MByte/s (±1050.76 MByte/s) 236.47 MByte/s (±1135.06 MByte/s) 0.93
Memset speed - (rust) block size 4096 1411.76 MByte/s (±6776.47 MByte/s) 1846.15 MByte/s (±8861.54 MByte/s) 0.76
Memset speed - (rust) block size 1048576 968.41 MByte/s (±4648.35 MByte/s) 1016.88 MByte/s (±4881.03 MByte/s) 0.95
Memset speed - (rust) block size 16777216 937.18 MByte/s (±4498.46 MByte/s) 993.35 MByte/s (±4768.08 MByte/s) 0.94
alloc_benchmarks Build Time 110.00 s 100.75 s 1.09
alloc_benchmarks File Size 0.97 MB 0.97 MB 1.00
Allocations - Allocation success 2.00 % (±13.86 %) 2.00 % (±13.86 %) 1
Allocations - Deallocation success 1.39 % (±9.66 %) 1.40 % (±9.73 %) 0.99
Allocations - Pre-fail Allocations 2.00 % (±13.86 %) 2.00 % (±13.86 %) 1
Allocations - Average Allocation time 333.78 Ticks (±2313.00 Ticks) 229.53 Ticks (±1590.58 Ticks) 1.45
Allocations - Average Allocation time (no fail) 333.78 Ticks (±2313.00 Ticks) 229.53 Ticks (±1590.58 Ticks) 1.45
Allocations - Average Deallocation time 24.11 Ticks (±167.08 Ticks) 13.15 Ticks (±91.10 Ticks) 1.83
mutex_benchmark Build Time 112.00 s 101.46 s 1.10
mutex_benchmark File Size 1.01 MB 1.01 MB 1.00
Mutex Stress Test Average Time per Iteration - 1 Threads 0.28 ns (±1.94 ns) 0.24 ns (±1.66 ns) 1.17
Mutex Stress Test Average Time per Iteration - 2 Threads 0.32 ns (±2.22 ns) 0.26 ns (±1.80 ns) 1.23

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

@mkroening mkroening self-requested a review September 29, 2025 01:17
@mkroening mkroening self-assigned this Sep 29, 2025
It is possible for PCI devices to offer multiple capabilities of the
same type that are offered through different kinds of BARs (e.g. IO or
memory), so it is possible to encounter an incompatible capability but
still function with an alternative.
Copy link
Member

@mkroening mkroening left a comment

Choose a reason for hiding this comment

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

Thanks! :)

@mkroening mkroening added this pull request to the merge queue Oct 16, 2025
Merged via the queue into hermit-os:main with commit 9a6f950 Oct 16, 2025
17 checks passed
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