From c8fee5953fe8e2308474c9a3601c2b57e44482bc Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Fri, 27 Mar 2026 11:40:22 +0100 Subject: [PATCH] performance-metrics: Add async QCOW2 overlay tempfile helper Add qcow_async_overlay_tempfile which creates a QCOW2 overlay backed by a RAW file and opens it via QcowDiskAsync. Mirrors the existing qcow_overlay_tempfile for io_uring benchmarks. Signed-off-by: Anatol Belski --- performance-metrics/src/util.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/performance-metrics/src/util.rs b/performance-metrics/src/util.rs index f9f322f22..c96d07253 100644 --- a/performance-metrics/src/util.rs +++ b/performance-metrics/src/util.rs @@ -196,6 +196,14 @@ pub fn qcow_overlay_tempfile(num_clusters: usize) -> (TempFile, TempFile, QcowDi (backing, overlay, disk) } +/// QCOW2 overlay with raw backing opened via QcowDiskAsync. +pub fn qcow_async_overlay_tempfile(num_clusters: usize) -> (TempFile, TempFile, QcowDiskAsync) { + let (backing, overlay) = create_overlay_tempfiles(num_clusters); + let disk = QcowDiskAsync::new(overlay.as_file().try_clone().unwrap(), false, true, true) + .expect("failed to open overlay qcow2 via QcowDiskAsync"); + (backing, overlay, disk) +} + /// Create a zlib compressed QCOW2 image with `num_clusters` clusters /// via `qemu-img convert -c`. fn create_compressed_qcow_tempfile(num_clusters: usize) -> TempFile {