From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=57931 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PTIgb-0000QE-91 for qemu-devel@nongnu.org; Thu, 16 Dec 2010 13:36:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PTIga-0003gs-2L for qemu-devel@nongnu.org; Thu, 16 Dec 2010 13:36:17 -0500 Received: from verein.lst.de ([213.95.11.210]:32876) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PTIgZ-0003gI-Nx for qemu-devel@nongnu.org; Thu, 16 Dec 2010 13:36:16 -0500 Date: Thu, 16 Dec 2010 19:36:14 +0100 From: Christoph Hellwig Message-ID: <20101216183614.GA17260@lst.de> References: <20101210150038.GA30990@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20101210150038.GA30990@lst.de> Subject: [Qemu-devel] Re: [PATCH 0/3] add TRIM/UNMAP support, v4 List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This patchset adds support for the SCSI WRITE SAME with unmap command, which allows 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. The only support backend 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 WRITE SAME command becomes a no-op so that migration from hosts supporting or not supporting it works. Version 4: - incorporate Kevin's review comments for the scsi patch - update to the current block queue - drop ide TRIM support, as it doesn't easily port to the refactoring of the IDE code 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