qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] PATCH 0/5] add TRIM/UNMAP support, v2


From: Christoph Hellwig
Subject: [Qemu-devel] PATCH 0/5] add TRIM/UNMAP support, v2
Date: Wed, 1 Dec 2010 16:35:04 +0100
User-agent: Mutt/1.3.28i

This patchset adds support for the ATA TRIM and SCSI WRITE SAME with
unmap commands, which allow reclaiming free space from a backing image.

The user facing implementation is pretty complete, but not really
efficient because the underlying bdrv_discard implementation doesn't
use the aio implementation yet.  The reason for that is that the SCSI
layer doesn't really allow any asynchronous commands except for
READ/WRITE by design, and implementing the ATA TRIM command with it's
multiple ranges is rather painful, and combined with the SCSI limitation
I didn't bother yet.  The only backend support so far is the XFS hole
punching ioctl, but others can be added easily when they become
available.  A virtio implementation for a discard command would also
be pretty easy, but until we actually support a better backend then
a plain sparse file it's not worth using for production enviroments
anyway, but more for playing with the thin provisioning infrastructure,
or observing guest behaviour when TRIM / unmap is supported.

If the support is enabled and the backend doesn't support hole punching
the TRIM / WRITE SAME commands become no-ops so that migration from
hosts supporting or not supporting it works.

Version 2:
        - replace tabs with spaces
        - return -ENOMEDIUM from bdrv_discard if there's no driver
          assigned
        - actually list the TP EVPD page as supported when querying
          for supported EVPD pages



reply via email to

[Prev in Thread] Current Thread [Next in Thread]