From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37849) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bDjWP-00038t-DJ for qemu-devel@nongnu.org; Thu, 16 Jun 2016 22:28:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bDjWN-00064y-AP for qemu-devel@nongnu.org; Thu, 16 Jun 2016 22:28:36 -0400 Date: Fri, 17 Jun 2016 10:28:19 +0800 From: Fam Zheng Message-ID: <20160617022819.GA6523@ad.usersys.redhat.com> References: <1465939839-30097-1-git-send-email-eblake@redhat.com> <1465939839-30097-16-git-send-email-eblake@redhat.com> <20160616054657.GQ12178@ad.usersys.redhat.com> <5762B5E4.80400@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5762B5E4.80400@redhat.com> Subject: Re: [Qemu-devel] [PATCH v2 15/17] block: Switch discard length bounds to byte-based List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org, kwolf@redhat.com, Stefan Hajnoczi , Max Reitz , Ronnie Sahlberg , Paolo Bonzini , Peter Lieven On Thu, 06/16 08:21, Eric Blake wrote: > On 06/15/2016 11:46 PM, Fam Zheng wrote: > > On Tue, 06/14 15:30, Eric Blake wrote: > >> 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. In iscsi.c, sector_limits_lun2qemu() > >> is no longer needed; and the BlockLimits type is now completely > >> byte-based. > >> > >> Signed-off-by: Eric Blake > >> > > >> > >> typedef struct BlockLimits { > >> - /* maximum number of sectors that can be discarded at once */ > >> - int max_discard; > >> + /* 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; > > > > Why not use uint32_t? > > > >> > >> - /* optimal alignment for discard requests in sectors */ > >> - int64_t discard_alignment; > >> + /* optimal alignment for discard requests in bytes, must be power > >> + * of 2, less than max_discard if that is set, and multiple of > >> + * bs->request_alignment. May be 0 if bs->request_alignment is > >> + * good enough */ > >> + uint32_t pdiscard_alignment; > >> > >> /* maximum number of bytes that can zeroized at once (since it is > >> - * signed, it must be < 2G, if set) */ > >> + * signed, it must be < 2G, if set), should be multiple of > >> + * pwrite_zeroes_alignment. May be 0 if no inherent 32-bit limit */ > >> int32_t max_pwrite_zeroes; > > Because max_pwrite_zeroes didn't. > > And because we're still limited by INT_MAX (or it's alternative spelling > BDRV_REQUEST_MAX_SECTORS). > > Maybe we should switch both to uint32_t, but that can be a followup. > OK, thanks! Reviewed-by: Fam Zheng