[PATCH v3 0/2] msi: extend msi_irqs sysfs entries to platform devices

From: Barry Song
Date: Thu Aug 12 2021 - 23:57:07 EST


From: Barry Song <song.bao.hua@xxxxxxxxxxxxx>

-v3:
added Acked-by of Greg Kroah-Hartman and Bjorn Helgaas, thanks!
refined commit log with respect to Bjorn's comments

Hi Thomas & Marc,
Would you please handle this series? Thanks!

-v2:
extract common code for msi_irqs sysfs populate/destory from PCI to MSI core,
platform_device can directly reuse common code;
https://lore.kernel.org/lkml/20210812105341.51657-1-21cnbao@xxxxxxxxx/

-v1:
https://lore.kernel.org/lkml/20210811105020.12980-1-song.bao.hua@xxxxxxxxxxxxx/

Just like pci devices have msi_irqs which can be used by userspace irq affinity
tools or applications to bind irqs, platform devices also widely support msi
irqs.
For platform devices, for example ARM SMMU, userspaces also care about its msi
irqs as applications can know the mapping between devices and irqs and then
make smarter decision on handling irq affinity. For example, for SVA mode,
it is better to pin io page fault to the numa node applications are running
on. Otherwise, io page fault will get a remote page from the node iopf happens
rather than from the node applications are running on.

The first patch extracts the sysfs populate/destory code from PCI to
MSI core. The 2nd patch lets platform-msi export msi_irqs entry so that
userspace can know the mapping between devices and irqs for platform
devices.

Barry Song (2):
genirq/msi: Extract common sysfs populate entries to MSI core from PCI
platform-msi: Add ABI to show msi_irqs of platform devices

Documentation/ABI/testing/sysfs-bus-platform | 14 +++
drivers/base/platform-msi.c | 10 ++
drivers/pci/msi.c | 124 ++-----------------------
include/linux/msi.h | 4 +
kernel/irq/msi.c | 134 +++++++++++++++++++++++++++
5 files changed, 171 insertions(+), 115 deletions(-)

--
1.8.3.1