Skip to content

refactor(acpi): migrate to arch-independent acpi crate - #2650

Open
mkroening wants to merge 5 commits into
mainfrom
acpi-crate
Open

refactor(acpi): migrate to arch-independent acpi crate#2650
mkroening wants to merge 5 commits into
mainfrom
acpi-crate

Conversation

@mkroening

@mkroening mkroening commented Aug 16, 2026

Copy link
Copy Markdown
Member

@mkroening mkroening self-assigned this Aug 16, 2026
@mkroening mkroening linked an issue Aug 16, 2026 that may be closed by this pull request
@mkroening mkroening changed the title refactor: migrate to arch-independent acpi crate refactor(acpi): migrate to arch-independent acpi crate Aug 19, 2026

@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: 7494526 Previous: 2e23902 Performance Ratio
startup_benchmark Build Time 94.15 s 80.34 s 1.17
startup_benchmark File Size 0.85 MB 0.80 MB 1.06
Startup Time - 1 core 0.72 s (±0.02 s) 0.75 s (±0.02 s) 0.96
Startup Time - 2 cores 0.72 s (±0.01 s) 0.74 s (±0.02 s) 0.98
Startup Time - 4 cores 0.73 s (±0.01 s) 0.74 s (±0.02 s) 0.98
multithreaded_benchmark Build Time 93.94 s 82.11 s 1.14
multithreaded_benchmark File Size 0.93 MB 0.86 MB 1.09
Multithreaded Pi Efficiency - 2 Threads 64.93 % (±6.42 %) 85.89 % (±6.61 %) 0.76
Multithreaded Pi Efficiency - 4 Threads 40.51 % (±3.36 %) 43.43 % (±2.56 %) 0.93
Multithreaded Pi Efficiency - 8 Threads 19.95 % (±1.82 %) 25.76 % (±1.53 %) 0.77
micro_benchmarks Build Time 227.41 s 80.40 s 2.83
micro_benchmarks File Size 0.94 MB 0.86 MB 1.09
Scheduling time - 1 thread 183.99 ticks (±27.12 ticks) 62.65 ticks (±4.06 ticks) 2.94
Scheduling time - 2 threads 105.43 ticks (±17.87 ticks) 34.08 ticks (±4.10 ticks) 3.09
Micro - Time for syscall (getpid) 10.73 ticks (±6.05 ticks) 3.45 ticks (±0.58 ticks) 3.11
Memcpy speed - (built_in) block size 4096 60283.11 MByte/s (±42662.61 MByte/s) 82448.38 MByte/s (±56997.13 MByte/s) 0.73
Memcpy speed - (built_in) block size 1048576 13822.19 MByte/s (±11260.90 MByte/s) 30585.98 MByte/s (±24707.84 MByte/s) 0.45
Memcpy speed - (built_in) block size 16777216 11990.26 MByte/s (±9903.29 MByte/s) 26340.06 MByte/s (±21720.96 MByte/s) 0.46
Memset speed - (built_in) block size 4096 60637.86 MByte/s (±42924.64 MByte/s) 82292.76 MByte/s (±56891.50 MByte/s) 0.74
Memset speed - (built_in) block size 1048576 14015.07 MByte/s (±11371.29 MByte/s) 31323.85 MByte/s (±25145.86 MByte/s) 0.45
Memset speed - (built_in) block size 16777216 12339.52 MByte/s (±10133.33 MByte/s) 27104.68 MByte/s (±22209.94 MByte/s) 0.46
Memcpy speed - (rust) block size 4096 55982.17 MByte/s (±39855.65 MByte/s) 74097.96 MByte/s (±51811.44 MByte/s) 0.76
Memcpy speed - (rust) block size 1048576 13769.35 MByte/s (±11165.28 MByte/s) 30361.60 MByte/s (±24602.37 MByte/s) 0.45
Memcpy speed - (rust) block size 16777216 12241.10 MByte/s (±10161.30 MByte/s) 27625.34 MByte/s (±22806.88 MByte/s) 0.44
Memset speed - (rust) block size 4096 56512.23 MByte/s (±40247.20 MByte/s) 74373.47 MByte/s (±51976.48 MByte/s) 0.76
Memset speed - (rust) block size 1048576 14089.47 MByte/s (±11339.08 MByte/s) 31110.89 MByte/s (±25033.24 MByte/s) 0.45
Memset speed - (rust) block size 16777216 12552.58 MByte/s (±10332.98 MByte/s) 28386.93 MByte/s (±23265.03 MByte/s) 0.44
alloc_benchmarks Build Time 216.70 s 74.76 s 2.90
alloc_benchmarks File Size 0.93 MB 0.87 MB 1.06
Allocations - Allocation success 91.37 % 91.31 % 1.00
Allocations - Deallocation success 100.00 % 100.00 % 1
Allocations - Pre-fail Allocations 61.61 % 61.44 % 1.00
Allocations - Average Allocation time 13961.92 Ticks (±2604.42 Ticks) 5860.58 Ticks (±98.43 Ticks) 2.38
Allocations - Average Allocation time (no fail) 15852.56 Ticks (±2487.02 Ticks) 6554.81 Ticks (±92.86 Ticks) 2.42
Allocations - Average Deallocation time 6601.16 Ticks (±1075.94 Ticks) 1805.01 Ticks (±250.35 Ticks) 3.66
mutex_benchmark Build Time 227.49 s 79.82 s 2.85
mutex_benchmark File Size 0.94 MB 0.86 MB 1.09
Mutex Stress Test Average Time per Iteration - 1 Threads 34.72 ns (±5.61 ns) 12.10 ns (±0.41 ns) 2.87
Mutex Stress Test Average Time per Iteration - 2 Threads 31.46 ns (±8.22 ns) 40.26 ns (±1.68 ns) 0.78

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

@mkroening

Copy link
Copy Markdown
Member Author

I have dropped the AML interpreter, which is too slow and too large for our kernel stack without optimizations (cc5cb7a).

@mkroening
mkroening marked this pull request as ready for review September 6, 2026 18:03
@mkroening
mkroening requested a review from stlankes September 6, 2026 18:04
@mkroening mkroening assigned stlankes and unassigned mkroening Sep 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate to the acpi crate for ACPI handling

2 participants