Link IRQs to NAPI instances via netdev-genl API so that users can query
this information with netlink.
Compare the output of /proc/interrupts (noting that IRQ 128 is the
"other" IRQ which does not appear to have a NAPI instance):
$ cat /proc/interrupts | grep enp86s0 | cut --delimiter=":" -f1
128
129
130
131
132
The output from netlink shows the mapping of NAPI IDs to IRQs (again
noting that 128 is absent as it is the "other" IRQ):
$ ./tools/net/ynl/cli.py --spec Documentation/netlink/specs/netdev.yaml \
--dump napi-get --json='{"ifindex": 2}'
[{'defer-hard-irqs': 0,
'gro-flush-timeout': 0,
'id': 8196,
'ifindex': 2,
'irq': 132},
{'defer-hard-irqs': 0,
'gro-flush-timeout': 0,
'id': 8195,
'ifindex': 2,
'irq': 131},
{'defer-hard-irqs': 0,
'gro-flush-timeout': 0,
'id': 8194,
'ifindex': 2,
'irq': 130},
{'defer-hard-irqs': 0,
'gro-flush-timeout': 0,
'id': 8193,
'ifindex': 2,
'irq': 129}]
Signed-off-by: Joe Damato <jdamato@fastly.com>
---
v4:
- Fix typo in commit message (replacing 144 with 128)
v2:
- Line wrap at 80 characters
drivers/net/ethernet/intel/igc/igc_main.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index 6e70bca15db1..7964bbedb16c 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -5576,6 +5576,9 @@ static int igc_request_msix(struct igc_adapter *adapter)
q_vector);
if (err)
goto err_free;
+
+ netif_napi_set_irq(&q_vector->napi,
+ adapter->msix_entries[vector].vector);
}
igc_configure_msix(adapter);
--
2.25.1
On 29/10/2024 22:12, Joe Damato wrote: > Link IRQs to NAPI instances via netdev-genl API so that users can query > this information with netlink. > > Compare the output of /proc/interrupts (noting that IRQ 128 is the > "other" IRQ which does not appear to have a NAPI instance): > > $ cat /proc/interrupts | grep enp86s0 | cut --delimiter=":" -f1 > 128 > 129 > 130 > 131 > 132 > > The output from netlink shows the mapping of NAPI IDs to IRQs (again > noting that 128 is absent as it is the "other" IRQ): > > $ ./tools/net/ynl/cli.py --spec Documentation/netlink/specs/netdev.yaml \ > --dump napi-get --json='{"ifindex": 2}' > > [{'defer-hard-irqs': 0, > 'gro-flush-timeout': 0, > 'id': 8196, > 'ifindex': 2, > 'irq': 132}, > {'defer-hard-irqs': 0, > 'gro-flush-timeout': 0, > 'id': 8195, > 'ifindex': 2, > 'irq': 131}, > {'defer-hard-irqs': 0, > 'gro-flush-timeout': 0, > 'id': 8194, > 'ifindex': 2, > 'irq': 130}, > {'defer-hard-irqs': 0, > 'gro-flush-timeout': 0, > 'id': 8193, > 'ifindex': 2, > 'irq': 129}] > > Signed-off-by: Joe Damato <jdamato@fastly.com> > Reviewed-by: Vitaly Lifshits <vitaly.lifshits@intel.com> > --- > v4: > - Fix typo in commit message (replacing 144 with 128) > > v2: > - Line wrap at 80 characters > > drivers/net/ethernet/intel/igc/igc_main.c | 3 +++ > 1 file changed, 3 insertions(+) > Tested-by: Avigail Dahan <avigailx.dahan@intel.com>
On 10/29/2024 10:12 PM, Joe Damato wrote: > Link IRQs to NAPI instances via netdev-genl API so that users can query > this information with netlink. > > Compare the output of /proc/interrupts (noting that IRQ 128 is the > "other" IRQ which does not appear to have a NAPI instance): > > $ cat /proc/interrupts | grep enp86s0 | cut --delimiter=":" -f1 > 128 > 129 > 130 > 131 > 132 > > The output from netlink shows the mapping of NAPI IDs to IRQs (again > noting that 128 is absent as it is the "other" IRQ): > > $ ./tools/net/ynl/cli.py --spec Documentation/netlink/specs/netdev.yaml \ > --dump napi-get --json='{"ifindex": 2}' > > [{'defer-hard-irqs': 0, > 'gro-flush-timeout': 0, > 'id': 8196, > 'ifindex': 2, > 'irq': 132}, > {'defer-hard-irqs': 0, > 'gro-flush-timeout': 0, > 'id': 8195, > 'ifindex': 2, > 'irq': 131}, > {'defer-hard-irqs': 0, > 'gro-flush-timeout': 0, > 'id': 8194, > 'ifindex': 2, > 'irq': 130}, > {'defer-hard-irqs': 0, > 'gro-flush-timeout': 0, > 'id': 8193, > 'ifindex': 2, > 'irq': 129}] > > Signed-off-by: Joe Damato <jdamato@fastly.com> Reviewed-by: Vitaly Lifshits <vitaly.lifshits@intel.com> > --- > v4: > - Fix typo in commit message (replacing 144 with 128) > > v2: > - Line wrap at 80 characters > > drivers/net/ethernet/intel/igc/igc_main.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c > index 6e70bca15db1..7964bbedb16c 100644 > --- a/drivers/net/ethernet/intel/igc/igc_main.c > +++ b/drivers/net/ethernet/intel/igc/igc_main.c > @@ -5576,6 +5576,9 @@ static int igc_request_msix(struct igc_adapter *adapter) > q_vector); > if (err) > goto err_free; > + > + netif_napi_set_irq(&q_vector->napi, > + adapter->msix_entries[vector].vector); > } > > igc_configure_msix(adapter); >
© 2016 - 2024 Red Hat, Inc.