mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-05 18:20:34 +00:00
Don't exit immediately on a guest panic event.
BUG=b:233758484,b:224887095 TEST=manual Change-Id: I2634f012b7756f7208fc69233b785bddf9b8a818 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3661258 Commit-Queue: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Auto-Submit: Paramjit Oberoi <psoberoi@google.com> Reviewed-by: Vineeth Pillai <vineethrp@google.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
parent
0948bc8d3a
commit
6562f9d118
1 changed files with 7 additions and 8 deletions
|
@ -1842,6 +1842,7 @@ fn run_control<V: VmArch + 'static, Vcpu: VcpuArch + 'static>(
|
|||
vcpu_thread_barrier.wait();
|
||||
|
||||
let mut exit_state = ExitState::Stop;
|
||||
let mut pvpanic_code = PvPanicCode::Unknown;
|
||||
let mut balloon_stats_id: u64 = 0;
|
||||
|
||||
'wait: loop {
|
||||
|
@ -1875,14 +1876,9 @@ fn run_control<V: VmArch + 'static, Vcpu: VcpuArch + 'static>(
|
|||
exit_state = ExitState::Crash;
|
||||
}
|
||||
VmEventType::Panic(panic_code) => {
|
||||
let panic_code = PvPanicCode::from_u8(panic_code);
|
||||
info!("Guest reported panic [Code: {}]", panic_code);
|
||||
if panic_code == PvPanicCode::CrashLoaded {
|
||||
// VM is booting to crash kernel.
|
||||
break_to_wait = false;
|
||||
} else {
|
||||
exit_state = ExitState::GuestPanic;
|
||||
}
|
||||
pvpanic_code = PvPanicCode::from_u8(panic_code);
|
||||
info!("Guest reported panic [Code: {}]", pvpanic_code);
|
||||
break_to_wait = false;
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
|
@ -1890,6 +1886,9 @@ fn run_control<V: VmArch + 'static, Vcpu: VcpuArch + 'static>(
|
|||
}
|
||||
}
|
||||
if break_to_wait {
|
||||
if pvpanic_code == PvPanicCode::Panicked {
|
||||
exit_state = ExitState::GuestPanic;
|
||||
}
|
||||
break 'wait;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue