Skip to content

ci: add Pull Request Labeler - #2580

Open
mkroening wants to merge 1 commit into
mainfrom
pr-labeler
Open

ci: add Pull Request Labeler#2580
mkroening wants to merge 1 commit into
mainfrom
pr-labeler

Conversation

@mkroening

Copy link
Copy Markdown
Member

This PR adds a workflow to run actions/labeler to automatically label PRs based on touched file paths.

This action is already used by Uhyve: uhyve/.github/labeler.yml.

The current labels in this PR are just a gut feeling. It would be great to have your feedback on them and on whether we should do this at all.

@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: bd95636 Previous: 2e23902 Performance Ratio
startup_benchmark Build Time 82.64 s 80.34 s 1.03
startup_benchmark File Size 0.79 MB 0.80 MB 1.00
Startup Time - 1 core 0.75 s (±0.02 s) 0.75 s (±0.02 s) 1.01
Startup Time - 2 cores 0.77 s (±0.02 s) 0.74 s (±0.02 s) 1.05
Startup Time - 4 cores 0.77 s (±0.03 s) 0.74 s (±0.02 s) 1.04
multithreaded_benchmark Build Time 85.02 s 82.11 s 1.04
multithreaded_benchmark File Size 0.90 MB 0.86 MB 1.05
Multithreaded Pi Efficiency - 2 Threads 86.11 % (±6.38 %) 85.89 % (±6.61 %) 1.00
Multithreaded Pi Efficiency - 4 Threads 43.87 % (±2.73 %) 43.43 % (±2.56 %) 1.01
Multithreaded Pi Efficiency - 8 Threads 25.58 % (±1.22 %) 25.76 % (±1.53 %) 0.99
micro_benchmarks Build Time 83.94 s 80.40 s 1.04
micro_benchmarks File Size 0.90 MB 0.86 MB 1.05
Scheduling time - 1 thread 66.50 ticks (±3.64 ticks) 62.65 ticks (±4.06 ticks) 1.06
Scheduling time - 2 threads 35.31 ticks (±3.95 ticks) 34.08 ticks (±4.10 ticks) 1.04
Micro - Time for syscall (getpid) 4.38 ticks (±0.60 ticks) 3.45 ticks (±0.58 ticks) 1.27
Memcpy speed - (built_in) block size 4096 83571.74 MByte/s (±57868.14 MByte/s) 82448.38 MByte/s (±56997.13 MByte/s) 1.01
Memcpy speed - (built_in) block size 1048576 30365.67 MByte/s (±24576.62 MByte/s) 30585.98 MByte/s (±24707.84 MByte/s) 0.99
Memcpy speed - (built_in) block size 16777216 26285.22 MByte/s (±21753.92 MByte/s) 26340.06 MByte/s (±21720.96 MByte/s) 1.00
Memset speed - (built_in) block size 4096 83547.49 MByte/s (±57849.46 MByte/s) 82292.76 MByte/s (±56891.50 MByte/s) 1.02
Memset speed - (built_in) block size 1048576 31129.39 MByte/s (±25034.08 MByte/s) 31323.85 MByte/s (±25145.86 MByte/s) 0.99
Memset speed - (built_in) block size 16777216 27071.89 MByte/s (±22272.94 MByte/s) 27104.68 MByte/s (±22209.94 MByte/s) 1.00
Memcpy speed - (rust) block size 4096 73452.51 MByte/s (±51182.16 MByte/s) 74097.96 MByte/s (±51811.44 MByte/s) 0.99
Memcpy speed - (rust) block size 1048576 30243.19 MByte/s (±24522.56 MByte/s) 30361.60 MByte/s (±24602.37 MByte/s) 1.00
Memcpy speed - (rust) block size 16777216 26988.19 MByte/s (±22289.36 MByte/s) 27625.34 MByte/s (±22806.88 MByte/s) 0.98
Memset speed - (rust) block size 4096 73742.78 MByte/s (±51344.79 MByte/s) 74373.47 MByte/s (±51976.48 MByte/s) 0.99
Memset speed - (rust) block size 1048576 30998.86 MByte/s (±24988.32 MByte/s) 31110.89 MByte/s (±25033.24 MByte/s) 1.00
Memset speed - (rust) block size 16777216 27773.90 MByte/s (±22795.30 MByte/s) 28386.93 MByte/s (±23265.03 MByte/s) 0.98
alloc_benchmarks Build Time 78.17 s 74.76 s 1.05
alloc_benchmarks File Size 0.87 MB 0.87 MB 1.00
Allocations - Allocation success 91.31 % 91.31 % 1
Allocations - Deallocation success 100.00 % 100.00 % 1
Allocations - Pre-fail Allocations 61.44 % 61.44 % 1
Allocations - Average Allocation time 4392.32 Ticks (±108.33 Ticks) 5860.58 Ticks (±98.43 Ticks) 0.75
Allocations - Average Allocation time (no fail) 5141.33 Ticks (±103.51 Ticks) 6554.81 Ticks (±92.86 Ticks) 0.78
Allocations - Average Deallocation time 916.59 Ticks (±209.17 Ticks) 1805.01 Ticks (±250.35 Ticks) 0.51
mutex_benchmark Build Time 78.59 s 79.82 s 0.98
mutex_benchmark File Size 0.90 MB 0.86 MB 1.05
Mutex Stress Test Average Time per Iteration - 1 Threads 12.12 ns (±0.65 ns) 12.10 ns (±0.41 ns) 1.00
Mutex Stress Test Average Time per Iteration - 2 Threads 40.56 ns (±2.06 ns) 40.26 ns (±1.68 ns) 1.01

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

Comment thread .github/labeler.yml Outdated
Comment thread .github/labeler.yml Outdated
Comment on lines +25 to +27
driver:
- changed-files:
- any-glob-to-any-file: 'src/drivers/**'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I would like the driver labeling to be a bit more fine-grained, e.g. having driver-console, driver-fs, driver-net, driver-virtio, driver-vsock, and maybe even the individual drivers inside the directories (like gem, loopback, rtl8139, virtio-net, ...)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I second this.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I had included them in my initial draft but thought they were too numerous, but I can't think of any concrete downside of having many tags. I have added them back. 👍

Comment thread .github/labeler.yml Outdated
Comment thread .github/labeler.yml Outdated
Comment on lines +37 to +39
fs:
- changed-files:
- any-glob-to-any-file: 'src/fs/**'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Maybe also src/drivers/fs/**?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I think I'd rather keep that separate as driver-virtio-fs. 🤔

@sarahspberrypi sarahspberrypi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Overall, I like the idea, thanks! :)

Comment thread .github/labeler.yml
arch-x86_64:
- changed-files:
- any-glob-to-any-file: 'src/arch/x86_64/**'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think, a src/console/** label is missing here? This file includes all subdirectories, just not this one.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I went by modules, not directories. All the single-file modules don't have a label. I believe the console module is too small to warrant a label, even though it has two files.

If you disagree, I can also add a label, though.

Comment thread .github/labeler.yml Outdated
Comment on lines +25 to +27
driver:
- changed-files:
- any-glob-to-any-file: 'src/drivers/**'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I second this.

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