You could check whether IPI Call func work or not after jailhouse enabled
without my patch.

Thanks,
Peng

Martin Kaistra <[email protected]>于2021年9月30日 周四下午5:12写道:

> Am 30.09.21 um 10:53 schrieb Jan Kiszka:
> > On 30.09.21 09:07, Peng Fan (OSS) wrote:
> >> From: Peng Fan <[email protected]>
> >>
> >> With Linux Kernel 5.15
> >> commit 6abbd6988971a ("irqchip/gic, gic-v3: Make SGIs use
> handle_percpu_devid_irq()"),
> >> the on_each_cpu IPI_CALL_FUNC interrupt active flag will not be cleared
> >> until interrupt handler finish.
> >>
> >> Without Jailhouse hypervisor enabled, everything is ok, but when
> >> enabling jailhouse, HCR_EL2.[FMO | IMO] is set, that means NS-EL1
> >> is actually accessing GICV_DIR when eoi_irq after enter_hypervisor
> >> return. It not able to deactive the interrupt that is actually a
> >> phyiscal irq which in active state.
> >>
> >> Signed-off-by: Peng Fan <[email protected]>
> >> ---
> >>
> >> Note:
> >>   Not tested on Hardware.
> >>
> >>   hypervisor/arch/arm-common/gic-v2.c | 5 +++++
> >>   1 file changed, 5 insertions(+)
> >>
> >> diff --git a/hypervisor/arch/arm-common/gic-v2.c
> b/hypervisor/arch/arm-common/gic-v2.c
> >> index 31371de9..8a9f6201 100644
> >> --- a/hypervisor/arch/arm-common/gic-v2.c
> >> +++ b/hypervisor/arch/arm-common/gic-v2.c
> >> @@ -101,6 +101,7 @@ static int gicv2_cpu_init(struct per_cpu *cpu_data)
> >>      unsigned int mnt_irq =
> system_config->platform_info.arm.maintenance_irq;
> >>      u32 vtr, vmcr;
> >>      u32 cell_gicc_ctlr, cell_gicc_pmr;
> >> +    u32 gicd_isacter;
> >>      unsigned int n;
> >>
> >>      /*
> >> @@ -168,6 +169,10 @@ static int gicv2_cpu_init(struct per_cpu *cpu_data)
> >>
> >>      cpu_data->public.gicc_initialized = true;
> >>
> >> +    /* Deactivate all active SGIs */
> >> +    gicd_isacter = mmio_read32(gicd_base + GICD_ISACTIVER);
> >> +    mmio_write32(gicd_base + GICD_ICACTIVER, gicd_isacter & 0xffff);
> >> +
> >>      /*
> >>       * Forward any pending physical SGIs to the virtual queue.
> >>       * We will convert them into self-inject SGIs, ignoring the
> original
> >>
> >
> > Martin, could this be the issue you are seeing? Are you already using
> 5.15?
> >
> > Jan
> >
>
> Hi Jan,
>
> I am currently running some tests with this patch and it looks
> promising. I have not been able to reproduce the issue so far.
>
> I am not using 5.15, but the mentioned commit 6abbd6988971a is also
> present as a cherry-pick in the xilinx-v2021.1 kernel, that I use.
>
> Thanks,
> Martin
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jailhouse" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jailhouse-dev/942722a3-4e4e-c797-42d5-31488a063990%40linutronix.de
> .
>
--

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/CAEfxd--sehdD0APrvF6GE0LbL3jAs2d%2B-nqM3Kg5h9%3DdWhYRnA%40mail.gmail.com.

Reply via email to