-
Notifications
You must be signed in to change notification settings - Fork 77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
scx: Add CI action that builds schedulers for PRs #40
Conversation
The CI check failed here even though it passed locally. Will convert to a draft and debug. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please merge whenever it's ready. Out of curiosity, why do we need thread dep in meson?
scx_userland was failing to resolve pthread_create(). Not sure why that's not happening locally, but must be some different dependency. |
97d1c92
to
a5fe9da
Compare
When Ubuntu ships with sched_ext, we can also maybe test loading the schedulers (not sure if the runners can run as root though). For now, we should at least have a CI job that lets us verify that the schedulers can _build_. To that end, this patch adds a basic CI action that builds the schedulers. As is, this is a bit brittle in that we're having to manually download and install a few dependencies. I don't see a better way for now without hosting our own runners with our own containers, but that's a bigger investment. For now, hopefully this will get us _some_ coverage. Signed-off-by: David Vernet <[email protected]>
on: [pull_request] | ||
jobs: | ||
build-schedulers: | ||
runs-on: ubuntu-20.04 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm wondering if we should target ubuntu-22.04
(or potentially even ubuntu-latest
) instead, in this way we don't have to download llvm 17 or any other external package, all we need is in the distro.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another cool thing that we could do is to use virtme-ng
(https://github.com/arighi/virtme-ng) to actually run the scx schedulers with any kernel that we want. In this case for example, we could apt download
the latest kernel from my ppa (with the sched-ext support), unpack the kernel, then use vng -r /path/to/vmlinuz --user root -- scx_simple
and test the scheduler without having to install a custom kernel.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm wondering if we should target
ubuntu-22.04
(or potentially evenubuntu-latest
) instead, in this way we don't have to download llvm 17 or any other external package, all we need is in the distro.
Heh, I'd originally tried to use ubuntu-22.04, but apt-add-repository was hanging for some of the external dependencies. If we can just use everything in the distro itself then that would be great. I'll spin up another PR to try and get it working.
Another cool thing that we could do is to use virtme-ng (https://github.com/arighi/virtme-ng) to actually run the scx schedulers with any kernel that we want. In this case for example, we could apt download the latest kernel from my ppa (with the sched-ext support), unpack the kernel, then use vng -r /path/to/vmlinuz --user root -- scx_simple and test the scheduler without having to install a custom kernel.
It would be great if we could use virtme-ng. I'd actually like to use that with the sched-ext repo as well, so if we can get it figured out here then I'll also get it setup there.
When Ubuntu ships with sched_ext, we can also maybe test loading the schedulers (not sure if the runners can run as root though). For now, we should at least have a CI job that lets us verify that the schedulers can build. To that end, this patch adds a basic CI action that builds the schedulers.
As is, this is a bit brittle in that we're having to manually download and install a few dependencies. I don't see a better way for now without hosting our own runners with our own containers, but that's a bigger investment. For now, hopefully this will get us some coverage.