qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gicv3 maintenance interrupt not triggering


From: Jose Martins
Subject: Re: gicv3 maintenance interrupt not triggering
Date: Sat, 3 Oct 2020 21:12:48 +0100

Hey Peter! Sorry for the delay. Had to work on other stuff this week.
I've prepared a minimal example binary that should highlight the
problem.

The example consists of two bare-metal guest applications, each one
running on its own virtual machine over the bao hypervisor (plus atf).
One of the guests periodically sends a notification to the other via
an hypercall which translates in the hypervisor injecting an interrupt
in the second virtual machine.
After four of these (which correspond to the number of list registers)
the hypervisor no longer injects the interrupt because it hasn't
received the maintenance interrupt for the acknowledges and therefore
believes no LR is available.
The guests prints a message when it sends or receives the
notification. Right now, I see the receiving vm printing only four
times. If your patch works each "sending notification" message should
be accompanied by a "received notification" ad infinitum.
I've also added a print statement in the hypervisor's maintenance
interrupt handler so it is clear when it is being triggered.

The binary is attached. This is the command I've used to run it:
qemu-system-aarch64 -nographic -M
virt,secure=on,virtualization=on,gic-version=3 -cpu cortex-a53 -smp 4
-m 4G -bios qemugicv3maintbug.bin

Hope this helps,
Jose

On Fri, 2 Oct 2020 at 16:56, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Fri, 25 Sep 2020 at 17:47, Peter Maydell <peter.maydell@linaro.org> wrote:
> > Do you have a test case binary/command line I can use to repro?
>
> Ping? I have a draft of a fix for this but I'd like to test it
> before I send it out to the list...
>
> thanks
> -- PMM

Attachment: qemugicv3maintbug.tar.xz
Description: application/xz


reply via email to

[Prev in Thread] Current Thread [Next in Thread]