[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 1/2] block: per caller dirty bitmap
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH v3 1/2] block: per caller dirty bitmap |
Date: |
Wed, 13 Nov 2013 15:36:31 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 13.11.2013 um 15:33 hat Fam Zheng geschrieben:
> On Wed, Nov 13, 2013 at 6:29 PM, Fam Zheng <address@hidden> wrote:
> > Previously a BlockDriverState has only one dirty bitmap, so only one
> > caller (e.g. a block job) can keep track of writing. This changes the
> > dirty bitmap to a list and creates a BdrvDirtyBitmap for each caller, the
> > lifecycle is managed with these new functions:
> >
> > bdrv_create_dirty_bitmap
> > bdrv_release_dirty_bitmap
> >
> > Where BdrvDirtyBitmap is a linked list wrapper structure of HBitmap.
> >
> > In place of bdrv_set_dirty_tracking, a BdrvDirtyBitmap pointer argument
> > is added to these functions, since each caller has its own dirty bitmap:
> >
> > bdrv_get_dirty
> > bdrv_dirty_iter_init
> > bdrv_get_dirty_count
> >
> > bdrv_set_dirty and bdrv_reset_dirty prototypes are unchanged but will
> > internally walk the list of all dirty bitmaps and set them one by one.
> >
> > Signed-off-by: Fam Zheng <address@hidden>
> >
> > ---
> > v2: Added BdrvDirtyBitmap [Paolo]
> >
> > Signed-off-by: Fam Zheng <address@hidden>
> > @@ -2785,9 +2792,7 @@ static int coroutine_fn
> > bdrv_co_do_writev(BlockDriverState *bs,
> > ret = bdrv_co_flush(bs);
> > }
> >
> > - if (bs->dirty_bitmap) {
> > bdrv_set_dirty(bs, sector_num, nb_sectors);
> > - }
>
> Sorry, forgot to fix this indentation. Kevin, could you fix it when
> applying? Thanks.
Yes, I already did that (and added Stefan's Reviewed-by, as this patch
is unchanged compared to v2).
Kevin