|
|
e98b86 |
From 780525f32851c0daaf4250dc734ba73d1571c1c1 Mon Sep 17 00:00:00 2001
|
|
|
e98b86 |
From: Felipe Borges <felipeborges@gnome.org>
|
|
|
e98b86 |
Date: Mon, 2 Nov 2020 15:35:36 +0100
|
|
|
e98b86 |
Subject: [PATCH] vm-configurator: Pass discard "unmap" to virtio-blk disks
|
|
|
e98b86 |
|
|
|
e98b86 |
Ever since QEMU 4.0, virtio-blk disks have discard support[0]. For
|
|
|
e98b86 |
this reason, we don't need to migrate to virtio-scsi[1] to benefit from
|
|
|
e98b86 |
discard support.
|
|
|
e98b86 |
|
|
|
e98b86 |
See also https://chrisirwin.ca/posts/discard-with-kvm-2020/
|
|
|
e98b86 |
|
|
|
e98b86 |
[0] https://bugzilla.redhat.com/1672680
|
|
|
e98b86 |
[1] https://bugzilla.redhat.com/1152037
|
|
|
e98b86 |
|
|
|
e98b86 |
Fixes #35
|
|
|
e98b86 |
---
|
|
|
e98b86 |
src/vm-configurator.vala | 11 ++++++++---
|
|
|
e98b86 |
1 file changed, 8 insertions(+), 3 deletions(-)
|
|
|
e98b86 |
|
|
|
e98b86 |
diff --git a/src/vm-configurator.vala b/src/vm-configurator.vala
|
|
|
e98b86 |
index ee8cf133..f2a50bb8 100644
|
|
|
e98b86 |
--- a/src/vm-configurator.vala
|
|
|
e98b86 |
+++ b/src/vm-configurator.vala
|
|
|
e98b86 |
@@ -343,16 +343,21 @@ public static void set_target_media_config (Domain domain,
|
|
|
e98b86 |
var disk = new DomainDisk ();
|
|
|
e98b86 |
disk.set_type (DomainDiskType.FILE);
|
|
|
e98b86 |
disk.set_guest_device_type (DomainDiskGuestDeviceType.DISK);
|
|
|
e98b86 |
- disk.set_driver_name ("qemu");
|
|
|
e98b86 |
- disk.set_driver_format (DomainDiskFormat.QCOW2);
|
|
|
e98b86 |
disk.set_source (target_path);
|
|
|
e98b86 |
- disk.set_driver_cache (DomainDiskCacheType.WRITEBACK);
|
|
|
e98b86 |
+
|
|
|
e98b86 |
+ var driver = new DomainDiskDriver ();
|
|
|
e98b86 |
+ driver.set_name ("qemu");
|
|
|
e98b86 |
+ driver.set_format (DomainDiskFormat.QCOW2);
|
|
|
e98b86 |
+ driver.set_cache (DomainDiskCacheType.WRITEBACK);
|
|
|
e98b86 |
+ disk.set_driver (driver);
|
|
|
e98b86 |
|
|
|
e98b86 |
var dev_letter_str = ((char) (dev_index + 97)).to_string ();
|
|
|
e98b86 |
if (install_media.supports_virtio_disk || install_media.supports_virtio1_disk) {
|
|
|
e98b86 |
debug ("Using virtio controller for the main disk");
|
|
|
e98b86 |
disk.set_target_bus (DomainDiskBus.VIRTIO);
|
|
|
e98b86 |
disk.set_target_dev ("vd" + dev_letter_str);
|
|
|
e98b86 |
+
|
|
|
e98b86 |
+ driver.set_discard (DomainDiskDriverDiscard.UNMAP);
|
|
|
e98b86 |
} else {
|
|
|
e98b86 |
if (install_media.prefers_q35) {
|
|
|
e98b86 |
debug ("Using SATA controller for the main disk");
|
|
|
e98b86 |
--
|
|
|
e98b86 |
2.26.2
|
|
|
e98b86 |
|