From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:51242) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UfiFe-0001FP-5j for qemu-devel@nongnu.org; Thu, 23 May 2013 23:01:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UfiFa-0006hF-V3 for qemu-devel@nongnu.org; Thu, 23 May 2013 23:01:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60357) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UfiFa-0006h3-Mz for qemu-devel@nongnu.org; Thu, 23 May 2013 23:01:02 -0400 Date: Fri, 24 May 2013 11:00:56 +0800 From: Fam Zheng Message-ID: <20130524030056.GD1705@localhost.nay.redhat.com> References: <1369280289-20928-1-git-send-email-famz@redhat.com> <1369280289-20928-7-git-send-email-famz@redhat.com> <20130523140929.GQ9093@stefanha-thinkpad.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130523140929.GQ9093@stefanha-thinkpad.redhat.com> Subject: Re: [Qemu-devel] [PATCH v5 06/11] curl: introduce CURLDataCache List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: kwolf@redhat.com, jcody@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com On Thu, 05/23 16:09, Stefan Hajnoczi wrote: > On Thu, May 23, 2013 at 11:38:04AM +0800, Fam Zheng wrote: > > +typedef struct CURLDataCache { > > + char *data; > > + size_t base_pos; > > Must be int64_t. QEMU compiled on 32-bit hosts would only allow 4 GB > images with size_t! OK. > > > + size_t data_len; > > + size_t write_pos; > > + /* Ref count for CURLState */ > > + int use_count; > > It's better to introduce this field when you add code to use it. When > possible, don't add unused code in a patch, it makes it harder to > review. Moving to later patch. > > > +static void curl_complete_io(BDRVCURLState *bs, CURLAIOCB *acb, > > + CURLDataCache *cache) > > +{ > > + size_t aio_base = acb->sector_num * SECTOR_SIZE; > > int64_t > > > + size_t aio_bytes = acb->nb_sectors * SECTOR_SIZE; > > + size_t off = aio_base - cache->base_pos; > > + > > + qemu_iovec_from_buf(acb->qiov, 0, cache->data + off, aio_bytes); > > + acb->common.cb(acb->common.opaque, 0); > > + DPRINTF("AIO Request OK: %10zd %10zd\n", aio_base, aio_bytes); > > PRId64 for 64-bit aio_base OK, thanks. > > > @@ -589,26 +577,24 @@ static const AIOCBInfo curl_aiocb_info = { > > static void curl_readv_bh_cb(void *p) > > { > > CURLState *state; > > - > > + CURLDataCache *cache = NULL; > > CURLAIOCB *acb = p; > > BDRVCURLState *s = acb->common.bs->opaque; > > + size_t aio_base, aio_bytes; > > int64_t aio_base; Yes, will change. -- Fam