Did you know KVM has a way to enable discard pass thru? I did, but then I forgot and had to google again.
This is how you do it:
kvm -drive discard=unmap,file=debian.qcow2,id=ff,if=none \ -device virtio-scsi-pci -device scsi-disk,drive=ff
When booted, you have to make sure your fs is mounted with discard option, and can then do:
And the image on the host should be significantly smaller. Use du or ls -alsh, not just ls, because ls does not display actual disk usage if you don't pass -s:
1,4G -rw-r--r-- 1 root root 4,0G apr 7 17:22 debian.img
Now you know.