[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240528091144.112829-1-shayd@nvidia.com>
Date: Tue, 28 May 2024 12:11:42 +0300
From: Shay Drory <shayd@...dia.com>
To: <netdev@...r.kernel.org>, <pabeni@...hat.com>, <davem@...emloft.net>,
<kuba@...nel.org>, <edumazet@...gle.com>, <gregkh@...uxfoundation.org>,
<david.m.ertman@...el.com>
CC: <rafael@...nel.org>, <ira.weiny@...el.com>, <linux-rdma@...r.kernel.org>,
<leon@...nel.org>, <tariqt@...dia.com>, Shay Drory <shayd@...dia.com>
Subject: [PATCH net-next v5 0/2] Introduce auxiliary bus IRQs sysfs
Today, PCI PFs and VFs, which are anchored on the PCI bus, display their
IRQ information in the <pci_device>/msi_irqs/<irq_num> sysfs files. PCI
subfunctions (SFs) are similar to PFs and VFs and these SFs are anchored
on the auxiliary bus. However, these PCI SFs lack such IRQ information
on the auxiliary bus, leaving users without visibility into which IRQs
are used by the SFs. This absence makes it impossible to debug
situations and to understand the source of interrupts/SFs for
performance tuning and debug.
Additionally, the SFs are multifunctional devices supporting RDMA,
network devices, clocks, and more, similar to their peer PCI PFs and
VFs. Therefore, it is desirable to have SFs' IRQ information available
at the bus/device level.
To overcome the above limitations, this short series extends the
auxiliary bus to display IRQ information in sysfs, similar to that of
PFs and VFs.
It adds an 'irqs' directory under the auxiliary device and includes an
<irq_num> sysfs file within it. Sometimes, the PCI SF auxiliary devices
share the IRQ with other SFs, a detail that is also not available to the
users. Consequently, this <irq_num> file indicates whether the IRQ is
'exclusive' or 'shared'. This 'irqs' directory extenstion is optional,
i.e. only for PCI SFs the sysfs irq information is optionally exposed.
For example:
$ ls /sys/bus/auxiliary/devices/mlx5_core.sf.1/irqs/
50 51 52 53 54 55 56 57 58
$ cat /sys/bus/auxiliary/devices/mlx5_core.sf.1/irqs/52
exclusive
Patch summary:
==============
patch-1 adds auxiliary bus to support irqs used by auxiliary device
patch-2 mlx5 driver using exposing irqs for PCI SF devices via auxiliary
bus
---
v4->v5:
- addressed comments from Greg in patch #1.
v3->4:
- addressed comments from Przemek in patch #1.
v2->v3:
- addressed comments from Parav and Przemek in patch #1.
- fixed a bug in patch #2.
v1->v2:
- addressed comments from Greg, Simon H and kernel test boot in patch #1.
Shay Drory (2):
driver core: auxiliary bus: show auxiliary device IRQs
net/mlx5: Expose SFs IRQs
Documentation/ABI/testing/sysfs-bus-auxiliary | 14 ++
drivers/base/auxiliary.c | 165 +++++++++++++++++-
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 6 +-
.../mellanox/mlx5/core/irq_affinity.c | 15 +-
.../ethernet/mellanox/mlx5/core/mlx5_core.h | 6 +
.../ethernet/mellanox/mlx5/core/mlx5_irq.h | 12 +-
.../net/ethernet/mellanox/mlx5/core/pci_irq.c | 12 +-
.../ethernet/mellanox/mlx5/core/sf/dev/dev.c | 16 +-
include/linux/auxiliary_bus.h | 24 ++-
9 files changed, 247 insertions(+), 23 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-bus-auxiliary
--
2.38.1
Powered by blists - more mailing lists