On Tue, May 14, 2013 at 12:45 PM, Paolo Bonzini <pbonz...@redhat.com> wrote:

> No, I'll just reuse the same hooks within block/mirror.c (almost... it
> looks like I need after_write too, not just before_write :( that's a
> pity).  Basically:
>
> 1) before the write, if there is space in the job's buffers, allocate a
> MirrorOp and a data buffer for the write.  Also record whether the block
> was dirty before;
>
> 2) after the write, do nothing if there was no room to allocate the data
> buffer.  Else clear the block from the dirty bitmap.  If the block was
> dirty, read the whole cluster from the source as in passive mirroring.
> If it wasn't, copy the data from guest memory to the preallocated buffer
> and write it to the destination;
>
> > If I knew more about what you
> > had in mind, I wouldn't mind trying to add this 'active' mode to
> > 'drive-mirror'
> > and test it with my use case.  I want to avoid duplicate work, so if you
> > want to implement it yourself I can defer this.
>
> Also the other way round.  If you want to give it a shot based on the
> above spec just tell me.


Talked with my group here as well.  I think I'd like to give it a shot
based on the
above spec rather than refactor my code into a new command.  This way it
will
hopefully reduce duplicated efforts, and provide extra testing for the
"active
mirroring" code.

I'll take a pass through the mirror code to make sure I understand it
better than
I currently do.

Would you like to coordinate off-list until we have a patch?

-- 
Wolf

Reply via email to