Message ID | 20241029201218.355714-2-jdamato@fastly.com |
---|---|
State | Under Review |
Delegated to: | Anthony Nguyen |
Headers | show |
Series | igc: Link IRQs and queues to NAPIs | expand |
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); >
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>
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);
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(+)