Am 14.10.2011 16:24, schrieb Paolo Bonzini: > On 10/14/2011 04:23 PM, Kevin Wolf wrote: >>> This similarly adds support for coroutine and asynchronous discard. >>> >>> Signed-off-by: Paolo Bonzini<pbonz...@redhat.com> >> >> Do we really need bdrv_discard and bdrv_aio_discard in the backends? I >> think it makes sense to have a bdrv_aio_discard() in block.h as AIO >> generally fits well for device models, but I would just require >> bdrv_co_discard for any block drivers implementing discard. > > bdrv_discard is needed for now since I wouldn't like to conflate this > patch with the qcow2 patch.
Okay, that makes sense. Then I'll drop it when I convert qcow2. > I can certainly drop aio_discard from the backends, but I'm not sure how > heavy can fallocate be (with FALLOC_FL_PUNCH_HOLE). Probably not much, > but I think there's no guarantee of O(1) behavior especially with > filesystems like ecryptfs. So you would need to go through the thread > pool and aio_discard would come in handy. Sure, but the coroutine interface should be just as good for implementing it this way in raw-posix. Kevin