Skip to content

Read PCI devices through devicetree instead of scanning PCI bus in kernel - #1476

Open
duanyu-yu wants to merge 1 commit into
hermit-os:mainfrom
duanyu-yu:pci
Open

Read PCI devices through devicetree instead of scanning PCI bus in kernel#1476
duanyu-yu wants to merge 1 commit into
hermit-os:mainfrom
duanyu-yu:pci

Conversation

@duanyu-yu

@duanyu-yu duanyu-yu commented Nov 26, 2024

Copy link
Copy Markdown
Contributor

@duanyu-yu

Copy link
Copy Markdown
Contributor Author

The PCI bus is now scanned in the loader instead of in the kernel. The related changes in the loader and hermit-rs can be found at https://github.com/duanyu-yu/hermit-rs/tree/pci and https://github.com/duanyu-yu/hermit-loader/tree/pci.

@duanyu-yu
duanyu-yu force-pushed the pci branch 5 times, most recently from 86e972c to 75107e0 Compare December 11, 2024 02:16
…rnel

If devicetree exists, skip scanning the PCI bus

@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: 17953ef Previous: 2e23902 Performance Ratio
startup_benchmark Build Time 218.88 s 80.34 s 2.72
startup_benchmark File Size 0.79 MB 0.80 MB 0.99
Startup Time - 1 core 2.35 s (±0.20 s) 0.75 s (±0.02 s) 3.14
Startup Time - 2 cores 2.31 s (±0.27 s) 0.74 s (±0.02 s) 3.14
Startup Time - 4 cores 2.28 s (±0.23 s) 0.74 s (±0.02 s) 3.07
multithreaded_benchmark Build Time 228.86 s 82.11 s 2.79
multithreaded_benchmark File Size 0.88 MB 0.86 MB 1.03
Multithreaded Pi Efficiency - 2 Threads 81.72 % (±14.96 %) 85.89 % (±6.61 %) 0.95
Multithreaded Pi Efficiency - 4 Threads 52.87 % (±10.47 %) 43.43 % (±2.56 %) 1.22
Multithreaded Pi Efficiency - 8 Threads 32.90 % (±6.37 %) 25.76 % (±1.53 %) 1.28
micro_benchmarks Build Time 197.41 s 80.40 s 2.46
micro_benchmarks File Size 0.89 MB 0.86 MB 1.03
Scheduling time - 1 thread 185.77 ticks (±32.53 ticks) 62.65 ticks (±4.06 ticks) 2.96
Scheduling time - 2 threads 105.85 ticks (±22.11 ticks) 34.08 ticks (±4.10 ticks) 3.11
Micro - Time for syscall (getpid) 10.84 ticks (±4.18 ticks) 3.45 ticks (±0.58 ticks) 3.14
Memcpy speed - (built_in) block size 4096 55986.96 MByte/s (±39637.66 MByte/s) 82448.38 MByte/s (±56997.13 MByte/s) 0.68
Memcpy speed - (built_in) block size 1048576 17219.48 MByte/s (±15443.36 MByte/s) 30585.98 MByte/s (±24707.84 MByte/s) 0.56
Memcpy speed - (built_in) block size 16777216 14343.17 MByte/s (±12203.42 MByte/s) 26340.06 MByte/s (±21720.96 MByte/s) 0.54
Memset speed - (built_in) block size 4096 56080.18 MByte/s (±39690.43 MByte/s) 82292.76 MByte/s (±56891.50 MByte/s) 0.68
Memset speed - (built_in) block size 1048576 17806.03 MByte/s (±15851.88 MByte/s) 31323.85 MByte/s (±25145.86 MByte/s) 0.57
Memset speed - (built_in) block size 16777216 14951.80 MByte/s (±12666.39 MByte/s) 27104.68 MByte/s (±22209.94 MByte/s) 0.55
Memcpy speed - (rust) block size 4096 53089.53 MByte/s (±38116.49 MByte/s) 74097.96 MByte/s (±51811.44 MByte/s) 0.72
Memcpy speed - (rust) block size 1048576 16138.86 MByte/s (±14047.55 MByte/s) 30361.60 MByte/s (±24602.37 MByte/s) 0.53
Memcpy speed - (rust) block size 16777216 14806.15 MByte/s (±12413.13 MByte/s) 27625.34 MByte/s (±22806.88 MByte/s) 0.54
Memset speed - (rust) block size 4096 53688.83 MByte/s (±38499.22 MByte/s) 74373.47 MByte/s (±51976.48 MByte/s) 0.72
Memset speed - (rust) block size 1048576 16627.53 MByte/s (±14357.70 MByte/s) 31110.89 MByte/s (±25033.24 MByte/s) 0.53
Memset speed - (rust) block size 16777216 15203.19 MByte/s (±12625.68 MByte/s) 28386.93 MByte/s (±23265.03 MByte/s) 0.54
alloc_benchmarks Build Time 197.38 s 74.76 s 2.64
alloc_benchmarks File Size 0.87 MB 0.87 MB 0.99
Allocations - Allocation success 91.35 % 91.31 % 1.00
Allocations - Deallocation success 100.00 % 100.00 % 1
Allocations - Pre-fail Allocations 61.55 % 61.44 % 1.00
Allocations - Average Allocation time 16360.78 Ticks (±897.51 Ticks) 5860.58 Ticks (±98.43 Ticks) 2.79
Allocations - Average Allocation time (no fail) 17481.05 Ticks (±1199.97 Ticks) 6554.81 Ticks (±92.86 Ticks) 2.67
Allocations - Average Deallocation time 4940.13 Ticks (±1114.32 Ticks) 1805.01 Ticks (±250.35 Ticks) 2.74
mutex_benchmark Build Time 195.53 s 79.82 s 2.45
mutex_benchmark File Size 0.89 MB 0.86 MB 1.03
Mutex Stress Test Average Time per Iteration - 1 Threads 31.70 ns (±7.33 ns) 12.10 ns (±0.41 ns) 2.62
Mutex Stress Test Average Time per Iteration - 2 Threads 30.16 ns (±8.09 ns) 40.26 ns (±1.68 ns) 0.75

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

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.

3 participants