Skip to content

Initial vhost-user-scsi implementation #4

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

Closed
wants to merge 10 commits into from
Closed

Conversation

Gaelan
Copy link
Contributor

@Gaelan Gaelan commented Jul 20, 2021

Here's an initial implementation of vhost-user-scsi, as part of my GSoC project with @slp. Currently, it supports reading from up to 256 raw images.

For usage documentation and plans for future improvements, see the README; for architectural documentation, see ARCHITECTURE.md and comments in the code.

Although a read-only disk driver is of limited usefulness, I believe this code should be more-or-less production-ready. I've left some TODO comments in the code; these are either for features we'll want to add in the future, or places I want feedback from code reviewers (especially who are familiar with SCSI).

@Gaelan Gaelan force-pushed the scsi-v1 branch 2 times, most recently from 4d1e147 to f2dea3d Compare July 20, 2021 09:29
@Gaelan
Copy link
Contributor Author

Gaelan commented Jul 20, 2021

Looks like the CI is failing, for a strange reason: The tests depend on an image file, which they finds relative to the current directory. This works locally and in the "unittests" phase of CI, but apparently not when collecting coverage data - I guess that infrastructure somehow manages to run tests from a different directory. I'll investigate more carefully tomorrow.

@Gaelan
Copy link
Contributor Author

Gaelan commented Jul 20, 2021

Oh, I forgot: this currently depends on @slp's fork of vhost-user-backend; we'll probably want to merge rust-vmm/vhost-user-backend#18 before we merge this.

@Gaelan
Copy link
Contributor Author

Gaelan commented Aug 10, 2021

Just pushed a test refactor, back ported from my work on write support, that should fix CI.

@Gaelan
Copy link
Contributor Author

Gaelan commented Aug 10, 2021

Ok, well CI still doesn't pass, but now it's for good reasons (a clippy warning I forgot to fix, and needing to change the coverage threshold).

@vireshk
Copy link
Collaborator

vireshk commented Aug 31, 2021

Hi @Gaelan Can you rebase this stuff and fix the conflicts ? I will try to review it then. thanks.

@Gaelan
Copy link
Contributor Author

Gaelan commented Aug 31, 2021

Just rebased, but it looks like something isn't compiling anymore - I think there may have been breaking changes in vhost-user-backend? I'll take a look.

@Gaelan
Copy link
Contributor Author

Gaelan commented Aug 31, 2021

Wait, it's vhost-user-backend itself that doesn't compile. Hmm.

@jiangliu
Copy link
Member

jiangliu commented Sep 1, 2021

Sorry for this, we are refactoring the vhost-user-backend crate. And there's still coming break changes:(

@vireshk
Copy link
Collaborator

vireshk commented Sep 1, 2021

Sorry for this, we are refactoring the vhost-user-backend crate. And there's still coming break changes:(

I don't see any failures on master though (#f57859ea). Perhaps once Gaelan moves to master, this will get fixed.

@vireshk
Copy link
Collaborator

vireshk commented Sep 1, 2021

I don't see any failures on master though (#f57859ea). Perhaps once Gaelan moves to master, this will get fixed.

My bad. I realized it later that Gaelan is basing stuff on new backend stuff.

@Gaelan
Copy link
Contributor Author

Gaelan commented Nov 21, 2021

Alright, I've done a rebase and fixed some breaking changes. I should note that I've run the tests and they pass, but I haven't actually tried to run a real VM with the rebased code—I should have some free time in the next few days to give that a shot.

Sorry for the long delay—I've been busy with school.

Copy link
Collaborator

@stsquad stsquad left a comment

Choose a reason for hiding this comment

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

This test image seems like something we should generate on the developer machine rather than host in the GIT repo.

@@ -0,0 +1,2 @@
/target
target
Copy link
Collaborator

Choose a reason for hiding this comment

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

is this a duplicate? Are we trying to ignore a file called target as well as the build directory?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Not sure what I was thinking there. In any case, this gitignore seems to be an artifact from before I moved the crate into the vhost-device repo, and it doesn't do anything now, so I'll remove it.

