Skip to content

Seed entropy using arm rng#2528

Open
sbutz wants to merge 1 commit into
hermit-os:mainfrom
sbutz:sb/seed_arm_rng
Open

Seed entropy using arm rng#2528
sbutz wants to merge 1 commit into
hermit-os:mainfrom
sbutz:sb/seed_arm_rng

Conversation

@sbutz

@sbutz sbutz commented Jul 6, 2026

Copy link
Copy Markdown

Implement missing entropy seeding on ARM.
ArmRng Implentation
ARM Doc

For RISC-V we could leverage the optional Zkr extension.
RISC-V Doc
Changes follow in separate PR.

@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: 414125f Previous: b6c3a14 Performance Ratio
startup_benchmark Build Time 82.01 s 81.96 s 1.00
startup_benchmark File Size 0.80 MB 0.80 MB 1.00
Startup Time - 1 core 0.74 s (±0.02 s) 0.75 s (±0.01 s) 0.99
Startup Time - 2 cores 0.76 s (±0.02 s) 0.75 s (±0.02 s) 1.01
Startup Time - 4 cores 0.77 s (±0.02 s) 0.76 s (±0.02 s) 1.01
multithreaded_benchmark Build Time 84.22 s 84.33 s 1.00
multithreaded_benchmark File Size 0.89 MB 0.89 MB 1.00
Multithreaded Pi Efficiency - 2 Threads 91.07 % (±5.77 %) 88.20 % (±5.36 %) 1.03
Multithreaded Pi Efficiency - 4 Threads 44.36 % (±3.05 %) 43.39 % (±1.96 %) 1.02
Multithreaded Pi Efficiency - 8 Threads 26.21 % (±1.58 %) 25.49 % (±1.09 %) 1.03
micro_benchmarks Build Time 81.01 s 81.04 s 1.00
micro_benchmarks File Size 0.90 MB 0.90 MB 1.00
Scheduling time - 1 thread 67.27 ticks (±2.53 ticks) 67.03 ticks (±2.97 ticks) 1.00
Scheduling time - 2 threads 36.17 ticks (±3.66 ticks) 37.08 ticks (±4.84 ticks) 0.98
Micro - Time for syscall (getpid) 3.68 ticks (±0.52 ticks) 3.47 ticks (±0.55 ticks) 1.06
Memcpy speed - (built_in) block size 4096 84145.01 MByte/s (±58140.29 MByte/s) 81447.84 MByte/s (±56310.31 MByte/s) 1.03
Memcpy speed - (built_in) block size 1048576 30497.98 MByte/s (±24617.39 MByte/s) 30576.31 MByte/s (±24707.36 MByte/s) 1.00
Memcpy speed - (built_in) block size 16777216 27347.19 MByte/s (±22574.37 MByte/s) 26992.43 MByte/s (±22331.43 MByte/s) 1.01
Memset speed - (built_in) block size 4096 84333.15 MByte/s (±58252.85 MByte/s) 82020.76 MByte/s (±56679.89 MByte/s) 1.03
Memset speed - (built_in) block size 1048576 31243.48 MByte/s (±25058.23 MByte/s) 31328.21 MByte/s (±25139.16 MByte/s) 1.00
Memset speed - (built_in) block size 16777216 28126.12 MByte/s (±23060.79 MByte/s) 27771.02 MByte/s (±22825.94 MByte/s) 1.01
Memcpy speed - (rust) block size 4096 73970.60 MByte/s (±51613.02 MByte/s) 70718.16 MByte/s (±49419.36 MByte/s) 1.05
Memcpy speed - (rust) block size 1048576 30100.60 MByte/s (±24423.65 MByte/s) 30268.66 MByte/s (±24574.32 MByte/s) 0.99
Memcpy speed - (rust) block size 16777216 27022.12 MByte/s (±22311.33 MByte/s) 27022.23 MByte/s (±22328.08 MByte/s) 1.00
Memset speed - (rust) block size 4096 73754.14 MByte/s (±51486.83 MByte/s) 71185.00 MByte/s (±49772.16 MByte/s) 1.04
Memset speed - (rust) block size 1048576 30860.23 MByte/s (±24870.67 MByte/s) 30998.39 MByte/s (±24996.36 MByte/s) 1.00
Memset speed - (rust) block size 16777216 27807.83 MByte/s (±22804.71 MByte/s) 27793.87 MByte/s (±22814.36 MByte/s) 1.00
alloc_benchmarks Build Time 75.87 s 76.18 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 5464.43 Ticks (±132.35 Ticks) 5284.44 Ticks (±98.12 Ticks) 1.03
Allocations - Average Allocation time (no fail) 6236.54 Ticks (±133.87 Ticks) 5965.76 Ticks (±120.67 Ticks) 1.05
Allocations - Average Deallocation time 1760.42 Ticks (±286.05 Ticks) 1049.58 Ticks (±199.94 Ticks) 1.68
mutex_benchmark Build Time 76.83 s 75.24 s 1.02
mutex_benchmark File Size 0.90 MB 0.90 MB 1.00
Mutex Stress Test Average Time per Iteration - 1 Threads 12.14 ns (±0.40 ns) 12.06 ns (±0.37 ns) 1.01
Mutex Stress Test Average Time per Iteration - 2 Threads 41.34 ns (±2.11 ns) 39.88 ns (±2.52 ns) 1.04

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

Tested successfully on qemu with `-cpu neoverse-v1`.
@sbutz sbutz force-pushed the sb/seed_arm_rng branch from e279038 to 414125f Compare July 6, 2026 11:50
@mkroening mkroening self-assigned this Jul 6, 2026
@sbutz sbutz marked this pull request as ready for review July 6, 2026 12:46
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