Re: [PATCH v3 1/3] runstate: set crash_occurred on guest crashloaded
Akihiko Odaki <[email protected]>
| Newsgroups | gmane.comp.emulators.qemu |
|---|---|
| Message-ID | <[email protected]> |
On 2026/08/06 17:47, Zhengrong Li wrote: > Windows pvpanic driver writes PVPANIC_CRASH_LOADED (bit 1) on > bugcheck, not PVPANIC_PANICKED (bit 0). As a result, > qemu_system_guest_panicked() is never called and crash_occurred > stays false for Windows guests. Windows emits CRASH_LOADED when crash dumping is enabled, but emits PANICKED when no dump is available: https://github.com/virtio-win/kvm-guest-drivers-windows/blob/abb444cab4ea2284e844e78c0efe76355936a741/pvpanic/pvpanic/bugcheck.c#L41 Therefore, “qemu_system_guest_panicked() is never called” is too categorical. Regards, Akihiko Odaki > > Set crash_occurred in qemu_system_guest_crashloaded() as well, > so the faulting CPU can be identified in the guest dump. > > Signed-off-by: Zhengrong Li <[email protected]> > --- > system/runstate.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/system/runstate.c b/system/runstate.c > index 08acf801b0..c7961cc1df 100644 > --- a/system/runstate.c > +++ b/system/runstate.c > @@ -724,6 +724,11 @@ void qemu_system_guest_panicked(GuestPanicInformation *info) > void qemu_system_guest_crashloaded(GuestPanicInformation *info) > { > qemu_log_mask(LOG_GUEST_ERROR, "Guest crash loaded"); > + > + if (current_cpu) { > + current_cpu->crash_occurred = true; > + } > + > qapi_event_send_guest_crashloaded(GUEST_PANIC_ACTION_RUN, info); > qapi_free_GuestPanicInformation(info); > }