RE: [PATCH RFC v2 04/18] irq/dev-msi: Introduce APIs to allocate/free dev-msi interrupts

From: Dey, Megha
Date: Wed Aug 05 2020 - 16:19:40 EST


Hi Jason,

> -----Original Message-----
> From: Jason Gunthorpe <jgg@xxxxxxxxxxxx>
> Sent: Wednesday, July 22, 2020 10:35 AM
> To: Dey, Megha <megha.dey@xxxxxxxxx>
> Cc: Jiang, Dave <dave.jiang@xxxxxxxxx>; vkoul@xxxxxxxxxx; maz@xxxxxxxxxx;
> bhelgaas@xxxxxxxxxx; rafael@xxxxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx;
> tglx@xxxxxxxxxxxxx; hpa@xxxxxxxxx; alex.williamson@xxxxxxxxxx; Pan, Jacob
> jun <jacob.jun.pan@xxxxxxxxx>; Raj, Ashok <ashok.raj@xxxxxxxxx>; Liu, Yi L
> <yi.l.liu@xxxxxxxxx>; Lu, Baolu <baolu.lu@xxxxxxxxx>; Tian, Kevin
> <kevin.tian@xxxxxxxxx>; Kumar, Sanjay K <sanjay.k.kumar@xxxxxxxxx>; Luck,
> Tony <tony.luck@xxxxxxxxx>; Lin, Jing <jing.lin@xxxxxxxxx>; Williams, Dan J
> <dan.j.williams@xxxxxxxxx>; kwankhede@xxxxxxxxxx; eric.auger@xxxxxxxxxx;
> parav@xxxxxxxxxxxx; Hansen, Dave <dave.hansen@xxxxxxxxx>;
> netanelg@xxxxxxxxxxxx; shahafs@xxxxxxxxxxxx; yan.y.zhao@xxxxxxxxxxxxxxx;
> pbonzini@xxxxxxxxxx; Ortiz, Samuel <samuel.ortiz@xxxxxxxxx>; Hossain, Mona
> <mona.hossain@xxxxxxxxx>; dmaengine@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; x86@xxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx;
> kvm@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH RFC v2 04/18] irq/dev-msi: Introduce APIs to allocate/free
> dev-msi interrupts
>
> On Wed, Jul 22, 2020 at 10:05:52AM -0700, Dey, Megha wrote:
> >
> >
> > On 7/21/2020 9:25 AM, Jason Gunthorpe wrote:
> > > On Tue, Jul 21, 2020 at 09:02:41AM -0700, Dave Jiang wrote:
> > > > From: Megha Dey <megha.dey@xxxxxxxxx>
> > > >
> > > > The dev-msi interrupts are to be allocated/freed only for custom
> > > > devices, not standard PCI-MSIX devices.
> > > >
> > > > These interrupts are device-defined and they are distinct from the
> > > > already existing msi interrupts:
> > > > pci-msi: Standard PCI MSI/MSI-X setup format
> > > > platform-msi: Platform custom, but device-driver opaque MSI
> > > > setup/control
> > > > arch-msi: fallback for devices not assigned to the generic PCI
> > > > domain
> > > > dev-msi: device defined IRQ domain for ancillary devices. For e.g.
> > > > DSA portal devices use device specific IMS(Interrupt message store)
> interrupts.
> > > >
> > > > dev-msi interrupts are represented by their own device-type. That
> > > > means
> > > > dev->msi_list is never contended for different interrupt types. It
> > > > will either be all PCI-MSI or all device-defined.
> > >
> > > Not sure I follow this, where is the enforcement that only dev-msi
> > > or normal MSI is being used at one time on a single struct device?
> > >
> >
> > So, in the dev_msi_alloc_irqs, I first check if the dev_is_pci..
> > If it is a pci device, it is forbidden to use dev-msi and must use the
> > pci subsystem calls. dev-msi is to be used for all other custom
> > devices, mdev or otherwise.
>
> What prevents creating a dev-msi directly on the struct pci_device ?

In the next patchset, I have explicitly added code which denies PCI devices from using the dev_msi alloc/free APIS
>
> Jason