From e0caeb32fc67702ff60d4c785d3a5d2b032905cd Mon Sep 17 00:00:00 2001 From: Fupan Li Date: Wed, 10 Sep 2025 17:38:51 +0800 Subject: [PATCH] runtime-rs: move the rate limiter to hypervisor config Since the rate limiter would be shared by cloud-hypervisor and firecracker etc, thus move it from clh's config to hypervisor config crate which would be shared by other vmm. Signed-off-by: Fupan Li --- src/libs/kata-types/src/config/hypervisor/mod.rs | 3 +++ .../kata-types/src/config/hypervisor/rate_limiter.rs} | 5 +++++ src/runtime-rs/crates/hypervisor/ch-config/src/lib.rs | 3 +-- src/runtime-rs/crates/hypervisor/src/ch/inner_device.rs | 5 ++--- 4 files changed, 11 insertions(+), 5 deletions(-) rename src/{runtime-rs/crates/hypervisor/ch-config/src/virtio_devices.rs => libs/kata-types/src/config/hypervisor/rate_limiter.rs} (96%) diff --git a/src/libs/kata-types/src/config/hypervisor/mod.rs b/src/libs/kata-types/src/config/hypervisor/mod.rs index 6fa16e66f0..25bb1d297d 100644 --- a/src/libs/kata-types/src/config/hypervisor/mod.rs +++ b/src/libs/kata-types/src/config/hypervisor/mod.rs @@ -48,6 +48,9 @@ pub use self::ch::{CloudHypervisorConfig, HYPERVISOR_NAME_CH}; mod remote; pub use self::remote::{RemoteConfig, HYPERVISOR_NAME_REMOTE}; +mod rate_limiter; +pub use self::rate_limiter::RateLimiterConfig; + /// Virtual PCI block device driver. pub const VIRTIO_BLK_PCI: &str = "virtio-blk-pci"; diff --git a/src/runtime-rs/crates/hypervisor/ch-config/src/virtio_devices.rs b/src/libs/kata-types/src/config/hypervisor/rate_limiter.rs similarity index 96% rename from src/runtime-rs/crates/hypervisor/ch-config/src/virtio_devices.rs rename to src/libs/kata-types/src/config/hypervisor/rate_limiter.rs index 0836f9b999..6533c27ae7 100644 --- a/src/runtime-rs/crates/hypervisor/ch-config/src/virtio_devices.rs +++ b/src/libs/kata-types/src/config/hypervisor/rate_limiter.rs @@ -1,5 +1,7 @@ // Copyright (c) 2022-2023 Intel Corporation // +// Copyright (c) 2024-2025 Ant Group +// // SPDX-License-Identifier: Apache-2.0 use serde::{Deserialize, Serialize}; @@ -16,10 +18,13 @@ pub struct TokenBucketConfig { pub refill_time: u64, } +/// Rate limiter configuration for rust vmm hypervisor #[derive(Clone, Copy, Debug, Default, Deserialize, Serialize, PartialEq, Eq)] #[serde(deny_unknown_fields)] pub struct RateLimiterConfig { + /// Bandwidth rate limiter options pub bandwidth: Option, + /// Operations rate limiter options pub ops: Option, } diff --git a/src/runtime-rs/crates/hypervisor/ch-config/src/lib.rs b/src/runtime-rs/crates/hypervisor/ch-config/src/lib.rs index 6538f57d55..8620308cb0 100644 --- a/src/runtime-rs/crates/hypervisor/ch-config/src/lib.rs +++ b/src/runtime-rs/crates/hypervisor/ch-config/src/lib.rs @@ -9,11 +9,10 @@ use std::path::PathBuf; pub mod ch_api; pub mod convert; pub mod net_util; -mod virtio_devices; -pub use crate::virtio_devices::RateLimiterConfig; use kata_sys_util::protection::GuestProtection; use kata_types::config::hypervisor::Hypervisor as HypervisorConfig; +use kata_types::config::hypervisor::RateLimiterConfig; pub use net_util::MacAddr; pub const MAX_NUM_PCI_SEGMENTS: u16 = 16; diff --git a/src/runtime-rs/crates/hypervisor/src/ch/inner_device.rs b/src/runtime-rs/crates/hypervisor/src/ch/inner_device.rs index 75009ba94d..4d6f0b8faf 100644 --- a/src/runtime-rs/crates/hypervisor/src/ch/inner_device.rs +++ b/src/runtime-rs/crates/hypervisor/src/ch/inner_device.rs @@ -24,9 +24,8 @@ use ch_config::ch_api::{ }; use ch_config::convert::{DEFAULT_DISK_QUEUES, DEFAULT_DISK_QUEUE_SIZE, DEFAULT_NUM_PCI_SEGMENTS}; use ch_config::DiskConfig; -use ch_config::{ - net_util::MacAddr, DeviceConfig, FsConfig, NetConfig, RateLimiterConfig, VsockConfig, -}; +use ch_config::{net_util::MacAddr, DeviceConfig, FsConfig, NetConfig, VsockConfig}; +use kata_types::config::hypervisor::RateLimiterConfig; use safe_path::scoped_join; use std::convert::TryFrom; use std::path::PathBuf;