Skip to content

feat: add support for MASOS apps#2426

Open
mkroening wants to merge 7 commits into
mainfrom
masos
Open

feat: add support for MASOS apps#2426
mkroening wants to merge 7 commits into
mainfrom
masos

Conversation

@mkroening
Copy link
Copy Markdown
Member

@mkroening mkroening commented May 11, 2026

This PR adds the syscall infrastructure from hermit-os/hermit-rs#970 to hermit-builtins in the kernel repo instead.

Benefits:

  • It is easier to keep the syscall abstraction and the syscalls in sync.
  • We can reuse hermit-builtin's math and mem primitives.
  • It easier to use since we just link against a libhermit.a as always.

During the transition, I have refactored most of the code.

See hermit-os/hermit-rs#994.
Depends on hermit-os/hermit-rs#995.
Closes hermit-os/hermit-rs#874.

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: fe5c116 Previous: 1995748 Performance Ratio
startup_benchmark Build Time 99.29 s 97.26 s 1.02
startup_benchmark File Size 0.76 MB 0.76 MB 1.00
Startup Time - 1 core 0.79 s (±0.03 s) 0.81 s (±0.03 s) 0.98
Startup Time - 2 cores 0.78 s (±0.03 s) 0.81 s (±0.02 s) 0.97
Startup Time - 4 cores 0.81 s (±0.03 s) 0.82 s (±0.03 s) 0.99
multithreaded_benchmark Build Time 103.26 s 101.76 s 1.01
multithreaded_benchmark File Size 0.86 MB 0.86 MB 1.00
Multithreaded Pi Efficiency - 2 Threads 67.65 % (±7.17 %) 66.91 % (±7.02 %) 1.01
Multithreaded Pi Efficiency - 4 Threads 41.90 % (±2.77 %) 41.78 % (±2.62 %) 1.00
Multithreaded Pi Efficiency - 8 Threads 19.74 % (±1.55 %) 20.03 % (±2.04 %) 0.99
micro_benchmarks Build Time 98.65 s 96.47 s 1.02
micro_benchmarks File Size 0.87 MB 0.87 MB 1.00
Scheduling time - 1 thread 69.25 ticks (±4.08 ticks) 71.35 ticks (±4.29 ticks) 0.97
Scheduling time - 2 threads 38.70 ticks (±4.80 ticks) 38.27 ticks (±4.80 ticks) 1.01
Micro - Time for syscall (getpid) 2.93 ticks (±0.29 ticks) 3.03 ticks (±0.33 ticks) 0.97
Memcpy speed - (built_in) block size 4096 77033.75 MByte/s (±53554.74 MByte/s) 75669.65 MByte/s (±52736.93 MByte/s) 1.02
Memcpy speed - (built_in) block size 1048576 29825.45 MByte/s (±24361.83 MByte/s) 29477.05 MByte/s (±24090.25 MByte/s) 1.01
Memcpy speed - (built_in) block size 16777216 26658.20 MByte/s (±22025.03 MByte/s) 25344.40 MByte/s (±21045.29 MByte/s) 1.05
Memset speed - (built_in) block size 4096 76870.49 MByte/s (±53444.89 MByte/s) 76041.75 MByte/s (±53007.66 MByte/s) 1.01
Memset speed - (built_in) block size 1048576 30578.01 MByte/s (±24800.15 MByte/s) 30224.16 MByte/s (±24517.62 MByte/s) 1.01
Memset speed - (built_in) block size 16777216 27440.40 MByte/s (±22520.28 MByte/s) 26091.14 MByte/s (±21520.38 MByte/s) 1.05
Memcpy speed - (rust) block size 4096 68526.87 MByte/s (±47863.24 MByte/s) 67847.73 MByte/s (±47702.41 MByte/s) 1.01
Memcpy speed - (rust) block size 1048576 29877.87 MByte/s (±24399.71 MByte/s) 29495.89 MByte/s (±24231.07 MByte/s) 1.01
Memcpy speed - (rust) block size 16777216 25610.31 MByte/s (±21213.58 MByte/s) 25761.59 MByte/s (±21357.10 MByte/s) 0.99
Memset speed - (rust) block size 4096 68753.14 MByte/s (±48028.26 MByte/s) 68063.04 MByte/s (±47855.91 MByte/s) 1.01
Memset speed - (rust) block size 1048576 30640.55 MByte/s (±24845.82 MByte/s) 30241.00 MByte/s (±24653.82 MByte/s) 1.01
Memset speed - (rust) block size 16777216 26373.83 MByte/s (±21707.33 MByte/s) 26436.66 MByte/s (±21756.66 MByte/s) 1.00
alloc_benchmarks Build Time 92.51 s 89.87 s 1.03
alloc_benchmarks File Size 0.84 MB 0.84 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 8783.57 Ticks (±128.43 Ticks) 8684.14 Ticks (±133.75 Ticks) 1.01
Allocations - Average Allocation time (no fail) 8783.57 Ticks (±128.43 Ticks) 8684.14 Ticks (±133.75 Ticks) 1.01
Allocations - Average Deallocation time 804.35 Ticks (±160.87 Ticks) 776.46 Ticks (±122.30 Ticks) 1.04
mutex_benchmark Build Time 93.03 s 90.28 s 1.03
mutex_benchmark File Size 0.87 MB 0.87 MB 1.00
Mutex Stress Test Average Time per Iteration - 1 Threads 13.06 ns (±0.83 ns) 13.08 ns (±0.98 ns) 1.00
Mutex Stress Test Average Time per Iteration - 2 Threads 16.62 ns (±12.67 ns) 16.84 ns (±8.53 ns) 0.99

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

stlankes and others added 2 commits May 12, 2026 14:21
Co-authored-by: Martin Kröning <martin.kroening@eonerc.rwth-aachen.de>
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