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

Reply via email to