From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58202) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VdHh3-00029M-B6 for qemu-devel@nongnu.org; Mon, 04 Nov 2013 05:47:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VdHgx-0001Q9-CE for qemu-devel@nongnu.org; Mon, 04 Nov 2013 05:47:37 -0500 Received: from mx1.redhat.com ([209.132.183.28]:37343) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VdHgx-0001Pz-3I for qemu-devel@nongnu.org; Mon, 04 Nov 2013 05:47:31 -0500 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rA4AlUp9027392 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 4 Nov 2013 05:47:30 -0500 Message-ID: <52777B3F.6010402@redhat.com> Date: Mon, 04 Nov 2013 18:47:27 +0800 From: Fam Zheng MIME-Version: 1.0 References: <1383557410-18062-1-git-send-email-famz@redhat.com> <527778E9.6000907@redhat.com> In-Reply-To: <527778E9.6000907@redhat.com> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2] block: per caller dirty bitmap List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: kwolf@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com On 11/04/2013 06:37 PM, Paolo Bonzini wrote: > Il 04/11/2013 10:30, Fam Zheng ha scritto: >> diff --git a/include/block/block.h b/include/block/block.h >> index 3560deb..06f424c 100644 >> --- a/include/block/block.h >> +++ b/include/block/block.h >> @@ -388,12 +388,15 @@ void *qemu_blockalign(BlockDriverState *bs, size_t size); >> bool bdrv_qiov_is_aligned(BlockDriverState *bs, QEMUIOVector *qiov); >> >> struct HBitmapIter; >> -void bdrv_set_dirty_tracking(BlockDriverState *bs, int granularity); >> -int bdrv_get_dirty(BlockDriverState *bs, int64_t sector); >> +typedef struct BdrvDirtyBitmap BdrvDirtyBitmap; >> +BdrvDirtyBitmap *bdrv_create_dirty_bitmap(BlockDriverState *bs, int granularity); >> +void bdrv_release_dirty_bitmap(BlockDriverState *bs, BdrvDirtyBitmap *bitmap); >> +int bdrv_get_dirty(BlockDriverState *bs, BdrvDirtyBitmap *bitmap, int64_t sector); >> void bdrv_set_dirty(BlockDriverState *bs, int64_t cur_sector, int nr_sectors); >> void bdrv_reset_dirty(BlockDriverState *bs, int64_t cur_sector, int nr_sectors); >> -void bdrv_dirty_iter_init(BlockDriverState *bs, struct HBitmapIter *hbi); >> -int64_t bdrv_get_dirty_count(BlockDriverState *bs); >> +void bdrv_dirty_iter_init(BlockDriverState *bs, >> + BdrvDirtyBitmap *bitmap, struct HBitmapIter *hbi); >> +int64_t bdrv_get_dirty_count(BlockDriverState *bs, BdrvDirtyBitmap *bitmap); >> >> void bdrv_enable_copy_on_read(BlockDriverState *bs); >> void bdrv_disable_copy_on_read(BlockDriverState *bs); > You do not really need the BDS argument to the functions, do you? (Or > do you have other plans?) I just wanted to keep the pattern of those bdrv_* family, no other plans for it. Fam