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();
|
vcpu_thread_barrier.wait();
|
||||||
|
|
||||||
let mut exit_state = ExitState::Stop;
|
let mut exit_state = ExitState::Stop;
|
||||||
|
let mut pvpanic_code = PvPanicCode::Unknown;
|
||||||
let mut balloon_stats_id: u64 = 0;
|
let mut balloon_stats_id: u64 = 0;
|
||||||
|
|
||||||
'wait: loop {
|
'wait: loop {
|
||||||
|
@ -1875,14 +1876,9 @@ fn run_control<V: VmArch + 'static, Vcpu: VcpuArch + 'static>(
|
||||||
exit_state = ExitState::Crash;
|
exit_state = ExitState::Crash;
|
||||||
}
|
}
|
||||||
VmEventType::Panic(panic_code) => {
|
VmEventType::Panic(panic_code) => {
|
||||||
let panic_code = PvPanicCode::from_u8(panic_code);
|
pvpanic_code = PvPanicCode::from_u8(panic_code);
|
||||||
info!("Guest reported panic [Code: {}]", panic_code);
|
info!("Guest reported panic [Code: {}]", pvpanic_code);
|
||||||
if panic_code == PvPanicCode::CrashLoaded {
|
break_to_wait = false;
|
||||||
// VM is booting to crash kernel.
|
|
||||||
break_to_wait = false;
|
|
||||||
} else {
|
|
||||||
exit_state = ExitState::GuestPanic;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
|
@ -1890,6 +1886,9 @@ fn run_control<V: VmArch + 'static, Vcpu: VcpuArch + 'static>(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if break_to_wait {
|
if break_to_wait {
|
||||||
|
if pvpanic_code == PvPanicCode::Panicked {
|
||||||
|
exit_state = ExitState::GuestPanic;
|
||||||
|
}
|
||||||
break 'wait;
|
break 'wait;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue