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);
>   }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.