rust-vmm / rust-vmm-container

Container with all dependencies required for running rust-vmm crates integration tests.
Apache License 2.0
65 stars 32 forks source link

RISC-V support #108

Open stefano-garzarella opened 1 month ago

stefano-garzarella commented 1 month ago

There are several requests to support RISC-V, so let's create this issue to monitor the current status.

stefano-garzarella commented 1 month ago

@endeneer @TimePrinciple we have several PRs opened. Can you try to summarize below which ones we need, if there are dependencies between them, and which ones are duplicated?

It's a little confusing for reviewers which ones to start with.

As of now, these are the open PR:

  1. https://github.com/rust-vmm/rust-vmm-container/pull/91
  2. https://github.com/rust-vmm/rust-vmm-container/pull/101
  3. https://github.com/rust-vmm/rust-vmm-container/pull/104
  4. https://github.com/rust-vmm/rust-vmm-container/pull/106
TimePrinciple commented 1 month ago

101, #104, #106 are three independent proposals I raised to work out the appropriate way to do RISC-V CI.

In #101, I proposed using qemu-user-static to run cargo test, which might work with some crates, but will eventually fail with kvm-ioctls and crates need the presence of /dev/kvm, so I moved on to the second draft.

In #104, I proposed a standard way just like other architectures (x86_64, arm64) did, introduced riscv64 support for buildkite-agent, and that should be the "right" way when AWS has riscv64 machines available. Therefore, I have worked out my third draft.

In #106, the third draft bears some similarity with #91 in image building stage, and thanks to @endeneer's work which I found very heuristic and helpful. In my proposal, I used ssh to produce the original output that cargo and any other commands may produce. And this approach essentially runs everything related to riscv64 inside qemu-system-riscv64 instead of cross compilation, enabling us to finally come to use build_container.sh just like other architectures did.

In short, my proposals are completely independent, while one may not seem to be appropriate at this moment. Thus, I'm closing #101, leaving #104 open until riscv64 machines are available to AWS, #106 are the one we worth discussing and reviewing at the time being.

stefano-garzarella commented 1 month ago

In short, my proposals are completely independent, while one may not seem to be appropriate at this moment. Thus, I'm closing https://github.com/rust-vmm/rust-vmm-container/pull/101, leaving https://github.com/rust-vmm/rust-vmm-container/pull/104 open until riscv64 machines are available to AWS, https://github.com/rust-vmm/rust-vmm-container/pull/106 are the one we worth discussing and reviewing at the time being.

@TimePrinciple thanks for the recap!

Should we mark #104 as Draft while waiting AWS support for riscv64? Are #91 and #106 in conflict?

TimePrinciple commented 1 month ago

In short, my proposals are completely independent, while one may not seem to be appropriate at this moment. Thus, I'm closing #101, leaving #104 open until riscv64 machines are available to AWS, #106 are the one we worth discussing and reviewing at the time being.

@TimePrinciple thanks for the recap!

Should we mark #104 as Draft while waiting AWS support for riscv64? Are #91 and #106 in conflict?

Yes, #91 and #106 are one way or the other.

I'll mark #104 now :)