Thread (22 messages) 22 messages, 6 authors, 2021-07-22

Re: [PATCH V4 1/3] driver core: mark device as irq affinity managed if any irq is managed

From: John Garry <hidden>
Date: 2021-07-21 10:01:29
Also in: linux-nvme, linux-pci

+ Marc

On 21/07/2021 08:24, Christoph Hellwig wrote:
On Wed, Jul 21, 2021 at 09:20:00AM +0200, Thomas Gleixner wrote:
quoted
quoted
Just walking the list seems fine to me given that this is not a
performance criticial path.  But what are the locking implications?
At the moment there are none because the list is initialized in the
setup path and never modified afterwards. Though that might change
sooner than later to fix the virtio wreckage vs. MSI-X.
What is the issue there?  Either way, if we keep the helper in the
IRQ code it should be easy to spot for anyone adding the locking.
quoted
quoted
Also does the above imply this won't work for your platform MSI case?
The msi descriptors are attached to struct device and independent of
platform/PCI/whatever.
That's what I assumed, but this text from John suggested there is
something odd about the platform case:

"Did you consider that for PCI .."
.
For this special platform MSI case there is a secondary interrupt 
controller (called mbigen) which generates the MSI on behalf of the 
device, which I think the MSI belongs to (and not the device, itself).

See "latter case" mentioned in commit 91f90daa4fb2.

I think Marc and Thomas can explain this much better than I could.

Anyway, as I mentioned earlier, I think that this specific problem is 
unique and can be solved without using a function which examines the 
struct device.msi_list .

Thanks,
John
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help