2019-02-22 16:04:35 +00:00
|
|
|
[package]
|
|
|
|
name = "vmm"
|
|
|
|
version = "0.1.0"
|
|
|
|
authors = ["The Cloud Hypervisor Authors"]
|
2022-04-08 15:11:04 +00:00
|
|
|
edition = "2021"
|
2019-02-22 16:04:35 +00:00
|
|
|
|
2019-09-03 13:54:06 +00:00
|
|
|
[features]
|
2019-09-05 15:29:55 +00:00
|
|
|
default = []
|
2023-03-22 21:03:02 +00:00
|
|
|
dbus_api = ["blocking", "futures", "zbus"]
|
2022-09-27 11:17:40 +00:00
|
|
|
guest_debug = ["kvm", "gdbstub", "gdbstub_arch"]
|
2023-10-10 23:08:22 +00:00
|
|
|
igvm = ["hex", "igvm_parser", "igvm_defs", "mshv-bindings", "range_map_vec"]
|
2023-07-12 02:24:28 +00:00
|
|
|
io_uring = ["block/io_uring"]
|
2021-09-02 09:44:08 +00:00
|
|
|
kvm = ["hypervisor/kvm", "vfio-ioctls/kvm", "vm-device/kvm", "pci/kvm"]
|
2022-08-04 22:01:54 +00:00
|
|
|
mshv = ["hypervisor/mshv", "vfio-ioctls/mshv", "vm-device/mshv", "pci/mshv"]
|
2022-10-11 09:58:00 +00:00
|
|
|
sev_snp = ["arch/sev_snp", "hypervisor/sev_snp"]
|
2021-02-12 15:17:18 +00:00
|
|
|
tdx = ["arch/tdx", "hypervisor/tdx"]
|
2022-06-21 14:01:26 +00:00
|
|
|
tracing = ["tracer/tracing"]
|
2019-09-03 13:54:06 +00:00
|
|
|
|
2019-02-22 16:04:35 +00:00
|
|
|
[dependencies]
|
2023-02-10 15:37:30 +00:00
|
|
|
acpi_tables = { git = "https://github.com/rust-vmm/acpi_tables", branch = "main" }
|
2024-01-08 22:39:02 +00:00
|
|
|
anyhow = "1.0.79"
|
2022-08-02 07:14:59 +00:00
|
|
|
arc-swap = "1.5.1"
|
2019-02-28 13:16:58 +00:00
|
|
|
arch = { path = "../arch" }
|
2023-10-18 23:10:01 +00:00
|
|
|
bitflags = "2.4.1"
|
2023-07-12 02:24:28 +00:00
|
|
|
block = { path = "../block" }
|
2023-12-20 23:43:13 +00:00
|
|
|
blocking = { version = "1.5.1", optional = true }
|
2022-12-20 04:39:20 +00:00
|
|
|
cfg-if = "1.0.0"
|
2023-11-08 16:24:34 +00:00
|
|
|
clap = "4.4.7"
|
2019-03-07 13:56:43 +00:00
|
|
|
devices = { path = "../devices" }
|
2023-07-04 23:04:49 +00:00
|
|
|
epoll = "4.3.3"
|
2021-02-17 11:24:36 +00:00
|
|
|
event_monitor = { path = "../event_monitor" }
|
2023-08-13 20:32:44 +00:00
|
|
|
flume = "0.10.14"
|
2023-03-22 21:03:02 +00:00
|
|
|
futures = { version = "0.3.27", optional = true }
|
2024-01-25 23:27:07 +00:00
|
|
|
gdbstub = { version = "0.7.1", optional = true }
|
2023-12-01 23:36:37 +00:00
|
|
|
gdbstub_arch = { version = "0.3.0", optional = true }
|
2023-10-10 23:08:22 +00:00
|
|
|
hex = { version = "0.4.3", optional = true }
|
2020-06-02 02:29:54 +00:00
|
|
|
hypervisor = { path = "../hypervisor" }
|
2023-12-11 11:50:06 +00:00
|
|
|
igvm_defs = { git = "https://github.com/microsoft/igvm", branch = "main", package = "igvm_defs", optional = true }
|
|
|
|
igvm_parser = { git = "https://github.com/microsoft/igvm", branch = "main", package = "igvm", optional = true }
|
2023-08-14 23:59:13 +00:00
|
|
|
libc = "0.2.147"
|
build: Bump vmm-sys-util crate and its consumers
This patch bumps the following crates, including `kvm-bindings@0.7.0`*,
`kvm-ioctls@0.16.0`**, `linux-loader@0.11.0`, `versionize@0.2.0`,
`versionize_derive@0.1.6`***, `vhost@0.10.0`,
`vhost-user-backend@0.13.1`, `virtio-queue@0.11.0`, `vm-memory@0.14.0`,
`vmm-sys-util@0.12.1`, and the latest of `vfio-bindings`, `vfio-ioctls`,
`mshv-bindings`,`mshv-ioctls`, and `vfio-user`.
* A fork of the `kvm-bindings` crate is being used to support
serialization of various structs for migration [1]. Also, code changes
are made to accommodate the updated `struct xsave` from the Linux
kernel. Note: these changes related to `struct xsave` break
live-upgrade.
** The new `kvm-ioctls` crate introduced breaking changes for
the `get/set_one_reg` API on `aarch64` [2], so code changes are made to
the new APIs.
*** A fork of the `versionize_derive` crate is being used to support
versionize on packed structs [3].
[1] https://github.com/cloud-hypervisor/kvm-bindings/tree/ch-v0.7.0
[2] https://github.com/rust-vmm/kvm-ioctls/pull/223
[3] https://github.com/cloud-hypervisor/versionize_derive/tree/ch-0.1.6
Fixes: #6072
Signed-off-by: Bo Chen <chen.bo@intel.com>
2024-01-23 17:29:40 +00:00
|
|
|
linux-loader = { version = "0.11.0", features = ["elf", "bzimage", "pe"] }
|
2023-11-23 23:47:38 +00:00
|
|
|
log = "0.4.20"
|
2021-04-19 12:10:11 +00:00
|
|
|
micro_http = { git = "https://github.com/firecracker-microvm/micro-http", branch = "main" }
|
2023-10-10 23:08:22 +00:00
|
|
|
mshv-bindings = { git = "https://github.com/rust-vmm/mshv", branch = "main", features = ["with-serde", "fam-wrappers"], optional = true }
|
2019-05-09 15:01:42 +00:00
|
|
|
net_util = { path = "../net_util" }
|
2023-12-21 23:35:50 +00:00
|
|
|
once_cell = "1.19.0"
|
2020-07-06 15:41:45 +00:00
|
|
|
option_parser = { path = "../option_parser" }
|
2020-10-15 15:34:35 +00:00
|
|
|
pci = { path = "../pci" }
|
2023-10-10 23:08:22 +00:00
|
|
|
range_map_vec = { version = "0.1.0", optional = true }
|
2023-12-07 19:45:08 +00:00
|
|
|
rate_limiter = { path = "../rate_limiter" }
|
2023-10-30 18:31:10 +00:00
|
|
|
seccompiler = "0.4.0"
|
2024-01-25 10:16:09 +00:00
|
|
|
serde = { version = "1.0.193", features = ["rc", "derive"] }
|
2024-01-01 23:24:19 +00:00
|
|
|
serde_json = "1.0.109"
|
2022-08-25 08:26:59 +00:00
|
|
|
serial_buffer = { path = "../serial_buffer" }
|
2023-08-01 23:45:19 +00:00
|
|
|
signal-hook = "0.3.17"
|
2023-12-29 23:11:34 +00:00
|
|
|
thiserror = "1.0.52"
|
2022-06-21 14:01:26 +00:00
|
|
|
tracer = { path = "../tracer" }
|
2023-06-14 23:58:03 +00:00
|
|
|
uuid = "1.3.4"
|
build: Bump vmm-sys-util crate and its consumers
This patch bumps the following crates, including `kvm-bindings@0.7.0`*,
`kvm-ioctls@0.16.0`**, `linux-loader@0.11.0`, `versionize@0.2.0`,
`versionize_derive@0.1.6`***, `vhost@0.10.0`,
`vhost-user-backend@0.13.1`, `virtio-queue@0.11.0`, `vm-memory@0.14.0`,
`vmm-sys-util@0.12.1`, and the latest of `vfio-bindings`, `vfio-ioctls`,
`mshv-bindings`,`mshv-ioctls`, and `vfio-user`.
* A fork of the `kvm-bindings` crate is being used to support
serialization of various structs for migration [1]. Also, code changes
are made to accommodate the updated `struct xsave` from the Linux
kernel. Note: these changes related to `struct xsave` break
live-upgrade.
** The new `kvm-ioctls` crate introduced breaking changes for
the `get/set_one_reg` API on `aarch64` [2], so code changes are made to
the new APIs.
*** A fork of the `versionize_derive` crate is being used to support
versionize on packed structs [3].
[1] https://github.com/cloud-hypervisor/kvm-bindings/tree/ch-v0.7.0
[2] https://github.com/rust-vmm/kvm-ioctls/pull/223
[3] https://github.com/cloud-hypervisor/versionize_derive/tree/ch-0.1.6
Fixes: #6072
Signed-off-by: Bo Chen <chen.bo@intel.com>
2024-01-23 17:29:40 +00:00
|
|
|
versionize = "0.2.0"
|
|
|
|
versionize_derive = "0.1.6"
|
2022-02-04 10:58:01 +00:00
|
|
|
vfio-ioctls = { git = "https://github.com/rust-vmm/vfio", branch = "main", default-features = false }
|
2023-02-21 09:19:36 +00:00
|
|
|
vfio_user = { git = "https://github.com/rust-vmm/vfio-user", branch = "main" }
|
2020-10-15 15:54:56 +00:00
|
|
|
virtio-devices = { path = "../virtio-devices" }
|
build: Bump vmm-sys-util crate and its consumers
This patch bumps the following crates, including `kvm-bindings@0.7.0`*,
`kvm-ioctls@0.16.0`**, `linux-loader@0.11.0`, `versionize@0.2.0`,
`versionize_derive@0.1.6`***, `vhost@0.10.0`,
`vhost-user-backend@0.13.1`, `virtio-queue@0.11.0`, `vm-memory@0.14.0`,
`vmm-sys-util@0.12.1`, and the latest of `vfio-bindings`, `vfio-ioctls`,
`mshv-bindings`,`mshv-ioctls`, and `vfio-user`.
* A fork of the `kvm-bindings` crate is being used to support
serialization of various structs for migration [1]. Also, code changes
are made to accommodate the updated `struct xsave` from the Linux
kernel. Note: these changes related to `struct xsave` break
live-upgrade.
** The new `kvm-ioctls` crate introduced breaking changes for
the `get/set_one_reg` API on `aarch64` [2], so code changes are made to
the new APIs.
*** A fork of the `versionize_derive` crate is being used to support
versionize on packed structs [3].
[1] https://github.com/cloud-hypervisor/kvm-bindings/tree/ch-v0.7.0
[2] https://github.com/rust-vmm/kvm-ioctls/pull/223
[3] https://github.com/cloud-hypervisor/versionize_derive/tree/ch-0.1.6
Fixes: #6072
Signed-off-by: Bo Chen <chen.bo@intel.com>
2024-01-23 17:29:40 +00:00
|
|
|
virtio-queue = "0.11.0"
|
2019-05-06 17:27:40 +00:00
|
|
|
vm-allocator = { path = "../vm-allocator" }
|
2019-11-18 23:24:31 +00:00
|
|
|
vm-device = { path = "../vm-device" }
|
build: Bump vmm-sys-util crate and its consumers
This patch bumps the following crates, including `kvm-bindings@0.7.0`*,
`kvm-ioctls@0.16.0`**, `linux-loader@0.11.0`, `versionize@0.2.0`,
`versionize_derive@0.1.6`***, `vhost@0.10.0`,
`vhost-user-backend@0.13.1`, `virtio-queue@0.11.0`, `vm-memory@0.14.0`,
`vmm-sys-util@0.12.1`, and the latest of `vfio-bindings`, `vfio-ioctls`,
`mshv-bindings`,`mshv-ioctls`, and `vfio-user`.
* A fork of the `kvm-bindings` crate is being used to support
serialization of various structs for migration [1]. Also, code changes
are made to accommodate the updated `struct xsave` from the Linux
kernel. Note: these changes related to `struct xsave` break
live-upgrade.
** The new `kvm-ioctls` crate introduced breaking changes for
the `get/set_one_reg` API on `aarch64` [2], so code changes are made to
the new APIs.
*** A fork of the `versionize_derive` crate is being used to support
versionize on packed structs [3].
[1] https://github.com/cloud-hypervisor/kvm-bindings/tree/ch-v0.7.0
[2] https://github.com/rust-vmm/kvm-ioctls/pull/223
[3] https://github.com/cloud-hypervisor/versionize_derive/tree/ch-0.1.6
Fixes: #6072
Signed-off-by: Bo Chen <chen.bo@intel.com>
2024-01-23 17:29:40 +00:00
|
|
|
vm-memory = { version = "0.14.0", features = ["backend-mmap", "backend-atomic", "backend-bitmap"] }
|
2019-05-01 16:59:51 +00:00
|
|
|
vm-migration = { path = "../vm-migration" }
|
2019-10-07 17:48:44 +00:00
|
|
|
vm-virtio = { path = "../vm-virtio" }
|
build: Bump vmm-sys-util crate and its consumers
This patch bumps the following crates, including `kvm-bindings@0.7.0`*,
`kvm-ioctls@0.16.0`**, `linux-loader@0.11.0`, `versionize@0.2.0`,
`versionize_derive@0.1.6`***, `vhost@0.10.0`,
`vhost-user-backend@0.13.1`, `virtio-queue@0.11.0`, `vm-memory@0.14.0`,
`vmm-sys-util@0.12.1`, and the latest of `vfio-bindings`, `vfio-ioctls`,
`mshv-bindings`,`mshv-ioctls`, and `vfio-user`.
* A fork of the `kvm-bindings` crate is being used to support
serialization of various structs for migration [1]. Also, code changes
are made to accommodate the updated `struct xsave` from the Linux
kernel. Note: these changes related to `struct xsave` break
live-upgrade.
** The new `kvm-ioctls` crate introduced breaking changes for
the `get/set_one_reg` API on `aarch64` [2], so code changes are made to
the new APIs.
*** A fork of the `versionize_derive` crate is being used to support
versionize on packed structs [3].
[1] https://github.com/cloud-hypervisor/kvm-bindings/tree/ch-v0.7.0
[2] https://github.com/rust-vmm/kvm-ioctls/pull/223
[3] https://github.com/cloud-hypervisor/versionize_derive/tree/ch-0.1.6
Fixes: #6072
Signed-off-by: Bo Chen <chen.bo@intel.com>
2024-01-23 17:29:40 +00:00
|
|
|
vmm-sys-util = { version = "0.12.1", features = ["with-serde"] }
|
2023-03-22 21:03:02 +00:00
|
|
|
zbus = { version = "3.11.1", optional = true }
|
2024-01-26 23:43:53 +00:00
|
|
|
zerocopy = { version = "0.7.32", features = ["alloc","derive"] }
|