qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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...


  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).