Skip to content

Conversation

@n0toose
Copy link
Member

@n0toose n0toose commented Oct 25, 2025

This seems to work and is relevant for hermit-os/hermit-entry#58


Relevant note in uhyve-interface:

https://github.com/hermit-os/uhyve/blob/924ed3c6be61256d167dfe5be42f7d8297170710/uhyve-interface/src/elf.rs#L5-L8

... which mentions the issue rust-lang/rust#99721

(which also caused me to head into the wrong initial rabbit hole, although I should've looked at the hermit_entry::define_entry_version macro first, whoops: hermit-os/uhyve#1144)

This is identical to what is done for
hermit_entry::define_entry_version!()
@n0toose n0toose force-pushed the uhyve-if-link-version branch from 7977fc8 to bef468e Compare October 25, 2025 13:00
@n0toose n0toose changed the title feat(uhyve): link uhyve interface versions to binary feat(uhyve): link uhyve interface versions to images Oct 25, 2025
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: bef468e Previous: cb0d623 Performance Ratio
startup_benchmark Build Time 114.23 s 111.98 s 1.02
startup_benchmark File Size 0.89 MB 0.89 MB 1.00
Startup Time - 1 core 0.91 s (±0.03 s) 0.91 s (±0.05 s) 1.01
Startup Time - 2 cores 0.93 s (±0.03 s) 0.92 s (±0.04 s) 1.01
Startup Time - 4 cores 0.92 s (±0.03 s) 0.92 s (±0.03 s) 1.00
multithreaded_benchmark Build Time 113.61 s 114.79 s 0.99
multithreaded_benchmark File Size 1.00 MB 1.00 MB 1.00
Multithreaded Pi Efficiency - 2 Threads 91.33 % (±8.77 %) 90.02 % (±8.17 %) 1.01
Multithreaded Pi Efficiency - 4 Threads 43.49 % (±3.96 %) 44.54 % (±3.42 %) 0.98
Multithreaded Pi Efficiency - 8 Threads 25.52 % (±2.39 %) 25.97 % (±2.04 %) 0.98
micro_benchmarks Build Time 241.58 s 261.23 s 0.92
micro_benchmarks File Size 1.01 MB 1.01 MB 1.00
Scheduling time - 1 thread 134.86 ticks (±29.29 ticks) 140.01 ticks (±34.10 ticks) 0.96
Scheduling time - 2 threads 69.84 ticks (±18.06 ticks) 85.24 ticks (±13.44 ticks) 0.82
Micro - Time for syscall (getpid) 7.27 ticks (±3.80 ticks) 8.13 ticks (±3.54 ticks) 0.89
Memcpy speed - (built_in) block size 4096 59683.11 MByte/s (±42811.87 MByte/s) 58334.21 MByte/s (±41243.72 MByte/s) 1.02
Memcpy speed - (built_in) block size 1048576 22168.64 MByte/s (±19812.98 MByte/s) 21033.07 MByte/s (±18225.52 MByte/s) 1.05
Memcpy speed - (built_in) block size 16777216 15115.87 MByte/s (±12745.33 MByte/s) 13267.84 MByte/s (±10774.63 MByte/s) 1.14
Memset speed - (built_in) block size 4096 60233.86 MByte/s (±43139.96 MByte/s) 58219.36 MByte/s (±41164.23 MByte/s) 1.03
Memset speed - (built_in) block size 1048576 22443.87 MByte/s (±19909.71 MByte/s) 21368.76 MByte/s (±18349.64 MByte/s) 1.05
Memset speed - (built_in) block size 16777216 15376.78 MByte/s (±12860.67 MByte/s) 13479.15 MByte/s (±10870.12 MByte/s) 1.14
Memcpy speed - (rust) block size 4096 54771.04 MByte/s (±39802.19 MByte/s) 52819.55 MByte/s (±38638.93 MByte/s) 1.04
Memcpy speed - (rust) block size 1048576 21003.80 MByte/s (±18029.85 MByte/s) 23393.82 MByte/s (±21095.61 MByte/s) 0.90
Memcpy speed - (rust) block size 16777216 13733.18 MByte/s (±11295.23 MByte/s) 13873.33 MByte/s (±11633.55 MByte/s) 0.99
Memset speed - (rust) block size 4096 55432.80 MByte/s (±40212.71 MByte/s) 54298.23 MByte/s (±39297.25 MByte/s) 1.02
Memset speed - (rust) block size 1048576 21269.62 MByte/s (±18146.42 MByte/s) 23892.19 MByte/s (±21294.83 MByte/s) 0.89
Memset speed - (rust) block size 16777216 13952.54 MByte/s (±11387.61 MByte/s) 13997.13 MByte/s (±11673.08 MByte/s) 1.00
alloc_benchmarks Build Time 246.66 s 250.66 s 0.98
alloc_benchmarks File Size 0.96 MB 0.96 MB 1.00
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 8310.56 Ticks (±680.36 Ticks) 8836.57 Ticks (±1388.50 Ticks) 0.94
Allocations - Average Allocation time (no fail) 8310.56 Ticks (±680.36 Ticks) 8836.57 Ticks (±1388.50 Ticks) 0.94
Allocations - Average Deallocation time 1403.07 Ticks (±160.27 Ticks) 1396.33 Ticks (±193.31 Ticks) 1.00
mutex_benchmark Build Time 242.89 s 245.80 s 0.99
mutex_benchmark File Size 1.01 MB 1.01 MB 1.00
Mutex Stress Test Average Time per Iteration - 1 Threads 27.20 ns (±6.44 ns) 27.14 ns (±5.97 ns) 1.00
Mutex Stress Test Average Time per Iteration - 2 Threads 25.06 ns (±3.44 ns) 25.02 ns (±3.35 ns) 1.00

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

@n0toose n0toose mentioned this pull request Oct 25, 2025
5 tasks
@mkroening mkroening self-requested a review October 25, 2025 20:30
@mkroening mkroening self-assigned this Oct 25, 2025
Copy link
Member

@mkroening mkroening left a comment

Choose a reason for hiding this comment

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

Thanks! :)

@mkroening mkroening added this pull request to the merge queue Oct 27, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Oct 27, 2025
@mkroening mkroening added this pull request to the merge queue Oct 27, 2025
Merged via the queue into hermit-os:main with commit 0a574f1 Oct 27, 2025
31 of 32 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