Skip to content
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

Update ci kernel #125

Open
quininer opened this issue Apr 4, 2022 · 13 comments
Open

Update ci kernel #125

quininer opened this issue Apr 4, 2022 · 13 comments
Labels
help wanted Extra attention is needed

Comments

@quininer
Copy link
Member

quininer commented Apr 4, 2022

The kernel version currently running on ci is too old, preventing many features from being stable.

I fork cross image at the time to update the kernel, but it's too old now.
We need a better way to run tests with newer kernels.

@quininer quininer added the help wanted Extra attention is needed label Apr 4, 2022
@quininer quininer added this to the 0.6 milestone Apr 7, 2022
@lperkov
Copy link

lperkov commented Aug 31, 2022

Hello @quininer!

The project seems like a good candidate for contributing. We are starting to use this project, and I am looking for ways we can help.

Would it be possible for you to provide more information about the build servers? I would like to know if it is possible to make a Replica.one image for this purpose.

Thanks,

Luka

cc @jpetrina

@quininer
Copy link
Member Author

quininer commented Sep 1, 2022

@lperkov

Thanks for your interest in this.

Currently ci uses cross + qemu to run the specified image. It's a bit complicated because it uses ssh to communicate with the host, which introduces a lot of dependencies. The tests for io-uring itself have no external dependencies, I think image just needs a sufficiently new kernel, glibc, shell to work.

qemu is a bit too complicated for me and I've been thinking about migrating to firecracker or some other lighter vm.

@jela1337
Copy link

jela1337 commented Sep 2, 2022

Hello @quininer!

I have a couple of questions regarding this issue:

Is this the image with the outdated kernel you are referring to?
Does the OS/kernel of the host have any effect on the tests or is it just the one in the image?
Have you considered self-hosting your CI or GitHub Actions runners?

Thanks,

Alen

cc @lperkov @jpetrina

@quininer
Copy link
Member Author

quininer commented Sep 2, 2022

@jela1337

Yes, it is.
The kernel version of host has no effect on tests, we run the tests in vm.
Self-hosting is too complicated for me. I initially ran tests directly on github actions, but soon the kernel version became outdated, so I started running tests on vm.

@lperkov
Copy link

lperkov commented Sep 2, 2022

@quininer would it be okay with you if we managed the self-hosting? The only thing we would need is to setup the WebHooks to GitHub project so the self-hosted instance gets notified on pull requests & new commits.

We already have a similar setup and that would be easiest for us I think.

@quininer
Copy link
Member Author

quininer commented Sep 3, 2022

@lperkov This sounds like the fastest solution, but I still want a vm solution that can run anywhere.

@lperkov
Copy link

lperkov commented Sep 3, 2022

I don't think that's a problem. You or anyone else can run the VM manually...

@jela1337 & @jpetrina can you please make initial VM for testing so once that is functional we can start automating the process?

@FrankReh
Copy link
Contributor

Is there an update on this? Am I correct in thinking the current ci is using a GitHub ci runner to run cargo cross and cargo cross is using qemu and qemu is pointed to a private linux image.

When I tried this on my ubuntu machine, with docker, cross test --target aarch64-unknown-linux-gnu
failed, not able to build libc v0.2.132.

@jela1337
Copy link

jela1337 commented Dec 2, 2022

Hello,
sorry for the delay. Here are the VMs for testing, with instructions on how to run them.

Could you confirm if they satisfy your needs?

@quininer
Copy link
Member Author

quininer commented Dec 3, 2022

This looks great, but I don't have energy to do it right now. It would be great if someone would try it.

@BrokenWingsIcarus
Copy link

BrokenWingsIcarus commented Feb 16, 2023

@quininer
I know a way to switch the kernel through wsl. But I'm not sure if it's easy to use. At present, it seems that it can run.
see https://github.com/WinSSitaly/WSL-Linux-Kernel/releases
QQ图片20230216230848

@rushilmehra
Copy link
Contributor

Is there a reason we can't just use a more recent version of Ubuntu and remove the VM dependency? Kinda like https://github.com/tokio-rs/tokio-uring/blob/master/.github/workflows/ci.yml#L19

@quininer
Copy link
Member Author

quininer commented Mar 4, 2023

@rushilmehra We can use host kernel, vm kernel version is outdated anyway. but even with host kernel, the latest features are still not available for testing on ci.

@quininer quininer removed this from the 0.6 milestone Mar 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

6 participants