mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-08-22 07:51:16 +00:00
Add a 'rate_limit_groups' field to VmConfig that defines a set of named RateLimiterGroups. When the 'rate_limit_group' field of DiskConfig is defined, all virtio-blk queues will be rate-limited by a shared RateLimiterGroup. The lifecycle of all RateLimiterGroups is tied to the Vm. A RateLimiterGroup may exist even if no Disks are configured to use the RateLimiterGroup. Disks may be hot-added or hot-removed from the RateLimiterGroup. When the 'rate_limiter' field of DiskConfig is defined, we construct an anonymous RateLimiterGroup whose lifecycle is tied to the Disk. This is primarily done for api backwards compatability. Importantly, the behavior is not the same! This implementation rate_limits the aggregate bandwidth / iops of an individual disk rather than the bandwidth / iops of an individual queue of a disk. When neither the 'rate_limit_group' or the 'rate_limiter' fields of DiskConfig is defined, the Disk is not rate-limited. Signed-off-by: Thomas Barrett <tbarrett@crusoeenergy.com>
73 lines
2.9 KiB
TOML
73 lines
2.9 KiB
TOML
[package]
|
|
name = "vmm"
|
|
version = "0.1.0"
|
|
authors = ["The Cloud Hypervisor Authors"]
|
|
edition = "2021"
|
|
|
|
[features]
|
|
default = []
|
|
dbus_api = ["blocking", "futures", "zbus"]
|
|
guest_debug = ["kvm", "gdbstub", "gdbstub_arch"]
|
|
igvm = ["hex", "igvm_parser", "igvm_defs", "mshv-bindings", "range_map_vec"]
|
|
io_uring = ["block/io_uring"]
|
|
kvm = ["hypervisor/kvm", "vfio-ioctls/kvm", "vm-device/kvm", "pci/kvm"]
|
|
mshv = ["hypervisor/mshv", "vfio-ioctls/mshv", "vm-device/mshv", "pci/mshv"]
|
|
sev_snp = ["arch/sev_snp", "hypervisor/sev_snp"]
|
|
tdx = ["arch/tdx", "hypervisor/tdx"]
|
|
tracing = ["tracer/tracing"]
|
|
|
|
[dependencies]
|
|
acpi_tables = { git = "https://github.com/rust-vmm/acpi_tables", branch = "main" }
|
|
anyhow = "1.0.75"
|
|
arc-swap = "1.5.1"
|
|
arch = { path = "../arch" }
|
|
bitflags = "2.4.1"
|
|
block = { path = "../block" }
|
|
blocking = { version = "1.5.1", optional = true }
|
|
cfg-if = "1.0.0"
|
|
clap = "4.4.7"
|
|
devices = { path = "../devices" }
|
|
epoll = "4.3.3"
|
|
event_monitor = { path = "../event_monitor" }
|
|
flume = "0.10.14"
|
|
futures = { version = "0.3.27", optional = true }
|
|
gdbstub = { version = "0.7.0", optional = true }
|
|
gdbstub_arch = { version = "0.3.0", optional = true }
|
|
hex = { version = "0.4.3", optional = true }
|
|
hypervisor = { path = "../hypervisor" }
|
|
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 }
|
|
libc = "0.2.147"
|
|
linux-loader = { version = "0.10.0", features = ["elf", "bzimage", "pe"] }
|
|
log = "0.4.20"
|
|
micro_http = { git = "https://github.com/firecracker-microvm/micro-http", branch = "main" }
|
|
mshv-bindings = { git = "https://github.com/rust-vmm/mshv", branch = "main", features = ["with-serde", "fam-wrappers"], optional = true }
|
|
net_util = { path = "../net_util" }
|
|
once_cell = "1.19.0"
|
|
option_parser = { path = "../option_parser" }
|
|
pci = { path = "../pci" }
|
|
range_map_vec = { version = "0.1.0", optional = true }
|
|
rate_limiter = { path = "../rate_limiter" }
|
|
seccompiler = "0.4.0"
|
|
serde = { version = "1.0.168", features = ["rc", "derive"] }
|
|
serde_json = "1.0.109"
|
|
serial_buffer = { path = "../serial_buffer" }
|
|
signal-hook = "0.3.17"
|
|
thiserror = "1.0.52"
|
|
tracer = { path = "../tracer" }
|
|
uuid = "1.3.4"
|
|
versionize = "0.1.10"
|
|
versionize_derive = "0.1.4"
|
|
vfio-ioctls = { git = "https://github.com/rust-vmm/vfio", branch = "main", default-features = false }
|
|
vfio_user = { git = "https://github.com/rust-vmm/vfio-user", branch = "main" }
|
|
virtio-devices = { path = "../virtio-devices" }
|
|
virtio-queue = "0.10.0"
|
|
vm-allocator = { path = "../vm-allocator" }
|
|
vm-device = { path = "../vm-device" }
|
|
vm-memory = { version = "0.13.1", features = ["backend-mmap", "backend-atomic", "backend-bitmap"] }
|
|
vm-migration = { path = "../vm-migration" }
|
|
vm-virtio = { path = "../vm-virtio" }
|
|
vmm-sys-util = { version = "0.11.0", features = ["with-serde"] }
|
|
zbus = { version = "3.11.1", optional = true }
|
|
zerocopy = { version = "0.7.31", features = ["alloc","derive"] }
|