From: Marc Zyngier <maz@kernel.org>
To: Gavin Shan <gshan@redhat.com>
Cc: peter.maydell@linaro.org, drjones@redhat.com,
jthierry@redhat.com, Alexey Kardashevskiy <aik@ozlabs.ru>,
qemu-devel@nongnu.org, eric.auger@redhat.com,
qemu-arm@nongnu.org, shan.gavin@gmail.com, pbonzini@redhat.com
Subject: Re: [RFC PATCH] hw/arm/virt: Support NMI injection
Date: Fri, 31 Jan 2020 09:39:03 +0000 [thread overview]
Message-ID: <c61c95c434dbcf97a0c946f0993d4843@kernel.org> (raw)
In-Reply-To: <ff584722-1b51-e538-7c45-c71cdc40105f@redhat.com>
On 2020-01-31 06:59, Gavin Shan wrote:
> On 1/29/20 8:04 PM, Marc Zyngier wrote:
>> On 2020-01-29 02:44, Alexey Kardashevskiy wrote:
>>> On 28/01/2020 17:48, Gavin Shan wrote:
>>>> but a NMI is injected
>>>> through LAPIC on x86. So I'm not sure what architect (system reset
>>>> on
>>>> ppc or injecting NMI on x86) aarch64 should follow.
>>>
>>> I'd say whatever triggers in-kernel debugger or kdump but I am not
>>> familiar with ARM at all :)
>>
>> All that is completely OS specific, and has no relation to the
>> architecture.
>> As I mentioned in another part of the thread, the closest thing to
>> this
>> would be to implement SDEI together with an IMPDEF mechanism to enter
>> it
>> (or even generate a RAS error).
>>
>> On the other hand, SDEI is pretty horrible, and means either KVM or
>> QEMU
>> acting like a firmware for the guest. To say that I'm not keen is a
>> massive
>> understatement.
>>
>> M.
>
> Marc, could you please explain a bit about "IMPDEF mechanism"? I'm not
> sure if
> it means a non-standard SDEI event should be used, corresponding to the
> HMP/QMP
> "nmi" command.
SDEI doesn't quite describe *why* and *how* you enter it. You just get
there by
some mean (SError, Group-0 interrupt, or IMPlementation DEFined
mechanism).
It is then for the SDEI implementation to sort it out and enter the OS
using the
registered entry point.
> Also, If I'm correct, you agree that a crash dump should be triggered
> on arm64
> guest once HMP/QMP "nmi" command is issued?
No, I don't agree. QEMU and KVM are OS agnostic, and there is nothing in
the ARMv8
architecture that talks about "crash dumps". If your "nmi" command
generates
a SDEI event and that event gets dispatched to the guest, it is entirely
the guest's
responsibility to do whatever it wants. We should stay clear of assuming
behaviours.
> I also dig into SDEI a bit. It seems the SDEI support in QEMU isn't
> upstream yet:
>
> https://patchew.org/QEMU/20191105091056.9541-1-guoheyi@huawei.com/
And I'm glad. SDEI, as I said, is absolutely horrible. I'm also very
fortunate
to have been CC'd on this series on an email address I cannot read.
This would have huge impacts on both QEMU and KVM, and this needs more
than
a knee jerk reaction to support a QEMU command.
And to be honest, if what you require is the guest kernel to panic, why
don't
you just implement a QEMU-specific driver in Linux that does just that?
Some kind of watchdog driver, maybe?
Thanks,
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2020-01-31 9:39 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-19 4:06 [RFC PATCH] hw/arm/virt: Support NMI injection Gavin Shan
2020-01-14 21:50 ` Gavin Shan
2020-01-17 14:00 ` Peter Maydell
2020-01-28 6:48 ` Gavin Shan
2020-01-28 8:05 ` Auger Eric
2020-01-28 9:25 ` Marc Zyngier
2020-01-28 10:56 ` Auger Eric
2020-01-28 10:59 ` Peter Maydell
2020-01-28 11:13 ` Marc Zyngier
2020-01-29 3:30 ` Gavin Shan
2020-01-28 8:29 ` Julien Thierry
2020-01-29 3:46 ` Gavin Shan
2020-01-29 7:57 ` Julien Thierry
2020-01-29 21:54 ` Gavin Shan
2020-01-30 10:58 ` Marc Zyngier
2020-01-31 6:51 ` Gavin Shan
2020-01-29 2:44 ` Alexey Kardashevskiy
2020-01-29 3:41 ` Gavin Shan
2020-01-29 9:04 ` Marc Zyngier
2020-01-31 6:59 ` Gavin Shan
2020-01-31 9:39 ` Marc Zyngier [this message]
2020-02-04 3:51 ` Gavin Shan
2020-02-04 10:22 ` Peter Maydell
2020-02-05 3:09 ` Shan Gavin
2020-02-05 8:07 ` Marc Zyngier
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=c61c95c434dbcf97a0c946f0993d4843@kernel.org \
--to=maz@kernel.org \
--cc=aik@ozlabs.ru \
--cc=drjones@redhat.com \
--cc=eric.auger@redhat.com \
--cc=gshan@redhat.com \
--cc=jthierry@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=shan.gavin@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).