[PATCH v3 0/1] x86/hyperv: MSI parent domain conversion

Nam Cao posted 1 patch 4 months, 4 weeks ago
arch/x86/hyperv/irqdomain.c | 111 ++++++++++++++++++++++++------------
drivers/hv/Kconfig          |   1 +
2 files changed, 77 insertions(+), 35 deletions(-)
[PATCH v3 0/1] x86/hyperv: MSI parent domain conversion
Posted by Nam Cao 4 months, 4 weeks ago
The initial implementation of PCI/MSI interrupt domains in the hierarchical
interrupt domain model used a shortcut by providing a global PCI/MSI
domain.

This works because the PCI/MSI[X] hardware is standardized and uniform, but
it violates the basic design principle of hierarchical interrupt domains:
Each hardware block involved in the interrupt delivery chain should have a
separate interrupt domain.

For PCI/MSI[X], the interrupt controller is per PCI device and not a global
made-up entity.

Unsurprisingly, the shortcut turned out to have downsides as it does not
allow dynamic allocation of interrupt vectors after initialization and it
prevents supporting IMS on PCI. For further details, see:

https://lore.kernel.org/lkml/20221111120501.026511281@linutronix.de/

The solution is implementing per device MSI domains, this means the
entities which provide global PCI/MSI domain so far have to implement MSI
parent domain functionality instead.

This series converts the x86 hyperv driver to implement MSI parent domain.

Changes in v3:

  - Drop the merged patch

  - Rebase onto hyperv-fixes

 arch/x86/hyperv/irqdomain.c | 111 ++++++++++++++++++++++++------------
 drivers/hv/Kconfig          |   1 +
 2 files changed, 77 insertions(+), 35 deletions(-)

-- 
2.49.0
Re: [PATCH v3 0/1] x86/hyperv: MSI parent domain conversion
Posted by Wei Liu 4 months, 3 weeks ago
Nuno, can you please take a look at this patch?

On Fri, Jul 18, 2025 at 09:57:49PM +0200, Nam Cao wrote:
> The initial implementation of PCI/MSI interrupt domains in the hierarchical
> interrupt domain model used a shortcut by providing a global PCI/MSI
> domain.
> 
> This works because the PCI/MSI[X] hardware is standardized and uniform, but
> it violates the basic design principle of hierarchical interrupt domains:
> Each hardware block involved in the interrupt delivery chain should have a
> separate interrupt domain.
> 
> For PCI/MSI[X], the interrupt controller is per PCI device and not a global
> made-up entity.
> 
> Unsurprisingly, the shortcut turned out to have downsides as it does not
> allow dynamic allocation of interrupt vectors after initialization and it
> prevents supporting IMS on PCI. For further details, see:
> 
> https://lore.kernel.org/lkml/20221111120501.026511281@linutronix.de/
> 
> The solution is implementing per device MSI domains, this means the
> entities which provide global PCI/MSI domain so far have to implement MSI
> parent domain functionality instead.
> 
> This series converts the x86 hyperv driver to implement MSI parent domain.
> 
> Changes in v3:
> 
>   - Drop the merged patch
> 
>   - Rebase onto hyperv-fixes
> 
>  arch/x86/hyperv/irqdomain.c | 111 ++++++++++++++++++++++++------------
>  drivers/hv/Kconfig          |   1 +
>  2 files changed, 77 insertions(+), 35 deletions(-)
> 
> -- 
> 2.49.0
>
Re: [PATCH v3 0/1] x86/hyperv: MSI parent domain conversion
Posted by Thomas Gleixner 3 months, 1 week ago
On Thu, Jul 24 2025 at 16:47, Wei Liu wrote:
> Nuno, can you please take a look at this patch?

Can we get this moving so that the legacy PCI stuff can be retired?

Thanks,

        tglx