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

Add support for multiple virtio block devices #220

Open
andreeaflorescu opened this issue Jun 27, 2022 · 1 comment
Open

Add support for multiple virtio block devices #220

andreeaflorescu opened this issue Jun 27, 2022 · 1 comment

Comments

@andreeaflorescu
Copy link
Member

andreeaflorescu commented Jun 27, 2022

Once we integrate the vm-allocator (#132) we will be able to use more than one block & net device respectively. For this to work, we also need to make updates to the kernel command line on x86_64 to add multiple devices, and to the FDT on arm. Also, we need to update the virtio code for the devices because right now at least the block device works with the assumption that there is a single block on /dev/vda. The code that needs to be updated is here: https://github.com/rust-vmm/vmm-reference/tree/main/src/devices/src/virtio

We should add a python tests to check that these devices work. For Block device we could add a scratch device, check that writing in it works? other ideas are welcome

@andreeaflorescu andreeaflorescu moved this to Todo in GSoC 2022 Jun 27, 2022
@andreeaflorescu andreeaflorescu moved this from Todo to Next Items in GSoC 2022 Jun 27, 2022
@ramyak-mehra ramyak-mehra moved this from Next Items to Todo in GSoC 2022 Jul 4, 2022
@andreeaflorescu andreeaflorescu changed the title Test that adding multiple virtio block/net devices work Add support for multiple virtio block/net devices Jul 14, 2022
@ramyak-mehra ramyak-mehra moved this from Todo to In Progress in GSoC 2022 Aug 23, 2022
@andreeaflorescu andreeaflorescu changed the title Add support for multiple virtio block/net devices Add support for multiple virtio block devices Aug 29, 2022
@ramyak-mehra
Copy link
Contributor

I wanted to pick this back up again, Its been a long time since I last saw the codebase. Last when I was working on it, I remember it required changes at mainly 3 places

  1. Accepting multiple block devices
    something on the lines of --block path(Required) is_root, and is_ro
  2. Inside the vm.rs
  3. Inside the virtio block, to accept command line kernel info.

If I remember correctly only root device needs to passed to the kernel command line and rest does not need to be. Can someone clarify this. I remember doing some tests to confirm everything but unfortunately I have lost all the code for that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

No branches or pull requests

2 participants