mbox series

[RFC,0/2] irqchip/gic-v3-its: Introduce virtual ITS

Message ID 20210622155313.3819952-1-boqun.feng@gmail.com (mailing list archive)
Headers show
Series irqchip/gic-v3-its: Introduce virtual ITS | expand

Message

Boqun Feng June 22, 2021, 3:53 p.m. UTC
Hi Marc,

Here is an RFC for supporting platforms having LPI supported but without
ITS. And this is for the virtual PCI support for ARM64 Hyper-V guests.
We currently choose this approach (LPI w/o ITS) because a) it's allowed
for GICv3 and b) ITS may not be a more efficient way to configure LPIs
compared to hypercalls, but we'd like to get feedbacks from the
community.

Besides, patch #1 fixes a bug which I found while I was at it.

Looking forwards to any comment and suggestion!

Regards,
Boqun

Boqun Feng (2):
  irqchip/gic-v3-its: Free collections if its domain initialization
    fails
  irqchip/gic-v3-its: Introduce virtual ITS

 drivers/irqchip/irq-gic-v3-its.c | 124 ++++++++++++++++++++++++++++---
 1 file changed, 115 insertions(+), 9 deletions(-)

Comments

Marc Zyngier June 22, 2021, 5:32 p.m. UTC | #1
On Tue, 22 Jun 2021 16:53:11 +0100,
Boqun Feng <boqun.feng@gmail.com> wrote:
> 
> Hi Marc,
> 
> Here is an RFC for supporting platforms having LPI supported but without
> ITS. And this is for the virtual PCI support for ARM64 Hyper-V guests.
> We currently choose this approach (LPI w/o ITS) because a) it's allowed
> for GICv3 and b) ITS may not be a more efficient way to configure LPIs
> compared to hypercalls, but we'd like to get feedbacks from the
> community.
> 
> Besides, patch #1 fixes a bug which I found while I was at it.
> 
> Looking forwards to any comment and suggestion!

My suggestion is to not do that. The ITS driver is used to drive an
ITS. That, and only that. The simple fact that you mention hypercalls
shows that this is *not* what the architecture allows.

So if you are going to implement something that is evidently outside
of the scope of the architecture, keep it in some Hyper-V specific
code that doesn't involve the ITS driver.

All you need is something that will piggy-back on top of the GIC
driver using a hierarchical driver. We support that today. Of course,
you'll have to invent your own firmware interface for discovery.

Thanks,

	M.