Re: [PATCH 0/3] MSI: Track device proxying when allocating MSIs

From: John Garry
Date: Mon Nov 30 2020 - 08:15:55 EST


On 29/11/2020 13:52, Marc Zyngier wrote:
This series aims to plug a gap found with John's "managed interrupts
for platform devices" series.

We have a couple of cases where we allocate MSIs for a device, but the
endpoint generating the actual interrupts (let's call it the "logical
device") isn't the one being seen generating the MSIs (the "effective
device"):

- PCI devices behind a non transparent bridge
- Devices attached to a wire-to-MSI bridge

For interrupt infrastructures such as the ITS (where the effective
device ID is part of the translation), it is important decouple the
lifetime of the effective device mapping from the interrupt allocation
on behalf of the logical device. Yes, I have a headache too.

To achieve this split, let's tag the such allocations with a new flag
that convey the fact that the effective device isn't the logical
one. This mostly affects the platform-MSI subsystem.

Subsequent patches add handling of this new flag in the GICv3 ITS
(though there may be scope for something more generic in the case of
the last patch).

Hi Marc,

Tested-by: John Garry <john.garry@xxxxxxxxxx>

Thanks!


Marc Zyngier (3):
platform-msi: Track shared domain allocation
irqchip/gic-v3-its: Tag ITS device as shared if allocating for a proxy
device
irqchip/gic-v3-its: Flag device allocation as proxied if behind a PCI
bridge

drivers/base/platform-msi.c | 7 +++++++
drivers/irqchip/irq-gic-v3-its-pci-msi.c | 11 ++++++++---
drivers/irqchip/irq-gic-v3-its.c | 3 +++
include/asm-generic/msi.h | 4 ++++
4 files changed, 22 insertions(+), 3 deletions(-)