Skip to content

Conversation

Gelbpunkt
Copy link
Member

@Gelbpunkt Gelbpunkt commented Sep 16, 2025

This PR allows mapping of 32-bit PCI bars and initializes them on aarch64. They were already being initialized properly for x86_64 and RISC-V currently has no PCI support.

I've tested this lightly with a local rewrite of the RTL8139 driver.

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: 282a76a Previous: 40e0c6e Performance Ratio
startup_benchmark Build Time 134.33 s 136.14 s 0.99
startup_benchmark File Size 0.90 MB 0.90 MB 1.00
Startup Time - 1 core 0.92 s (±0.02 s) 0.94 s (±0.02 s) 0.98
Startup Time - 2 cores 0.91 s (±0.02 s) 0.92 s (±0.03 s) 0.99
Startup Time - 4 cores 0.93 s (±0.02 s) 0.96 s (±0.03 s) 0.97
multithreaded_benchmark Build Time 132.25 s 140.97 s 0.94
multithreaded_benchmark File Size 1.01 MB 1.01 MB 1.00
Multithreaded Pi Efficiency - 2 Threads 3.02 % (±14.48 %) 2.17 % (±10.40 %) 1.39
Multithreaded Pi Efficiency - 4 Threads 1.71 % (±8.23 %) 1.51 % (±7.26 %) 1.13
Multithreaded Pi Efficiency - 8 Threads 0.86 % (±4.14 %) 0.77 % (±3.68 %) 1.12
micro_benchmarks Build Time 164.04 s 171.42 s 0.96
micro_benchmarks File Size 1.01 MB 1.01 MB 1.00
Scheduling time - 1 thread 3.09 ticks (±14.83 ticks) 2.77 ticks (±13.29 ticks) 1.12
Scheduling time - 2 threads 1.53 ticks (±7.35 ticks) 1.75 ticks (±8.39 ticks) 0.88
Micro - Time for syscall (getpid) 0.16 ticks (±0.79 ticks) 0.12 ticks (±0.58 ticks) 1.35
Memcpy speed - (built_in) block size 4096 1358.70 MByte/s (±6521.74 MByte/s) 1816.86 MByte/s (±8720.93 MByte/s) 0.75
Memcpy speed - (built_in) block size 1048576 557.99 MByte/s (±2678.35 MByte/s) 745.11 MByte/s (±3576.55 MByte/s) 0.75
Memcpy speed - (built_in) block size 16777216 208.58 MByte/s (±1001.19 MByte/s) 219.45 MByte/s (±1053.36 MByte/s) 0.95
Memset speed - (built_in) block size 4096 1333.33 MByte/s (±6400.00 MByte/s) 1875.00 MByte/s (±9000.00 MByte/s) 0.71
Memset speed - (built_in) block size 1048576 1331.11 MByte/s (±6389.35 MByte/s) 1029.20 MByte/s (±4940.18 MByte/s) 1.29
Memset speed - (built_in) block size 16777216 916.74 MByte/s (±4400.36 MByte/s) 924.64 MByte/s (±4438.25 MByte/s) 0.99
Memcpy speed - (rust) block size 4096 1071.43 MByte/s (±5142.86 MByte/s) 1411.76 MByte/s (±6776.47 MByte/s) 0.76
Memcpy speed - (rust) block size 1048576 561.70 MByte/s (±2696.14 MByte/s) 693.90 MByte/s (±3330.73 MByte/s) 0.81
Memcpy speed - (rust) block size 16777216 221.01 MByte/s (±1060.85 MByte/s) 219.67 MByte/s (±1054.40 MByte/s) 1.01
Memset speed - (rust) block size 4096 1621.62 MByte/s (±7783.78 MByte/s) 1791.04 MByte/s (±8597.01 MByte/s) 0.91
Memset speed - (rust) block size 1048576 1043.62 MByte/s (±5009.39 MByte/s) 1105.00 MByte/s (±5304.01 MByte/s) 0.94
Memset speed - (rust) block size 16777216 933.81 MByte/s (±4482.28 MByte/s) 954.96 MByte/s (±4583.81 MByte/s) 0.98
alloc_benchmarks Build Time 159.31 s 157.27 s 1.01
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.67 %) 1.00
Allocations - Pre-fail Allocations 2.00 % (±13.86 %) 2.00 % (±13.86 %) 1
Allocations - Average Allocation time 244.33 Ticks (±1693.14 Ticks) 262.62 Ticks (±1819.84 Ticks) 0.93
Allocations - Average Allocation time (no fail) 244.33 Ticks (±1693.14 Ticks) 262.62 Ticks (±1819.84 Ticks) 0.93
Allocations - Average Deallocation time 15.96 Ticks (±110.63 Ticks) 17.05 Ticks (±118.18 Ticks) 0.94
mutex_benchmark Build Time 155.53 s 159.65 s 0.97
mutex_benchmark File Size 1.01 MB 1.01 MB 1.00
Mutex Stress Test Average Time per Iteration - 1 Threads 0.34 ns (±2.36 ns) 0.36 ns (±2.49 ns) 0.94
Mutex Stress Test Average Time per Iteration - 2 Threads 0.36 ns (±2.49 ns) 0.38 ns (±2.63 ns) 0.95

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

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.

3 participants