[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <648e6fa0333882bd4b8503688306969cfeeeb249.camel@linux.ibm.com>
Date: Tue, 18 Nov 2025 11:15:36 +0100
From: Niklas Schnelle <schnelle@...ux.ibm.com>
To: Tobias Schumacher <ts@...p.linux.ibm.com>,
Farhan Ali
<alifm@...ux.ibm.com>
Cc: Tobias Schumacher <ts@...ux.ibm.com>, Heiko Carstens
<hca@...ux.ibm.com>,
Vasily Gorbik <gor@...ux.ibm.com>,
Alexander Gordeev
<agordeev@...ux.ibm.com>,
Christian Borntraeger
<borntraeger@...ux.ibm.com>,
Sven Schnelle <svens@...ux.ibm.com>,
Gerald
Schaefer <gerald.schaefer@...ux.ibm.com>,
Gerd Bayer
<gbayer@...ux.ibm.com>, Halil Pasic <pasic@...ux.ibm.com>,
Matthew Rosato
<mjrosato@...ux.ibm.com>,
Thomas Gleixner <tglx@...utronix.de>, linux-kernel@...r.kernel.org,
linux-s390@...r.kernel.org
Subject: Re: [PATCH v2 2/2] s390/pci: Migrate s390 IRQ logic to IRQ domain
API
On Tue, 2025-11-18 at 08:14 +0100, Tobias Schumacher wrote:
> Am 2025-11-17 23:46, schrieb Farhan Ali:
> > On 11/17/2025 12:59 AM, Tobias Schumacher wrote:
> --- snip ---
>
> > > diff --git a/arch/s390/pci/pci_bus.c b/arch/s390/pci/pci_bus.c
> > > index
> > > be8c697fea0cc755cfdb4fb0a9e3b95183bec0dc..2be33cfb8970409db4fcb75ea73543f49b583a5c
> > > 100644
> > > --- a/arch/s390/pci/pci_bus.c
> > > +++ b/arch/s390/pci/pci_bus.c
> > > @@ -210,6 +210,7 @@ static int zpci_bus_create_pci_bus(struct zpci_bus
> > > *zbus, struct zpci_dev *fr, s
> > > }
> > > zbus->bus = bus;
> > > + zpci_set_msi_parent_domain(zbus);
> >
> > Why are we setting the zpci_set_msi_parent_domain per root device
> > instead of per zpci device?
>
> On other architectures the parent domain is set once for the root bus.
> During bus scanning, pci_device_add() then sets the domain in the device
> by calling pci_set_msi_domain(). By adding the parent domain to the root
> busses, we are using the same mechanisms and are as close as possible to
> other architectures.
>
I didn't think about this enough, but reading your argument I wonder if
that points to having a parent domain per PCI domain vs having a single
global one like you have at the moment. And since we're limited to one
struct zpci_bus per PCI domain in the current code with struct
zpci_bus::bus being a root bus and the zpci_bus also carrying the
domain number, I think that would more closely match the parent domain
per PCI domain model.
As for Farhan's comment as I understand it the common code still
creates child MSI domains for the individual zpci devices. So both a
global parent domain as in this version or a per zpci bus domain will
work we just want to keep things as similar to non virtual PCI
topologies as possible I think.
Thanks,
Niklas
Powered by blists - more mailing lists