Re: [PATCH v2 5/7] virt: geniezone: Add irqchip support for virtual interrupt injection

From: Yi-De Wu (吳一德)
Date: Fri May 12 2023 - 04:17:15 EST


On Fri, 2023-05-12 at 08:51 +0100, Marc Zyngier wrote:
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
>
>
> On Fri, 12 May 2023 08:19:31 +0100,
> "Yi-De Wu (吳一德)" <Yi-De.Wu@xxxxxxxxxxxx> wrote:
> >
> > On Fri, 2023-04-28 at 19:59 +0100, Marc Zyngier wrote:
> > > External email : Please do not click links or open attachments
> > > until
> > > you have verified the sender or the content.
> > >
> > >
> > > On 2023-04-28 11:36, Yi-De Wu wrote:
> > > > From: "Yingshiuan Pan" <yingshiuan.pan@xxxxxxxxxxxx>
> > > >
> > > > Enable GenieZone to handle virtual interrupt injection request.
> > > >
> > > > Signed-off-by: Yingshiuan Pan <yingshiuan.pan@xxxxxxxxxxxx>
> > > > Signed-off-by: Yi-De Wu <yi-de.wu@xxxxxxxxxxxx>
> > > > ---
> > > > arch/arm64/geniezone/Makefile | 2 +-
> > > > arch/arm64/geniezone/gzvm_arch.c | 24 ++++++--
> > > > arch/arm64/geniezone/gzvm_arch.h | 11 ++++
> > > > arch/arm64/geniezone/gzvm_irqchip.c | 88
> > > > +++++++++++++++++++++++++++++
> > > > drivers/virt/geniezone/gzvm_vm.c | 75
> > > > ++++++++++++++++++++++++
> > > > include/linux/gzvm_drv.h | 4 ++
> > > > include/uapi/linux/gzvm.h | 38 ++++++++++++-
> > > > 7 files changed, 235 insertions(+), 7 deletions(-)
> > > > create mode 100644 arch/arm64/geniezone/gzvm_irqchip.c
> > >
> > > [...]
> > >
> > > > +++ b/arch/arm64/geniezone/gzvm_irqchip.c
> > > > @@ -0,0 +1,88 @@
> > > > +// SPDX-License-Identifier: GPL-2.0
> > > > +/*
> > > > + * Copyright (c) 2023 MediaTek Inc.
> > > > + */
> > > > +
> > > > +#include <linux/irqchip/arm-gic-v3.h>
> > > > +#include <kvm/arm_vgic.h>
> > >
> > > NAK.
> > >
> > > There is no way you can rely on anything from KVM in
> > > your own hypervisor code.
> > >
> >
> > Same with previous discussion, we'd like to copy or rename the
> > related
> > part from KVM and keep the maintainance at our own if it's ok.
>
> Why do you need *ANY* of the KVM stuff? Please fully enumerate these
> dependencies and why you have them.
>
> Directly using KVM stuff for something completely unrelated is not
> OK,
> and will never be.
>
> M.
>
> --
> Without deviation from the norm, progress is not possible.

The particular part we'd like to leverage from KVM are as followed
1. `gfn_to_pfn_memslot` to convert guest physical address(or
intermediate physical address) to physical address
2. get ARM's number of interrupt of different types e.g. number of SGI,
number of PPI...etc