On 07/05/2016 09:50 AM, Kevin Wolf wrote: > From: Eric Blake <ebl...@redhat.com> > > Sector-based limits are awkward to think about; in our on-going > quest to move to byte-based interfaces, convert max_discard and > discard_alignment. Rename them, using 'pdiscard' as an aid to > track which remaining discard interfaces need conversion, and so > that the compiler will help us catch the change in semantics > across any rebased code. The BlockLimits type is now completely > byte-based; and in iscsi.c, sector_limits_lun2qemu() is no > longer needed. >
> +++ b/include/block/block_int.h > @@ -324,11 +324,17 @@ struct BlockDriver { > }; > > typedef struct BlockLimits { > - /* maximum number of sectors that can be discarded at once */ > - int max_discard; > - > - /* optimal alignment for discard requests in sectors */ > - int64_t discard_alignment; > + /* maximum number of bytes that can be discarded at once (since it > + * is signed, it must be < 2G, if set), should be multiple of > + * pdiscard_alignment, but need not be power of 2. May be 0 if no > + * inherent 32-bit limit */ > + int32_t max_pdiscard; > + > + /* optimal alignment for discard requests in bytes, must be power > + * of 2, less than max_pdiscard if that is set, and multiple of > + * bs->request_alignment. May be 0 if bs->request_alignment is > + * good enough */ > + uint32_t pdiscard_alignment; Given the recent thread on an iscsi device with 15M optimum alignment for zero and discards, I guess I have some followup patches to write if we don't want to stall this pull request. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature