Skip to content

refactor(riscv): use volatile ref for interrupt controller accesses#2517

Merged
mkroening merged 1 commit into
hermit-os:mainfrom
cagatay-y:refactor-riscv-plic
Jul 2, 2026
Merged

refactor(riscv): use volatile ref for interrupt controller accesses#2517
mkroening merged 1 commit into
hermit-os:mainfrom
cagatay-y:refactor-riscv-plic

Conversation

@cagatay-y

Copy link
Copy Markdown
Contributor

No description provided.

@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: 650ec4c Previous: 0662a40 Performance Ratio
startup_benchmark Build Time 81.55 s 83.04 s 0.98
startup_benchmark File Size 0.80 MB 0.80 MB 1.00
Startup Time - 1 core 0.75 s (±0.02 s) 0.75 s (±0.02 s) 1.00
Startup Time - 2 cores 0.76 s (±0.02 s) 0.74 s (±0.02 s) 1.02
Startup Time - 4 cores 0.76 s (±0.02 s) 0.78 s (±0.01 s) 0.98
multithreaded_benchmark Build Time 83.20 s 82.74 s 1.01
multithreaded_benchmark File Size 0.90 MB 0.90 MB 1.00
Multithreaded Pi Efficiency - 2 Threads 87.99 % (±7.99 %) 91.74 % (±7.32 %) 0.96
Multithreaded Pi Efficiency - 4 Threads 43.87 % (±2.04 %) 44.65 % (±2.53 %) 0.98
Multithreaded Pi Efficiency - 8 Threads 25.29 % (±1.27 %) 26.02 % (±1.20 %) 0.97
micro_benchmarks Build Time 82.20 s 82.21 s 1.00
micro_benchmarks File Size 0.90 MB 0.90 MB 1.00
Scheduling time - 1 thread 66.71 ticks (±3.50 ticks) 65.82 ticks (±2.16 ticks) 1.01
Scheduling time - 2 threads 38.07 ticks (±5.99 ticks) 37.52 ticks (±5.32 ticks) 1.01
Micro - Time for syscall (getpid) 3.99 ticks (±0.51 ticks) 4.37 ticks (±0.73 ticks) 0.91
Memcpy speed - (built_in) block size 4096 82550.42 MByte/s (±57023.58 MByte/s) 79288.98 MByte/s (±54944.86 MByte/s) 1.04
Memcpy speed - (built_in) block size 1048576 30497.00 MByte/s (±24605.88 MByte/s) 30567.74 MByte/s (±24702.78 MByte/s) 1.00
Memcpy speed - (built_in) block size 16777216 26353.47 MByte/s (±21834.05 MByte/s) 26730.75 MByte/s (±22078.19 MByte/s) 0.99
Memset speed - (built_in) block size 4096 83123.34 MByte/s (±57388.12 MByte/s) 79072.12 MByte/s (±54788.56 MByte/s) 1.05
Memset speed - (built_in) block size 1048576 31240.21 MByte/s (±25031.60 MByte/s) 31278.29 MByte/s (±25096.56 MByte/s) 1.00
Memset speed - (built_in) block size 16777216 27131.60 MByte/s (±22335.32 MByte/s) 27484.84 MByte/s (±22544.95 MByte/s) 0.99
Memcpy speed - (rust) block size 4096 73670.42 MByte/s (±51373.36 MByte/s) 74239.01 MByte/s (±52000.96 MByte/s) 0.99
Memcpy speed - (rust) block size 1048576 30293.39 MByte/s (±24589.53 MByte/s) 30290.33 MByte/s (±24596.74 MByte/s) 1.00
Memcpy speed - (rust) block size 16777216 27488.67 MByte/s (±22766.51 MByte/s) 27632.30 MByte/s (±22868.89 MByte/s) 0.99
Memset speed - (rust) block size 4096 74160.12 MByte/s (±51746.71 MByte/s) 74885.16 MByte/s (±52435.23 MByte/s) 0.99
Memset speed - (rust) block size 1048576 31046.24 MByte/s (±25019.61 MByte/s) 31048.81 MByte/s (±25030.47 MByte/s) 1.00
Memset speed - (rust) block size 16777216 28270.62 MByte/s (±23248.01 MByte/s) 28405.71 MByte/s (±23340.77 MByte/s) 1.00
alloc_benchmarks Build Time 76.53 s 76.84 s 1.00
alloc_benchmarks File Size 0.88 MB 0.88 MB 1.00
Allocations - Allocation success 91.31 % 91.31 % 1
Allocations - Deallocation success 100.00 % 100.00 % 1
Allocations - Pre-fail Allocations 61.44 % 61.44 % 1
Allocations - Average Allocation time 2587.24 Ticks (±858.35 Ticks) 3826.90 Ticks (±676.75 Ticks) 0.68
Allocations - Average Allocation time (no fail) 3610.42 Ticks (±762.43 Ticks) 4775.47 Ticks (±557.94 Ticks) 0.76
Allocations - Average Deallocation time 732.61 Ticks (±203.73 Ticks) 1400.60 Ticks (±176.97 Ticks) 0.52
mutex_benchmark Build Time 79.13 s 82.48 s 0.96
mutex_benchmark File Size 0.90 MB 0.90 MB 1.00
Mutex Stress Test Average Time per Iteration - 1 Threads 12.18 ns (±0.55 ns) 12.66 ns (±0.59 ns) 0.96
Mutex Stress Test Average Time per Iteration - 2 Threads 42.50 ns (±2.48 ns) 45.12 ns (±3.10 ns) 0.94

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

@mkroening mkroening left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks! :)

Comment thread Cargo.toml Outdated
Comment thread src/arch/riscv64/kernel/interrupts.rs Outdated
Comment thread src/arch/riscv64/kernel/interrupts.rs Outdated
Comment thread src/arch/riscv64/kernel/interrupts.rs Outdated
@cagatay-y cagatay-y force-pushed the refactor-riscv-plic branch from d3ee3a9 to 650ec4c Compare July 2, 2026 14:52
@cagatay-y cagatay-y requested a review from mkroening July 2, 2026 14:53

@mkroening mkroening left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks! :)

@mkroening mkroening enabled auto-merge July 2, 2026 15:20
@mkroening mkroening added this pull request to the merge queue Jul 2, 2026
Merged via the queue into hermit-os:main with commit 51d6ad4 Jul 2, 2026
20 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