qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v9 06/10] replay: fix save/load vm for non-empty


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH v9 06/10] replay: fix save/load vm for non-empty queue
Date: Thu, 4 May 2017 14:32:27 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0


On 04/05/2017 14:10, Pavel Dovgalyuk wrote:
>> From: Paolo Bonzini [mailto:address@hidden
>> On 04/05/2017 13:54, Pavel Dovgalyuk wrote:
>>>> From: Paolo Bonzini [mailto:address@hidden
>>>> 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.

What checkpoint can hang the drain during a save?

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]