Skip to content

fix(pci): handle error values for IRQ number#1985

Merged
mkroening merged 1 commit intohermit-os:mainfrom
cagatay-y:irq-handling
Nov 6, 2025
Merged

fix(pci): handle error values for IRQ number#1985
mkroening merged 1 commit intohermit-os:mainfrom
cagatay-y:irq-handling

Conversation

@cagatay-y
Copy link
Copy Markdown
Contributor

No description provided.

@mkroening mkroening self-assigned this Oct 16, 2025
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: 417b254 Previous: 4406c2f Performance Ratio
startup_benchmark Build Time 111.68 s 112.50 s 0.99
startup_benchmark File Size 0.91 MB 0.91 MB 1.00
Startup Time - 1 core 0.90 s (±0.02 s) 0.89 s (±0.03 s) 1.01
Startup Time - 2 cores 0.92 s (±0.02 s) 0.91 s (±0.03 s) 1.01
Startup Time - 4 cores 0.92 s (±0.03 s) 0.91 s (±0.03 s) 1.01
multithreaded_benchmark Build Time 111.68 s 110.54 s 1.01
multithreaded_benchmark File Size 1.02 MB 1.02 MB 1.00
Multithreaded Pi Efficiency - 2 Threads 85.90 % (±9.15 %) 90.54 % (±7.97 %) 0.95
Multithreaded Pi Efficiency - 4 Threads 42.86 % (±3.29 %) 44.52 % (±2.89 %) 0.96
Multithreaded Pi Efficiency - 8 Threads 24.31 % (±1.71 %) 25.77 % (±1.78 %) 0.94
micro_benchmarks Build Time 295.47 s 294.62 s 1.00
micro_benchmarks File Size 1.02 MB 1.02 MB 1.00
Scheduling time - 1 thread 166.68 ticks (±25.00 ticks) 166.16 ticks (±24.75 ticks) 1.00
Scheduling time - 2 threads 100.65 ticks (±19.98 ticks) 98.92 ticks (±21.16 ticks) 1.02
Micro - Time for syscall (getpid) 10.38 ticks (±5.04 ticks) 10.37 ticks (±5.09 ticks) 1.00
Memcpy speed - (built_in) block size 4096 58106.08 MByte/s (±42190.00 MByte/s) 57796.95 MByte/s (±42117.46 MByte/s) 1.01
Memcpy speed - (built_in) block size 1048576 13679.59 MByte/s (±11125.04 MByte/s) 13855.92 MByte/s (±11377.70 MByte/s) 0.99
Memcpy speed - (built_in) block size 16777216 9908.55 MByte/s (±8019.41 MByte/s) 10150.72 MByte/s (±8216.15 MByte/s) 0.98
Memset speed - (built_in) block size 4096 57118.36 MByte/s (±41930.55 MByte/s) 58119.59 MByte/s (±42293.75 MByte/s) 0.98
Memset speed - (built_in) block size 1048576 13885.30 MByte/s (±11212.75 MByte/s) 14269.30 MByte/s (±11639.09 MByte/s) 0.97
Memset speed - (built_in) block size 16777216 10173.04 MByte/s (±8184.49 MByte/s) 10460.31 MByte/s (±8421.16 MByte/s) 0.97
Memcpy speed - (rust) block size 4096 53254.92 MByte/s (±39525.45 MByte/s) 55022.44 MByte/s (±40292.12 MByte/s) 0.97
Memcpy speed - (rust) block size 1048576 13815.15 MByte/s (±11318.99 MByte/s) 14053.62 MByte/s (±11588.02 MByte/s) 0.98
Memcpy speed - (rust) block size 16777216 10252.13 MByte/s (±8313.98 MByte/s) 9918.94 MByte/s (±7990.50 MByte/s) 1.03
Memset speed - (rust) block size 4096 53591.12 MByte/s (±39703.11 MByte/s) 55564.64 MByte/s (±40644.56 MByte/s) 0.96
Memset speed - (rust) block size 1048576 14138.99 MByte/s (±11484.08 MByte/s) 14210.72 MByte/s (±11709.13 MByte/s) 0.99
Memset speed - (rust) block size 16777216 10504.87 MByte/s (±8464.06 MByte/s) 10199.88 MByte/s (±8172.52 MByte/s) 1.03
alloc_benchmarks Build Time 302.86 s 293.32 s 1.03
alloc_benchmarks File Size 0.98 MB 0.98 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 20363.98 Ticks (±891.88 Ticks) 19796.71 Ticks (±1011.78 Ticks) 1.03
Allocations - Average Allocation time (no fail) 20363.98 Ticks (±891.88 Ticks) 19796.71 Ticks (±1011.78 Ticks) 1.03
Allocations - Average Deallocation time 3068.46 Ticks (±1241.23 Ticks) 2618.08 Ticks (±1032.57 Ticks) 1.17
mutex_benchmark Build Time 293.78 s 293.46 s 1.00
mutex_benchmark File Size 1.02 MB 1.02 MB 1.00
Mutex Stress Test Average Time per Iteration - 1 Threads 36.22 ns (±3.63 ns) 36.58 ns (±5.95 ns) 0.99
Mutex Stress Test Average Time per Iteration - 2 Threads 29.56 ns (±3.39 ns) 29.58 ns (±3.24 ns) 1.00

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

Copy link
Copy Markdown
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.

Looks good, thanks! :)

Would it make sense to log these as errors instead of warnings?

@cagatay-y
Copy link
Copy Markdown
Contributor Author

Looks good, thanks! :)

Would it make sense to log these as errors instead of warnings?

I think they are not all necessarily error conditions. For example it is possible that a driver tries the legacy interrupt mechanism first and if it fails falls back to MSI. In my opinion it would make more sense to print an error on the driver side if it is not able to handle the lack of a legacy interrupt line.

@mkroening
Copy link
Copy Markdown
Member

Yeah, for the first one, warn makes sense. We might even want to downgrade that once we can handle non-legacy interrupts. The other ones are clear errors, though, right? 🤔

Copy link
Copy Markdown
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 Nov 6, 2025
Merged via the queue into hermit-os:main with commit 765074f Nov 6, 2025
17 checks passed
@cagatay-y cagatay-y deleted the irq-handling branch April 13, 2026 15:59
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