On Thu, 05/28 10:23, Paolo Bonzini wrote:
> 
> 
> On 28/05/2015 04:49, Fam Zheng wrote:
> > 
> > On a second thought, although in this series, we only need to modify
> > virtio-{scsi,blk}, Wen pointed out that mirror job also wants this during
> > completion (because bdrv_swap is in a BH after the job coroutine returns).
> 
> Mirror needs to pause/resume the source.  It doesn't need to handle
> pause/resume of the target, does it?
> 
> > So, in order for the solution to be general, and complete, this nofitier 
> > list
> > approach relies on the listening devices to do the right thing, which 
> > requires
> > modifying all of them, and is harder to maintain.
> 
> Isn't it only devices that use aio_set_event_notifier for their ioeventfd?

I think it's only the case for qmp_transaction, mirror job needs all block
devices to implement pause: mirror_run guarantees source and target in sync
when it returns; but bdrv_swap is deferred to a main loop bottom half -  what
if there is a guest write to source in between?

Fam


Reply via email to