From: Cornelia Huck <cohuck@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>,
QEMU Developers <qemu-devel@nongnu.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Pedro Barbuda <pbarbuda@microsoft.com>,
Mohamed Mediouni <mohamed@unpredictable.fr>,
Nicholas Piggin <npiggin@gmail.com>,
Harsh Prateek Bora <harshpb@linux.ibm.com>,
Eric Farman <farman@linux.ibm.com>,
Matthew Rosato <mjrosato@linux.ibm.com>,
"Daniel P. Berrange" <berrange@redhat.com>
Subject: Re: what is qemu_system_guest_panicked() for?
Date: Mon, 13 Jul 2026 12:22:06 +0200 [thread overview]
Message-ID: <87ik6ji3zl.fsf@redhat.com> (raw)
In-Reply-To: <CAFEAcA_zmc=Vvs38Qos_gecCmGAbRgDQF-0+x85Ja66nsqrHxA@mail.gmail.com>
On Fri, Jul 10 2026, Peter Maydell <peter.maydell@linaro.org> wrote:
> (cc list is a random mix of maintainers of code that calls this
> function, Paolo as "main loop maintainer" and a few others who
> I thought might have an opinion.)
>
> We have a qemu_system_guest_panicked() function which causes QEMU
> to report this to the user and do one of a couple of possible options
> (shutdown, pause the VM, do nothing). This seems mostly intended for
> "the guest OS told us by some mechanism that it just panicked". But
> we use it more widely than that...
>
> Cases which are "the guest told us about a panic":
> - accel/kvm/kvm-all.c handling of the KVM_EXIT_SYSTEM_EVENT SEV_TERM
> and CRASH subtypes
These two events seem to be x86 only.
> - the pvpanic device
> - the spapr ibm,os-term RTAS call
> - x86 kvm: tdx_panicked_on_fatal_error()
> - x86 xen: the SHUTDOWN_crash shutdown subtype
>
> Cases which are not:
> - hw/spapr/rtas.c: if the FDT has no RTAS address during system reset
> - hw/spapr/spapr_events.c: if we wanted to deliver a machine check
> exception to the guest but the FDT has no RTAS address
> - hw/spapr/spapr_events.c: if we want to deliver a machine check
> but the guest is still dealing with a previous machine check
> - arm whpx, if we get an unknown/unexpected exit code trying to run the VM
> - x86 nvmm, for an unknown/unexpected VM exit code
> - ppc TCG, in powerpc_checkstop(), for a machine check exception I think
> - s390_handle_wait(): not sure exactly what this is
Loading a "disabled wait PSW" (waiting for interrupts with no interrupts
enabled) is basically the way for an OS to "panic". (The "special wait
PSW" is for signifying that a cpu has been shut down.) IOW, this is
indeed the "panic" case for s390x.
> - s390 unmanageable_intercept(): again not sure, think this is where
> the guest has gone off the rails and we can't keep running
It's basically "the handling code for an exception immediately leads to
the same exception", the cpu has gone into a loop and can't get out of
it again. Not sure if that should be getting some different handling.
next prev parent reply other threads:[~2026-07-13 10:22 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-10 16:02 what is qemu_system_guest_panicked() for? Peter Maydell
2026-07-11 15:01 ` Harsh Prateek Bora
2026-07-13 8:39 ` Daniel P. Berrangé
2026-07-13 8:57 ` Markus Armbruster
2026-07-13 9:06 ` Daniel P. Berrangé
2026-07-13 10:30 ` Cornelia Huck
2026-07-13 11:43 ` Markus Armbruster
2026-07-13 12:14 ` Daniel P. Berrangé
2026-07-13 13:57 ` Markus Armbruster
2026-07-13 15:02 ` Daniel P. Berrangé
2026-07-13 18:09 ` Markus Armbruster
2026-07-13 12:30 ` Peter Maydell
2026-07-13 10:22 ` Cornelia Huck [this message]
2026-07-13 13:53 ` Christian Borntraeger
2026-07-13 13:36 ` Fabiano Rosas
2026-07-14 10:24 ` Aditya Gupta
2026-07-14 14:47 ` Shivang Upadhyay
2026-07-13 14:49 ` Fabiano Rosas
2026-07-13 15:03 ` Peter Maydell
2026-07-13 16:11 ` Fabiano Rosas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ik6ji3zl.fsf@redhat.com \
--to=cohuck@redhat.com \
--cc=berrange@redhat.com \
--cc=farman@linux.ibm.com \
--cc=harshpb@linux.ibm.com \
--cc=mjrosato@linux.ibm.com \
--cc=mohamed@unpredictable.fr \
--cc=npiggin@gmail.com \
--cc=pbarbuda@microsoft.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.