diff --git a/agent/conf/agent.properties b/agent/conf/agent.properties index ce9c9c11495..d2f87d66c10 100644 --- a/agent/conf/agent.properties +++ b/agent/conf/agent.properties @@ -288,3 +288,6 @@ iscsi.session.cleanup.enabled=false # Manually set the host CPU MHz, in cases where CPU scaling support detected value is wrong # host.cpu.manual.speed.mhz=0 + +# Enable/disable IO driver for Qemu / It's enabled by default on KVM agents +# enable.io.uring=true diff --git a/agent/src/main/java/com/cloud/agent/properties/AgentProperties.java b/agent/src/main/java/com/cloud/agent/properties/AgentProperties.java index 657876c13ac..980c9b080aa 100644 --- a/agent/src/main/java/com/cloud/agent/properties/AgentProperties.java +++ b/agent/src/main/java/com/cloud/agent/properties/AgentProperties.java @@ -54,6 +54,13 @@ public class AgentProperties{ */ public static final Property ENABLE_MANUALLY_SETTING_CPU_TOPOLOGY_ON_KVM_VM = new Property("enable.manually.setting.cpu.topology.on.kvm.vm", true); + /** + * Enable manually IO driver on KVM's VM.
+ * Data type: boolean.
+ * Default value: true. + */ + public static final Property ENABLE_IO_URING = new Property("enable.io.uring", true); + public static class Property { private final String name; private final T defaultValue; diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index b7f8c330879..3a0f3100f7d 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -2994,7 +2994,9 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv * (ii) Libvirt >= 6.3.0 */ protected void setDiskIoDriver(DiskDef disk) { - if (getHypervisorLibvirtVersion() >= HYPERVISOR_LIBVIRT_VERSION_SUPPORTS_IO_URING && getHypervisorQemuVersion() >= HYPERVISOR_QEMU_VERSION_SUPPORTS_IO_URING) { + if (getHypervisorLibvirtVersion() >= HYPERVISOR_LIBVIRT_VERSION_SUPPORTS_IO_URING + && getHypervisorQemuVersion() >= HYPERVISOR_QEMU_VERSION_SUPPORTS_IO_URING + && AgentPropertiesFileHandler.getPropertyValue(AgentProperties.ENABLE_IO_URING)) { disk.setIoDriver(DiskDef.IoDriver.IOURING); } }