> From: Paolo Bonzini [mailto:[email protected]]
> On 04/05/2017 13:54, Pavel Dovgalyuk wrote:
> >> From: Paolo Bonzini [mailto:[email protected]]
> >> On 04/05/2017 13:13, Pavel Dovgalyuk wrote:
> >>>>> This patch does not allows saving/loading vmstate when
> >>>>> replay events queue is not empty. There is no reliable
> >>>>> way to save events queue, because it describes internal
> >>>>> coroutine state. Therefore saving and loading operations
> >>>>> should be deferred to another record/replay step.
> >>>>
> >>>> Can it actually be non-empty after bdrv_drain_all?
> >>>
> >>> drain/flush cannot succeed, because started requests are
> >>> prisoned in the replay events queue.
> >>
> >> But that would apply to loading only.  Saving should still be always
> >> possible.
> >
> > We can save it. But it wouldn't load correctly - replay queue will be empty 
> > after loading.
> 
> When saving you can drain, and then the events queue should be empty.
> Or I am misunderstanding how it works, which is possible too.

Drain will wait until the queue becomes empty.
Queue is processed only at checkpoints.
Checkpoints are met in iothread (at timers processing and so on).
But iothread is waiting for finishing the drain.

Pavel Dovgalyuk


Reply via email to