[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] Minutes from the "Stuttgart block Gipfele"
From: |
Fam Zheng |
Subject: |
Re: [Qemu-block] [Qemu-devel] Minutes from the "Stuttgart block Gipfele" |
Date: |
Mon, 4 Jan 2016 15:28:36 +0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Mon, 01/04 13:16, Stefan Hajnoczi wrote:
> On Wed, Dec 23, 2015 at 06:15:20PM +0800, Fam Zheng wrote:
> > On Fri, 12/18 14:15, Markus Armbruster wrote:
> > In that theory, all other block job types, mirror/stream/commit, fit into a
> > "pull" model, which follows a specified dirty bitmap and copies data from a
> > specified src BDS. In this pull model,
> >
> > mirror (device=d0 target=d1) becomes a pull fileter:
> >
> > BB[d0] BB[d1]
> > | |
> > throttle [pull,src=d0]
> > | |
> > detect-zero detect-zero
> > | |
> > copy-on-read copy-on-read
> > | |
> > BDS BDS
> >
> > Note: the pull reuses most of the block/mirror.c code except the
> > s->dirty_bitmap will be initialized depending on the block job type. In the
> > case of mirror, it is trivially the same as now.
>
> I don't understand the pull filter. Is there also a mirror block job
> coroutine?
>
> Does anything perform I/O to BB[d1]?
Yes, the filter will have a mirror block job coroutine, and it writes to the
BDS behind BB[d1]. This is conceptually different from the "block jobs have
their own BBs" design.
>
> If nothing is writing to/reading from BB[d1], then I don't understand
> the purpose of the pull filter.
>
> Stefan