On 07/05/2016 09:50 AM, Kevin Wolf wrote: > From: Eric Blake <[email protected]> > > 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
