summary refs log tree commit diff stats
path: root/results/classifier/accel-gemma3:12b/kvm/1376938
blob: 682550b932f62631016f3e414e7c4c3f0aabcdc1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
detect-zeroes=unmap fails to discard in some cases

Under certain circumstances, QEMU 2.1.2 fails to discard the underlaying block. The command to start QEMU is:

qemu-system-x86_64 -machine pc,accel=kvm -m 2G -smp 2 -vga std -usb -usbdevice tablet -drive if=none,id=ff,aio=native,discard=unmap,detect-zeroes=unmap,file=/tmp/test.qcow2 -device virtio-scsi-pci -device scsi-disk,drive=ff -cdrom /media/iso/archlinux-2014.06.01-dual.iso -vnc :1

Steps to reproduce:

 0. qemu-img create -f qcow2 /tmp/test.qcow2 4G
 1. Boot in the guest (Arch Linux x86_64 with Linux 3.14.4)
 2. cat /dev/zero > /dev/sda. Observe a file of 4109M (size measured with `du -m`
 3. cat /dev/zero > /dev/sda
 4. blkdiscard /dev/sda
 5. Observe that test.qcow2 grows larger than 1M (13M in my testing).

The results are more severe when you write other kind of data in step 2, for instance `base64 /dev/zero > /dev/sda` and then continuing with step 3 and 4 will result in a file of 3642M, after blkdiscard.

It makes not much of a difference if I create an ext4 filesystem on top of it and use fstrim (or rm).