On Fri, Jul 27, 2012 at 09:01:38PM +0200, Paolo Bonzini wrote: > Or just finish up discard support and use the existing fstrim command of > qemu-ga. :)
What's actually involved to do this? I noticed that a virtio-scsi on qcow2 v3 device exported to the guest does not appear to support TRIM at all (see attached test script and output). Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org
test.sh
Description: Bourne shell script
Formatting 'test1.qcow2', fmt=qcow2 size=104857600 compat='1.1' encryption=off cluster_size=65536 libguestfs: trace: add_drive "test1.qcow2" libguestfs: trace: add_drive = 0 libguestfs: trace: launch libguestfs: trace: launch = 0 libguestfs: trace: debug "sh" "uname -a" libguestfs: trace: debug = "Linux (none) 3.5.0-1.fc18.x86_64 #1 SMP Mon Jul 23 17:43:39 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux" Linux (none) 3.5.0-1.fc18.x86_64 #1 SMP Mon Jul 23 17:43:39 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux libguestfs: trace: debug "sh" "head -n99999999 /sys/block/sd*/queue/discard_max_bytes" libguestfs: trace: debug = "==> /sys/block/sda/queue/discard_max_bytes <==\n0\n\n==> /sys/block/sdb/queue/discard_max_bytes <==\n0" ==> /sys/block/sda/queue/discard_max_bytes <== 0 ==> /sys/block/sdb/queue/discard_max_bytes <== 0 libguestfs: trace: part_disk "/dev/sda" "mbr" libguestfs: trace: part_disk = 0 libguestfs: trace: mkfs "ext4" "/dev/sda1" libguestfs: trace: mkfs = 0 libguestfs: trace: mount_options "discard" "/dev/sda1" "/" libguestfs: trace: mount_options = 0 libguestfs: trace: fill 88 52428800 "/data" libguestfs: trace: fill = 0 libguestfs: trace: sync libguestfs: trace: sync = 0 -rw-r--r--. 1 rjones rjones 56M Jul 30 14:49 test1.qcow2 libguestfs: trace: rm "/data" libguestfs: trace: rm = 0 libguestfs: trace: fstrim "/" libguestfs: trace: fstrim = -1 (error) *stdin*:23: libguestfs: error: fstrim: fstrim: /: FITRIM ioctl failed: Operation not supported libguestfs: trace: close libguestfs: trace: shutdown libguestfs: trace: internal_autosync libguestfs: trace: internal_autosync = 0 libguestfs: trace: shutdown = 0
