mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 08:43:55 -06:00
add a new runstate: RUN_STATE_GUEST_PANICKED
The guest will be in this state when it is panicked. Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> Signed-off-by: Hu Tao <hutao@cn.fujitsu.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-id: 0255f263ffdc2a3716f73e89098b96fd79a235b3.1366945969.git.hutao@cn.fujitsu.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
cffc5113a4
commit
ede085b3fe
4 changed files with 17 additions and 5 deletions
13
vl.c
13
vl.c
|
@ -594,6 +594,7 @@ static const RunStateTransition runstate_transitions_def[] = {
|
|||
{ RUN_STATE_RUNNING, RUN_STATE_SAVE_VM },
|
||||
{ RUN_STATE_RUNNING, RUN_STATE_SHUTDOWN },
|
||||
{ RUN_STATE_RUNNING, RUN_STATE_WATCHDOG },
|
||||
{ RUN_STATE_RUNNING, RUN_STATE_GUEST_PANICKED },
|
||||
|
||||
{ RUN_STATE_SAVE_VM, RUN_STATE_RUNNING },
|
||||
|
||||
|
@ -608,6 +609,8 @@ static const RunStateTransition runstate_transitions_def[] = {
|
|||
{ RUN_STATE_WATCHDOG, RUN_STATE_RUNNING },
|
||||
{ RUN_STATE_WATCHDOG, RUN_STATE_FINISH_MIGRATE },
|
||||
|
||||
{ RUN_STATE_GUEST_PANICKED, RUN_STATE_PAUSED },
|
||||
|
||||
{ RUN_STATE_MAX, RUN_STATE_MAX },
|
||||
};
|
||||
|
||||
|
@ -649,6 +652,13 @@ int runstate_is_running(void)
|
|||
return runstate_check(RUN_STATE_RUNNING);
|
||||
}
|
||||
|
||||
bool runstate_needs_reset(void)
|
||||
{
|
||||
return runstate_check(RUN_STATE_INTERNAL_ERROR) ||
|
||||
runstate_check(RUN_STATE_SHUTDOWN) ||
|
||||
runstate_check(RUN_STATE_GUEST_PANICKED);
|
||||
}
|
||||
|
||||
StatusInfo *qmp_query_status(Error **errp)
|
||||
{
|
||||
StatusInfo *info = g_malloc0(sizeof(*info));
|
||||
|
@ -1984,8 +1994,7 @@ static bool main_loop_should_exit(void)
|
|||
cpu_synchronize_all_states();
|
||||
qemu_system_reset(VMRESET_REPORT);
|
||||
resume_all_vcpus();
|
||||
if (runstate_check(RUN_STATE_INTERNAL_ERROR) ||
|
||||
runstate_check(RUN_STATE_SHUTDOWN)) {
|
||||
if (runstate_needs_reset()) {
|
||||
runstate_set(RUN_STATE_PAUSED);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue