Skip to content

feat(riscv64) Support multiple mmio devices - #2613

Open
sbutz wants to merge 2 commits into
hermit-os:mainfrom
sbutz:sb/riscv_multiple_mmio_devices
Open

feat(riscv64) Support multiple mmio devices#2613
sbutz wants to merge 2 commits into
hermit-os:mainfrom
sbutz:sb/riscv_multiple_mmio_devices

Conversation

@sbutz

@sbutz sbutz commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

While there remove unsafe code to a minimum.

Will conflict with #2547.

@sbutz
sbutz force-pushed the sb/riscv_multiple_mmio_devices branch from d0f890d to 0d3c76c Compare August 8, 2026 20:02

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

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: ba7ce02 Previous: 2e23902 Performance Ratio
startup_benchmark Build Time 234.96 s 80.34 s 2.92
startup_benchmark File Size 0.78 MB 0.80 MB 0.98
Startup Time - 1 core 2.31 s (±0.23 s) 0.75 s (±0.02 s) 3.10
Startup Time - 2 cores 2.30 s (±0.23 s) 0.74 s (±0.02 s) 3.13
Startup Time - 4 cores 2.40 s (±0.24 s) 0.74 s (±0.02 s) 3.23
multithreaded_benchmark Build Time 231.34 s 82.11 s 2.82
multithreaded_benchmark File Size 0.88 MB 0.86 MB 1.03
Multithreaded Pi Efficiency - 2 Threads 85.35 % (±16.35 %) 85.89 % (±6.61 %) 0.99
Multithreaded Pi Efficiency - 4 Threads 56.86 % (±10.08 %) 43.43 % (±2.56 %) 1.31
Multithreaded Pi Efficiency - 8 Threads 34.63 % (±7.08 %) 25.76 % (±1.53 %) 1.34
micro_benchmarks Build Time 205.66 s 80.40 s 2.56
micro_benchmarks File Size 0.89 MB 0.86 MB 1.03
Scheduling time - 1 thread 190.06 ticks (±32.12 ticks) 62.65 ticks (±4.06 ticks) 3.03
Scheduling time - 2 threads 111.46 ticks (±18.76 ticks) 34.08 ticks (±4.10 ticks) 3.27
Micro - Time for syscall (getpid) 10.74 ticks (±4.90 ticks) 3.45 ticks (±0.58 ticks) 3.11
Memcpy speed - (built_in) block size 4096 52255.95 MByte/s (±38331.14 MByte/s) 82448.38 MByte/s (±56997.13 MByte/s) 0.63
Memcpy speed - (built_in) block size 1048576 14827.05 MByte/s (±12849.41 MByte/s) 30585.98 MByte/s (±24707.84 MByte/s) 0.48
Memcpy speed - (built_in) block size 16777216 13440.09 MByte/s (±11220.85 MByte/s) 26340.06 MByte/s (±21720.96 MByte/s) 0.51
Memset speed - (built_in) block size 4096 52815.73 MByte/s (±38705.87 MByte/s) 82292.76 MByte/s (±56891.50 MByte/s) 0.64
Memset speed - (built_in) block size 1048576 15203.88 MByte/s (±13042.65 MByte/s) 31323.85 MByte/s (±25145.86 MByte/s) 0.49
Memset speed - (built_in) block size 16777216 13747.19 MByte/s (±11379.10 MByte/s) 27104.68 MByte/s (±22209.94 MByte/s) 0.51
Memcpy speed - (rust) block size 4096 51337.88 MByte/s (±36849.33 MByte/s) 74097.96 MByte/s (±51811.44 MByte/s) 0.69
Memcpy speed - (rust) block size 1048576 14793.19 MByte/s (±12483.51 MByte/s) 30361.60 MByte/s (±24602.37 MByte/s) 0.49
Memcpy speed - (rust) block size 16777216 13751.75 MByte/s (±11451.53 MByte/s) 27625.34 MByte/s (±22806.88 MByte/s) 0.50
Memset speed - (rust) block size 4096 51624.87 MByte/s (±37043.25 MByte/s) 74373.47 MByte/s (±51976.48 MByte/s) 0.69
Memset speed - (rust) block size 1048576 15176.92 MByte/s (±12691.75 MByte/s) 31110.89 MByte/s (±25033.24 MByte/s) 0.49
Memset speed - (rust) block size 16777216 14156.01 MByte/s (±11705.93 MByte/s) 28386.93 MByte/s (±23265.03 MByte/s) 0.50
alloc_benchmarks Build Time 199.03 s 74.76 s 2.66
alloc_benchmarks File Size 0.86 MB 0.87 MB 0.98
Allocations - Allocation success 91.35 % 91.31 % 1.00
Allocations - Deallocation success 100.00 % 100.00 % 1
Allocations - Pre-fail Allocations 61.55 % 61.44 % 1.00
Allocations - Average Allocation time 16418.61 Ticks (±1048.06 Ticks) 5860.58 Ticks (±98.43 Ticks) 2.80
Allocations - Average Allocation time (no fail) 17149.19 Ticks (±1404.10 Ticks) 6554.81 Ticks (±92.86 Ticks) 2.62
Allocations - Average Deallocation time 3634.59 Ticks (±1153.39 Ticks) 1805.01 Ticks (±250.35 Ticks) 2.01
mutex_benchmark Build Time 198.78 s 79.82 s 2.49
mutex_benchmark File Size 0.89 MB 0.86 MB 1.03
Mutex Stress Test Average Time per Iteration - 1 Threads 32.26 ns (±5.15 ns) 12.10 ns (±0.41 ns) 2.67
Mutex Stress Test Average Time per Iteration - 2 Threads 30.58 ns (±6.68 ns) 40.26 ns (±1.68 ns) 0.76

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

@sbutz
sbutz force-pushed the sb/riscv_multiple_mmio_devices branch from 0d3c76c to d6cb22f Compare August 12, 2026 19:35
@sbutz
sbutz force-pushed the sb/riscv_multiple_mmio_devices branch from d6cb22f to ba7ce02 Compare August 13, 2026 17:59
@sbutz
sbutz marked this pull request as ready for review August 13, 2026 18:52
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.

1 participant