I am attempting to enable discard support on the virtio-blk device on a QEMU VM
however it isn't working. My understanding is that this is enabled in QEMU >=
4.0, so I am not sure why this isn't working:
Host OS: Ubuntu 20.04 (kernel 5.4.0)
Guest OS: Ubuntu 18.04 (kernel 4.15.0)
<type arch='x86_64' machine='pc-q35-4.2'>hvm</type>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' discard='unmap'/>
<source file='/var/lib/libvirt/images/myvm.qcow2' index='1'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
What are the values for machine type that will support discard on virtio-blk?
Anything 4.0 or greater (e.g. would pc-i440fx-4.0 work too)?
I can see from the host's perspective that the guest appears to have discard
enabled because the following command shows "discard = true":
# virsh qemu-monitor-command myvm --hmp info qtree | grep discard
yet inside the VM, even with the "discard" mount option set:
# for f in /sys/block/vda/queue/discard_*; do echo $f; cat $f; done
Are the virtio drivers in the guest kernel too old to support discard on
virtio-blk? Or is something else missing?