On 11/01/2016 11:31, Denis V. Lunev wrote:
>>>
>>> IMO, after a reset, main_loop_should_exit should actually transition
>>> to VM_STATE_PRELAUNCH (*not* RUN_STATE_PAUSED) for *all* states except
>>> RUN_STATE_INMIGRATE, RUN_STATE_SAVE_VM (which I think cannot happen
>>> there) and (of course) RUN_STATE_RUNNING.  Some changes will be required
>>> to the transition table as well.
>>>
>>> This will fix similar bugs for other runstates as well, though most of
>>> them probably cannot be triggered from libvirt.
>>
>> ok. Thank you for this input. I'll analyse this and come with
>> corrected patch :)
> 
> What would be correct procedure to handle this state?
> 
> Setting VM_STATE_PRELAUNCH in main_loop_should_exit does not
> move QEMU into VM_STATE_RUNNING and thus subsequent 'resume'
> command is necessary.
> 
> In this case the processing of 'reset' command should be different
> in libvirt, i.e. libvirt should send two commands ('reset' and 'resume')
> in this state.

Either that, or libvirt's client should send two of them.

As far as QEMU is concerned, a paused VM remains paused after a reset,
no matter why it was reset.  I'm not sure what are the desired semantics
for libvirt.

Paolo

Reply via email to