Copy link
Collaborator

@stsquad stsquad left a comment

Choose a reason for hiding this comment

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

Sorry about the noise - just getting used to the review tools. See comments inline

@@ -0,0 +1 @@
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444445555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Copy link
Collaborator

Choose a reason for hiding this comment

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

We should generate this file in the build rather than have it in CI

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good idea, done.


```
vhost-user-scsi -r /tmp/vhost-user-scsi.sock /path/to/image.raw /path/to/second-image.raw ...
```
Copy link
Collaborator

Choose a reason for hiding this comment

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

With my testing it crapped out on me:

➜  ./target/debug/vhost-user-scsi -r /tmp/vhost-user-scsi.sock test.img
[2021-12-07T11:46:48Z ERROR vhost_user_scsi] Error running daemon: HandleRequest(InvalidParam)
[src/scsi/src/main.rs:391]

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hmm, not easily reproducing this (AlmaLinux 8.5 host, self-built QEMU 6.2, Debian 11 "nocloud" qcow2 image as guest). Some thoughts:

  • Setting RUST_LOG=debug will get you a better idea of when things go wrong.
  • Does this happen as soon as you start vhost-user-scsi, or after QEMU connects?
  • What QEMU version and guest OS are you running?

let mut f = tempfile().unwrap();
f.write_all(include_bytes!("./test.img")).unwrap();
f
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

See previous comment about including test image in GIT repo.

