mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-08-22 07:51:16 +00:00
vDPA is a kernel framework introduced fairly recently in order to handle devices complying with virtio specification on their datapath, while the control path is vendor specific. For the datapath, that means the virtqueues are handled through DMA directly between the hardware and the guest, while the control path goes through the vDPA framework, eventually exposed through a vhost-vdpa device. vDPA, like VFIO, aims at achieving baremetal performance for devices that are passed into a VM. But unlike VFIO, it provides a simpler/better framework for achieving migration. Because the DMA accesses between the device and the guest are going through virtio queues, migration can be achieved way more easily, and doesn't require each device driver to implement the migration support. In the VFIO case, each vendor is expected to provide an implementation of the VFIO migration framework, which makes things harder as it must be done for each and every device. So to summarize the point is to support migration for hardware devices through which we can achieve baremetal performances. Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
41 lines
1.1 KiB
TOML
41 lines
1.1 KiB
TOML
[package]
|
|
name = "virtio-devices"
|
|
version = "0.1.0"
|
|
authors = ["The Cloud Hypervisor Authors"]
|
|
edition = "2018"
|
|
|
|
[features]
|
|
default = []
|
|
mshv = []
|
|
|
|
[dependencies]
|
|
anyhow = "1.0.56"
|
|
arc-swap = "1.5.0"
|
|
block_util = { path = "../block_util" }
|
|
byteorder = "1.4.3"
|
|
epoll = "4.3.1"
|
|
event_monitor = { path = "../event_monitor" }
|
|
io-uring = "0.5.2"
|
|
libc = "0.2.120"
|
|
log = "0.4.14"
|
|
net_gen = { path = "../net_gen" }
|
|
net_util = { path = "../net_util" }
|
|
pci = { path = "../pci" }
|
|
rate_limiter = { path = "../rate_limiter" }
|
|
seccompiler = "0.2.0"
|
|
serde = "1.0.136"
|
|
serde_derive = "1.0.136"
|
|
serde_json = "1.0.79"
|
|
thiserror = "1.0.30"
|
|
versionize = "0.1.6"
|
|
versionize_derive = "0.1.4"
|
|
vhost = { version = "0.3.0", features = ["vhost-user-master", "vhost-user-slave", "vhost-kern", "vhost-vdpa"] }
|
|
virtio-bindings = { version = "0.1.0", features = ["virtio-v5_0_0"] }
|
|
virtio-queue = "0.2.0"
|
|
vm-allocator = { path = "../vm-allocator" }
|
|
vm-device = { path = "../vm-device" }
|
|
vm-memory = { version = "0.7.0", features = ["backend-mmap", "backend-atomic", "backend-bitmap"] }
|
|
vm-migration = { path = "../vm-migration" }
|
|
vm-virtio = { path = "../vm-virtio" }
|
|
vmm-sys-util = "0.9.0"
|