mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
tests: windows: Disable sparse for DM snapshot OS disks
The Windows tests use a DM snapshot device for the OS disk. DM snapshot targets do not support BLKDISCARD, so the VMM returns IOERR for every TRIM attempt. viostor.sys may BSOD when the host returns an error for negotiated discard/write-zeroes operations. Add a default_disks_sparse_off() helper to GuestCommand and use it in all Windows tests. Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
This commit is contained in:
committed by
Rob Bradford
parent
8a165aef3b
commit
e067c76880
@@ -11537,7 +11537,7 @@ mod windows {
|
||||
.args(["--kernel", edk2_path().to_str().unwrap()])
|
||||
.args(["--serial", "tty"])
|
||||
.args(["--console", "off"])
|
||||
.default_disks()
|
||||
.default_disks_sparse_off()
|
||||
.default_net()
|
||||
.capture_output()
|
||||
.spawn()
|
||||
@@ -11586,7 +11586,7 @@ mod windows {
|
||||
.args([
|
||||
"--disk",
|
||||
format!(
|
||||
"path={},num_queues=4",
|
||||
"path={},num_queues=4,sparse=off",
|
||||
windows_guest
|
||||
.guest()
|
||||
.disk_config
|
||||
@@ -11654,7 +11654,7 @@ mod windows {
|
||||
.args(["--kernel", ovmf_path.to_str().unwrap()])
|
||||
.args(["--serial", "tty"])
|
||||
.args(["--console", "off"])
|
||||
.default_disks()
|
||||
.default_disks_sparse_off()
|
||||
.default_net()
|
||||
.capture_output()
|
||||
.spawn()
|
||||
@@ -11743,7 +11743,7 @@ mod windows {
|
||||
.args(["--kernel", ovmf_path.to_str().unwrap()])
|
||||
.args(["--serial", "tty"])
|
||||
.args(["--console", "off"])
|
||||
.default_disks()
|
||||
.default_disks_sparse_off()
|
||||
.default_net()
|
||||
.capture_output()
|
||||
.spawn()
|
||||
@@ -11818,7 +11818,7 @@ mod windows {
|
||||
.args(["--kernel", ovmf_path.to_str().unwrap()])
|
||||
.args(["--serial", "tty"])
|
||||
.args(["--console", "off"])
|
||||
.default_disks()
|
||||
.default_disks_sparse_off()
|
||||
.default_net()
|
||||
.capture_output()
|
||||
.spawn()
|
||||
@@ -11892,7 +11892,7 @@ mod windows {
|
||||
.args(["--kernel", ovmf_path.to_str().unwrap()])
|
||||
.args(["--serial", "tty"])
|
||||
.args(["--console", "off"])
|
||||
.default_disks()
|
||||
.default_disks_sparse_off()
|
||||
.default_net()
|
||||
.capture_output()
|
||||
.spawn()
|
||||
@@ -11966,7 +11966,7 @@ mod windows {
|
||||
.args(["--kernel", ovmf_path.to_str().unwrap()])
|
||||
.args(["--serial", "tty"])
|
||||
.args(["--console", "off"])
|
||||
.default_disks()
|
||||
.default_disks_sparse_off()
|
||||
.default_net()
|
||||
.capture_output()
|
||||
.spawn()
|
||||
@@ -12062,7 +12062,7 @@ mod windows {
|
||||
.args(["--kernel", ovmf_path.to_str().unwrap()])
|
||||
.args(["--serial", "tty"])
|
||||
.args(["--console", "off"])
|
||||
.default_disks()
|
||||
.default_disks_sparse_off()
|
||||
.default_net()
|
||||
.capture_output()
|
||||
.spawn()
|
||||
@@ -12194,7 +12194,7 @@ mod windows {
|
||||
.args(["--kernel", ovmf_path.to_str().unwrap()])
|
||||
.args(["--serial", "tty"])
|
||||
.args(["--console", "off"])
|
||||
.default_disks()
|
||||
.default_disks_sparse_off()
|
||||
// The multi net dev config is borrowed from test_multiple_network_interfaces
|
||||
.args([
|
||||
"--net",
|
||||
|
||||
@@ -1448,35 +1448,31 @@ impl<'a> GuestCommand<'a> {
|
||||
}
|
||||
|
||||
pub fn default_disks(&mut self) -> &mut Self {
|
||||
if self.guest.disk_config.disk(DiskType::CloudInit).is_some() {
|
||||
self.default_disks_inner(true)
|
||||
}
|
||||
|
||||
pub fn default_disks_sparse_off(&mut self) -> &mut Self {
|
||||
self.default_disks_inner(false)
|
||||
}
|
||||
|
||||
fn default_disks_inner(&mut self, sparse: bool) -> &mut Self {
|
||||
let sparse_opt = if sparse { "" } else { ",sparse=off" };
|
||||
let os_disk = format!(
|
||||
"path={}{}",
|
||||
self.guest
|
||||
.disk_config
|
||||
.disk(DiskType::OperatingSystem)
|
||||
.unwrap(),
|
||||
sparse_opt
|
||||
);
|
||||
if let Some(cloud_init) = self.guest.disk_config.disk(DiskType::CloudInit) {
|
||||
self.args([
|
||||
"--disk",
|
||||
format!(
|
||||
"path={}",
|
||||
self.guest
|
||||
.disk_config
|
||||
.disk(DiskType::OperatingSystem)
|
||||
.unwrap()
|
||||
)
|
||||
.as_str(),
|
||||
format!(
|
||||
"path={}",
|
||||
self.guest.disk_config.disk(DiskType::CloudInit).unwrap()
|
||||
)
|
||||
.as_str(),
|
||||
os_disk.as_str(),
|
||||
format!("path={cloud_init}").as_str(),
|
||||
])
|
||||
} else {
|
||||
self.args([
|
||||
"--disk",
|
||||
format!(
|
||||
"path={}",
|
||||
self.guest
|
||||
.disk_config
|
||||
.disk(DiskType::OperatingSystem)
|
||||
.unwrap()
|
||||
)
|
||||
.as_str(),
|
||||
])
|
||||
self.args(["--disk", os_disk.as_str()])
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user