mbox series

[0/2] Add support for MSI injection on Arm

Message ID cover.1705066642.git.mykyta_poturai@epam.com (mailing list archive)
Headers show
Series Add support for MSI injection on Arm | expand

Message

Mykyta Poturai Jan. 14, 2024, 10:01 a.m. UTC
This series adds the base support for MSI injection on Arm. This is
needed to streamline virtio-pci interrupt triggering.

With this patches, MSIs can be triggered in guests by issuing the new
DM op, inject_msi2. This op is similar to inject_msi, but it allows
to specify the source id of the MSI.

We chose the approach of adding a new DM op instead of using the pad
field of inject_msi because we have no clear way of distinguishing
between set and unset pad fields. New implementations also adds flags
field to clearly specify if the SBDF is set.

Patches were tested on QEMU with QEMU virtio-pci backends, with 
virtio-pci patches and patches for ITS support for DomUs applied.

Virtio-pci patches:
https://github.com/xen-troops/xen/tree/xen-4.18-xt0.2

ITS patches:
https://github.com/stewdk/xen/commits/pcie-passthrough-arm-vpci-v11

Mykyta Poturai (2):
  arm: vgic: Add the ability to trigger MSIs from the Hypervisor
  xen/dm: arm: Introduce inject_msi2 DM op

 tools/include/xendevicemodel.h               | 14 ++++++++
 tools/libs/devicemodel/core.c                | 22 ++++++++++++
 tools/libs/devicemodel/libxendevicemodel.map |  5 +++
 xen/arch/arm/dm.c                            | 15 +++++++++
 xen/arch/arm/include/asm/vgic.h              | 11 ++++++
 xen/arch/arm/vgic-v3-its.c                   | 35 ++++++++++++++++++++
 xen/arch/x86/hvm/dm.c                        | 13 ++++++++
 xen/include/public/hvm/dm_op.h               | 12 +++++++
 8 files changed, 127 insertions(+)

Comments

Julien Grall Jan. 24, 2024, 11:26 a.m. UTC | #1
Hi,

On 14/01/2024 10:01, Mykyta Poturai wrote:
> This series adds the base support for MSI injection on Arm. This is
> needed to streamline virtio-pci interrupt triggering.
> 
> With this patches, MSIs can be triggered in guests by issuing the new
> DM op, inject_msi2. This op is similar to inject_msi, but it allows
> to specify the source id of the MSI.
> 
> We chose the approach of adding a new DM op instead of using the pad
> field of inject_msi because we have no clear way of distinguishing
> between set and unset pad fields. New implementations also adds flags
> field to clearly specify if the SBDF is set.
> 
> Patches were tested on QEMU with QEMU virtio-pci backends, with
> virtio-pci patches and patches for ITS support for DomUs applied.

I have seen some virtio-pci patches on the ML. But nothing about ITS 
support in the DomUs (at least in recent months).

It would feel odd to me to even consider merging this series before the 
ITS support for DomUs is merged. So what's the plan for it?

Cheers,