qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] ]PATCH 0/7] add TRIM/UNMAP support, v3
@ 2010-12-10 15:00 Christoph Hellwig
  2010-12-10 15:00 ` [Qemu-devel] [PATCH 1/7] block: add discard support Christoph Hellwig
                   ` (9 more replies)
  0 siblings, 10 replies; 21+ messages in thread
From: Christoph Hellwig @ 2010-12-10 15:00 UTC (permalink / raw)
  To: qemu-devel

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 3:
	- refactor IDE dma support code
	- proper brace obsfucation
	- fix compile without xfs headers
	- use bool instead of int for a one-byte flag

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

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2010-12-17 10:52 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-10 15:00 [Qemu-devel] ]PATCH 0/7] add TRIM/UNMAP support, v3 Christoph Hellwig
2010-12-10 15:00 ` [Qemu-devel] [PATCH 1/7] block: add discard support Christoph Hellwig
2010-12-10 15:00 ` [Qemu-devel] [PATCH 2/7] scsi-disk: support WRITE SAME (16) with unmap bit Christoph Hellwig
2010-12-16 15:48   ` Kevin Wolf
2010-12-16 16:41     ` Christoph Hellwig
2010-12-10 15:01 ` [Qemu-devel] [PATCH 3/7] make dma_bdrv_io available to drivers Christoph Hellwig
2010-12-10 15:01 ` [Qemu-devel] [PATCH 4/7] ide: factor dma handling helpers Christoph Hellwig
2010-12-10 15:01 ` [Qemu-devel] [PATCH 5/7] ide: also reset io_buffer_index for writes Christoph Hellwig
2010-12-10 15:01 ` [Qemu-devel] [PATCH 6/7] ide: add TRIM support Christoph Hellwig
2010-12-10 15:01 ` [Qemu-devel] [PATCH 7/7] raw-posix: add discard support Christoph Hellwig
2010-12-12 15:28 ` [Qemu-devel] ]PATCH 0/7] add TRIM/UNMAP support, v3 Stefan Hajnoczi
2010-12-13 15:45   ` Christoph Hellwig
2010-12-16 15:43 ` Kevin Wolf
2010-12-16 16:42   ` Christoph Hellwig
2010-12-16 18:36 ` [Qemu-devel] Re: [PATCH 0/3] add TRIM/UNMAP support, v4 Christoph Hellwig
2010-12-16 18:36   ` [Qemu-devel] [PATCH 1/3] block: add discard support Christoph Hellwig
2010-12-16 18:36   ` [Qemu-devel] [PATCH 2/3] scsi-disk: support WRITE SAME (16) with unmap bit Christoph Hellwig
2010-12-16 18:36   ` [Qemu-devel] [PATCH 3/3] raw-posix: add discard support Christoph Hellwig
2010-12-17 10:32     ` Kevin Wolf
2010-12-17 10:41       ` [Qemu-devel] [PATCH v5] " Christoph Hellwig
2010-12-17 10:53         ` [Qemu-devel] " Kevin Wolf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).