From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=38002 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PTFyB-0001kL-3h for qemu-devel@nongnu.org; Thu, 16 Dec 2010 10:42:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PTFy9-0005Ti-Um for qemu-devel@nongnu.org; Thu, 16 Dec 2010 10:42:15 -0500 Received: from mx1.redhat.com ([209.132.183.28]:26787) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PTFy9-0005T0-NC for qemu-devel@nongnu.org; Thu, 16 Dec 2010 10:42:13 -0500 Message-ID: <4D0A3398.6090309@redhat.com> Date: Thu, 16 Dec 2010 16:43:20 +0100 From: Kevin Wolf MIME-Version: 1.0 Subject: Re: [Qemu-devel] ]PATCH 0/7] add TRIM/UNMAP support, v3 References: <20101210150038.GA30990@lst.de> In-Reply-To: <20101210150038.GA30990@lst.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Christoph Hellwig Cc: qemu-devel@nongnu.org Am 10.12.2010 16:00, schrieb Christoph Hellwig: > 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 The SCSI changes seem to apply, but the rest conflicts with recent changes, most notably AHCI. Can you rebase on top of the block branch? I also found some minor things in the SCSI code, so I'll take the chance to comment on them. Kevin