Skip to content

feat: don't use explicit load info from loader#2370

Merged
mkroening merged 16 commits intomainfrom
rm-load_info
Apr 12, 2026
Merged

feat: don't use explicit load info from loader#2370
mkroening merged 16 commits intomainfrom
rm-load_info

Conversation

@mkroening
Copy link
Copy Markdown
Member

@mkroening mkroening commented Apr 11, 2026

This PR introduces a new executable submodule to env. This submodule provides information about the loaded kernel image from reserved linker symbols. This lets us remove hermit-entry's LoadInfo containing the loaded image address range and the TLS image information. This is necessary for running Hermit when loaded by something that is not hermit-entry.

@mkroening mkroening self-assigned this Apr 11, 2026
Copy link
Copy Markdown

@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

Details
Benchmark Current: b462492 Previous: 48c4862 Performance Ratio
startup_benchmark Build Time 90.20 s 89.01 s 1.01
startup_benchmark File Size 0.80 MB 0.79 MB 1.01
Startup Time - 1 core 0.79 s (±0.04 s) 0.80 s (±0.03 s) 0.99
Startup Time - 2 cores 0.80 s (±0.02 s) 0.80 s (±0.03 s) 1.01
Startup Time - 4 cores 0.80 s (±0.02 s) 0.79 s (±0.02 s) 1.01
multithreaded_benchmark Build Time 87.79 s 91.24 s 0.96
multithreaded_benchmark File Size 0.90 MB 0.89 MB 1.01
Multithreaded Pi Efficiency - 2 Threads 92.27 % (±5.53 %) 91.93 % (±6.65 %) 1.00
Multithreaded Pi Efficiency - 4 Threads 45.87 % (±2.45 %) 45.63 % (±3.28 %) 1.01
Multithreaded Pi Efficiency - 8 Threads 26.49 % (±1.82 %) 26.18 % (±2.14 %) 1.01
micro_benchmarks Build Time 93.61 s 92.80 s 1.01
micro_benchmarks File Size 0.91 MB 0.90 MB 1.01
Scheduling time - 1 thread 69.91 ticks (±5.17 ticks) 71.43 ticks (±3.75 ticks) 0.98
Scheduling time - 2 threads 38.71 ticks (±5.52 ticks) 42.26 ticks (±6.49 ticks) 0.92
Micro - Time for syscall (getpid) 2.99 ticks (±0.32 ticks) 3.00 ticks (±0.29 ticks) 1.00
Memcpy speed - (built_in) block size 4096 80032.04 MByte/s (±55410.26 MByte/s) 77588.74 MByte/s (±53726.48 MByte/s) 1.03
Memcpy speed - (built_in) block size 1048576 29971.52 MByte/s (±24419.25 MByte/s) 30428.98 MByte/s (±24999.12 MByte/s) 0.98
Memcpy speed - (built_in) block size 16777216 28440.06 MByte/s (±23482.28 MByte/s) 23604.18 MByte/s (±19753.22 MByte/s) 1.20
Memset speed - (built_in) block size 4096 80100.36 MByte/s (±55450.35 MByte/s) 77489.66 MByte/s (±53662.41 MByte/s) 1.03
Memset speed - (built_in) block size 1048576 30694.59 MByte/s (±24815.75 MByte/s) 31276.64 MByte/s (±25528.42 MByte/s) 0.98
Memset speed - (built_in) block size 16777216 29180.02 MByte/s (±23899.49 MByte/s) 23990.57 MByte/s (±19926.43 MByte/s) 1.22
Memcpy speed - (rust) block size 4096 71339.11 MByte/s (±49865.10 MByte/s) 67907.42 MByte/s (±47533.10 MByte/s) 1.05
Memcpy speed - (rust) block size 1048576 30018.78 MByte/s (±24497.12 MByte/s) 30386.80 MByte/s (±25093.17 MByte/s) 0.99
Memcpy speed - (rust) block size 16777216 28667.15 MByte/s (±23680.56 MByte/s) 22528.23 MByte/s (±18733.63 MByte/s) 1.27
Memset speed - (rust) block size 4096 71543.77 MByte/s (±50006.83 MByte/s) 68293.54 MByte/s (±47757.93 MByte/s) 1.05
Memset speed - (rust) block size 1048576 30738.12 MByte/s (±24915.25 MByte/s) 31265.85 MByte/s (±25639.68 MByte/s) 0.98
Memset speed - (rust) block size 16777216 29420.94 MByte/s (±24109.28 MByte/s) 22686.12 MByte/s (±18784.81 MByte/s) 1.30
alloc_benchmarks Build Time 91.96 s 94.54 s 0.97
alloc_benchmarks File Size 0.87 MB 0.86 MB 1.01
Allocations - Allocation success 100.00 % 100.00 % 1
Allocations - Deallocation success 100.00 % 100.00 % 1
Allocations - Pre-fail Allocations 100.00 % 100.00 % 1
Allocations - Average Allocation time 6869.27 Ticks (±82.56 Ticks) 6992.29 Ticks (±89.42 Ticks) 0.98
Allocations - Average Allocation time (no fail) 6869.27 Ticks (±82.56 Ticks) 6992.29 Ticks (±89.42 Ticks) 0.98
Allocations - Average Deallocation time 1690.68 Ticks (±176.79 Ticks) 874.74 Ticks (±157.54 Ticks) 1.93
mutex_benchmark Build Time 91.12 s 94.86 s 0.96
mutex_benchmark File Size 0.91 MB 0.90 MB 1.01
Mutex Stress Test Average Time per Iteration - 1 Threads 13.12 ns (±0.71 ns) 13.34 ns (±0.62 ns) 0.98
Mutex Stress Test Average Time per Iteration - 2 Threads 17.40 ns (±3.47 ns) 18.78 ns (±6.34 ns) 0.93

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

@mkroening mkroening force-pushed the rm-load_info branch 2 times, most recently from 972f301 to d8cb3e8 Compare April 11, 2026 21:36
@mkroening mkroening force-pushed the rm-load_info branch 2 times, most recently from 97a21b7 to b5a34d5 Compare April 12, 2026 08:43
@mkroening mkroening marked this pull request as ready for review April 12, 2026 10:11
@mkroening mkroening added this pull request to the merge queue Apr 12, 2026
Merged via the queue into main with commit b2a28b3 Apr 12, 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.

1 participant