From 854e76fb477e83f615456a3e9ff3d2f4a90472cc Mon Sep 17 00:00:00 2001 From: Alex Lyn Date: Mon, 8 Jun 2026 14:28:35 +0800 Subject: [PATCH] kata-types: Enhance related stuff for independent io threads MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refactor comments and tests stuff for independent iothreads. Signed-off-by: Fabiano FidĂȘncio Signed-off-by: Alex Lyn --- src/libs/kata-types/src/annotations/mod.rs | 5 +---- .../kata-types/src/config/hypervisor/mod.rs | 5 +++-- src/libs/kata-types/tests/test_config.rs | 19 ++++++++++++------- .../tests/texture/configuration-anno-0.toml | 2 +- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/libs/kata-types/src/annotations/mod.rs b/src/libs/kata-types/src/annotations/mod.rs index 3e83864602..b2b2cad6cb 100644 --- a/src/libs/kata-types/src/annotations/mod.rs +++ b/src/libs/kata-types/src/annotations/mod.rs @@ -581,10 +581,7 @@ impl Annotation { hv.indep_iothreads = indep_iothreads; } Err(_e) => { - return Err(io::Error::new( - io::ErrorKind::InvalidData, - "failed to parse indep_iothreads", - )); + return Err(u32_err); } }, // Hypervisor Block Device related annotations diff --git a/src/libs/kata-types/src/config/hypervisor/mod.rs b/src/libs/kata-types/src/config/hypervisor/mod.rs index 13dcb42254..6ff534c2be 100644 --- a/src/libs/kata-types/src/config/hypervisor/mod.rs +++ b/src/libs/kata-types/src/config/hypervisor/mod.rs @@ -1720,8 +1720,9 @@ pub struct Hypervisor { /// Enables the use of iothreads (data-plane). /// - /// This is currently implemented for SCSI devices and for virtio-blk - /// hotplug when `indep_iothreads` is greater than 0. + /// This is currently implemented for SCSI devices and for virtio-blk-pci devices + /// that support hotplug when `indep_iothreads` is greater than 0. + /// When enabled, I/O operations are handled in a separate I/O thread. #[serde(default)] pub enable_iothreads: bool, diff --git a/src/libs/kata-types/tests/test_config.rs b/src/libs/kata-types/tests/test_config.rs index 6752a32e0f..8a670ae492 100644 --- a/src/libs/kata-types/tests/test_config.rs +++ b/src/libs/kata-types/tests/test_config.rs @@ -14,12 +14,13 @@ mod tests { KATA_ANNO_CFG_HYPERVISOR_DEFAULT_VCPUS, KATA_ANNO_CFG_HYPERVISOR_ENABLE_GUEST_SWAP, KATA_ANNO_CFG_HYPERVISOR_ENABLE_HUGEPAGES, KATA_ANNO_CFG_HYPERVISOR_ENABLE_IO_THREADS, KATA_ANNO_CFG_HYPERVISOR_FILE_BACKED_MEM_ROOT_DIR, - KATA_ANNO_CFG_HYPERVISOR_GUEST_HOOK_PATH, KATA_ANNO_CFG_HYPERVISOR_JAILER_PATH, - KATA_ANNO_CFG_HYPERVISOR_KERNEL_PATH, KATA_ANNO_CFG_HYPERVISOR_MEMORY_PREALLOC, - KATA_ANNO_CFG_HYPERVISOR_MEMORY_SLOTS, KATA_ANNO_CFG_HYPERVISOR_PATH, - KATA_ANNO_CFG_HYPERVISOR_VHOSTUSER_STORE_PATH, KATA_ANNO_CFG_HYPERVISOR_VIRTIO_FS_DAEMON, - KATA_ANNO_CFG_HYPERVISOR_VIRTIO_FS_EXTRA_ARGS, KATA_ANNO_CFG_HYPERVISOR_VIRTIO_MEM, - KATA_ANNO_CFG_KERNEL_MODULES, KATA_ANNO_CFG_RUNTIME_NAME, + KATA_ANNO_CFG_HYPERVISOR_GUEST_HOOK_PATH, KATA_ANNO_CFG_HYPERVISOR_INDEP_IO_THREADS, + KATA_ANNO_CFG_HYPERVISOR_JAILER_PATH, KATA_ANNO_CFG_HYPERVISOR_KERNEL_PATH, + KATA_ANNO_CFG_HYPERVISOR_MEMORY_PREALLOC, KATA_ANNO_CFG_HYPERVISOR_MEMORY_SLOTS, + KATA_ANNO_CFG_HYPERVISOR_PATH, KATA_ANNO_CFG_HYPERVISOR_VHOSTUSER_STORE_PATH, + KATA_ANNO_CFG_HYPERVISOR_VIRTIO_FS_DAEMON, KATA_ANNO_CFG_HYPERVISOR_VIRTIO_FS_EXTRA_ARGS, + KATA_ANNO_CFG_HYPERVISOR_VIRTIO_MEM, KATA_ANNO_CFG_KERNEL_MODULES, + KATA_ANNO_CFG_RUNTIME_NAME, }; use kata_types::config::KataConfig; use kata_types::config::{QemuConfig, TomlConfig}; @@ -122,6 +123,10 @@ mod tests { KATA_ANNO_CFG_HYPERVISOR_ENABLE_IO_THREADS.to_string(), "false".to_string(), ); + anno_hash.insert( + KATA_ANNO_CFG_HYPERVISOR_INDEP_IO_THREADS.to_string(), + "3".to_string(), + ); anno_hash.insert( KATA_ANNO_CFG_HYPERVISOR_ENABLE_IO_THREADS.to_string(), "false".to_string(), @@ -192,7 +197,7 @@ mod tests { assert!(!hv.memory_info.enable_guest_swap); assert_eq!(hv.memory_info.default_memory, 100); assert!(!hv.enable_iothreads); - assert!(!hv.enable_iothreads); + assert_eq!(hv.indep_iothreads, 3); assert_eq!( hv.memory_info.file_mem_backend, "./test_file_backend_mem_root" diff --git a/src/libs/kata-types/tests/texture/configuration-anno-0.toml b/src/libs/kata-types/tests/texture/configuration-anno-0.toml index dbc165731f..a9ee7b3d69 100644 --- a/src/libs/kata-types/tests/texture/configuration-anno-0.toml +++ b/src/libs/kata-types/tests/texture/configuration-anno-0.toml @@ -19,7 +19,7 @@ default_maxvcpus = 64 machine_type = "q35" confidential_guest = true rootless = true -enable_annotations = ["shared_fs","path", "ctlpath","jailer_path","enable_iothreads","default_memory","memory_slots","enable_mem_prealloc","enable_hugepages","file_mem_backend","enable_virtio_mem","enable_guest_swap","default_vcpus","virtio_fs_extra_args","block_device_driver","vhost_user_store_path","kernel","guest_hook_path","block_device_cache_noflush","virtio_fs_daemon","blk_logical_sector_size","blk_physical_sector_size"] +enable_annotations = ["shared_fs","path", "ctlpath","jailer_path","enable_iothreads","indep_iothreads","default_memory","memory_slots","enable_mem_prealloc","enable_hugepages","file_mem_backend","enable_virtio_mem","enable_guest_swap","default_vcpus","virtio_fs_extra_args","block_device_driver","vhost_user_store_path","kernel","guest_hook_path","block_device_cache_noflush","virtio_fs_daemon","blk_logical_sector_size","blk_physical_sector_size"] machine_accelerators="noapic" default_bridges = 2 default_memory = 128