fn features(&self) -> u64 {
// TODO: Any other ones worth implementing? EVENT_IDX and INDIRECT_DESC
// are supported by virtiofsd
1 << VIRTIO_F_VERSION_1 | VhostUserVirtioFeatures::PROTOCOL_FEATURES.bits() | 1 << 2
Copy link
Collaborator

Choose a reason for hiding this comment

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

Yes you probably want the full set:

    1 << VIRTIO_F_VERSION_1
        | 1 << VIRTIO_F_NOTIFY_ON_EMPTY
        | 1 << VIRTIO_RING_F_INDIRECT_DESC
        | 1 << VIRTIO_RING_F_EVENT_IDX
        | VhostUserVirtioFeatures::PROTOCOL_FEATURES.bits()

drop the hardcoded 1 << 2

@@ -280,12 +551,12 @@ dependencies = [
name = "vhost-device-i2c"
version = "0.1.0"
dependencies = [
"clap",
"clap 3.0.0-beta.2",
Copy link
Collaborator

Choose a reason for hiding this comment

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

Any reason we need an explicit beta version? Comment?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is from vhost-user-i2c, which explicitly requests that version (presumably because it wants 3.0, but 3.0 wasn't released at the time).

vhost-user-scsi depends on clap v2 (via structopt), so adding it made Cargo rename vhost-device-i2c's clap dependency in the lockfile to disambiguate between the two versions in use.

Copy link
Collaborator

Choose a reason for hiding this comment

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

We need to stick with this beta version for now as the next version needs a newer version of Rust (1.54 I think) and the container doesn't support that for now. It is going to be updated soon I heard. Once that is done, we can go to 3.0.7 then.

Copy link

Choose a reason for hiding this comment

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

Hey, this repo is now using the latest rust-vmm-ci with Rust 1.54.

Copy link
Collaborator

Choose a reason for hiding this comment

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

@Gaelan I moved to a non-beta version of clap now and it doesn't support the yaml stuff anymore, but it has a very simple interface available now. Please look at:

#93

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh, clap v3 has structopt built in? That's very cool, I'll look at migrating.

@Gaelan
Copy link
Contributor Author

Gaelan commented Jan 16, 2022

I've pushed my changes here as new commits for now so it's easier to see what changed; we probably should squash them into the original commits before merging this.

Signed-off-by: Gaelan Steele <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
This'll be necessary for tests that involve writing later, but it should
also fix the CI issue, because we're no longer trying to find the test
image file at runtime - instead it's embedded in the test binary then
written to a temp file at runtime.

Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request May 5, 2023
This implements the previously defined interface by emulating the commands
against a file-backed block device.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request May 5, 2023
The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request May 5, 2023
This adds the virtio-specific parts that use the previously formed
interfaces and scsi emulation in order to build a daemon that offers files
from the host system as drives to the guest.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request May 11, 2023
This adds the virtio-specific parts that use the previously formed
interfaces and scsi emulation in order to build a daemon that offers files
from the host system as drives to the guest.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request May 16, 2023
This defines the basic interface that any scsi device will have to
implement (along with some sensing constants that may be useful to share).

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request May 16, 2023
This implements the previously defined interface by emulating the commands
against a file-backed block device.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request May 16, 2023
The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request May 16, 2023
This adds the virtio-specific parts that use the previously formed
interfaces and scsi emulation in order to build a daemon that offers files
from the host system as drives to the guest.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request May 16, 2023
This implements the previously defined interface by emulating the commands
against a file-backed block device.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request May 16, 2023
The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request May 16, 2023
This adds the virtio-specific parts that use the previously formed
interfaces and scsi emulation in order to build a daemon that offers files
from the host system as drives to the guest.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request Jun 2, 2023
This defines the basic interface that any scsi device will have to
implement (along with some sensing constants that may be useful to share).

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request Jun 2, 2023
This implements the previously defined interface by emulating the commands
against a file-backed block device.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request Jun 2, 2023
The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request Jun 2, 2023
This adds the virtio-specific parts that use the previously formed
interfaces and scsi emulation in order to build a daemon that offers files
from the host system as drives to the guest.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request Jun 2, 2023
This defines the basic interface that any scsi device will have to
implement (along with some sensing constants that may be useful to share).

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request Jun 2, 2023
This implements the previously defined interface by emulating the commands
against a file-backed block device.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request Jun 2, 2023
The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request Jun 2, 2023
This adds the virtio-specific parts that use the previously formed
interfaces and scsi emulation in order to build a daemon that offers files
from the host system as drives to the guest.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request Jun 5, 2023
This defines the basic interface that any scsi device will have to
implement (along with some sensing constants that may be useful to share).

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request Jun 5, 2023
This implements the previously defined interface by emulating the commands
against a file-backed block device.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request Jun 5, 2023
The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
Ablu pushed a commit to Ablu/vhost-device that referenced this pull request Jun 5, 2023
This adds the virtio-specific parts that use the previously formed
interfaces and scsi emulation in order to build a daemon that offers files
from the host system as drives to the guest.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] rust-vmm#4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
vireshk pushed a commit that referenced this pull request Jun 5, 2023
This defines the basic interface that any scsi device will have to
implement (along with some sensing constants that may be useful to share).

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] #4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
vireshk pushed a commit that referenced this pull request Jun 5, 2023
This implements the previously defined interface by emulating the commands
against a file-backed block device.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] #4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
vireshk pushed a commit that referenced this pull request Jun 5, 2023
The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] #4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
vireshk pushed a commit that referenced this pull request Jun 5, 2023
This adds the virtio-specific parts that use the previously formed
interfaces and scsi emulation in order to build a daemon that offers files
from the host system as drives to the guest.

The vast majority of this work was done by Gaelan Steele as part of a
GSoC project [1][2].

[1] #4
[2] https://gist.github.com/Gaelan/febec4e4606e1320026a0924c3bf74d0

Co-developed-by: Erik Schilling <[email protected]>
Signed-off-by: Erik Schilling <[email protected]>
Signed-off-by: Gaelan Steele <[email protected]>
@vireshk vireshk closed this Jun 5, 2023
dorindabassey referenced this pull request in dorindabassey/vhost-device Jun 9, 2023
rename typo virtio_snd_config.chmpas -> chmaps
mtjhrc pushed a commit to mtjhrc/vhost-device that referenced this pull request Mar 26, 2024
Initialize rutabaga (VirtioGpu) only once
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.

6 participants