Message ID | 20250305180901.128286-1-jdamato@fastly.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [iwl-net] igc: Fix XSK queue NAPI ID mapping | expand |
On 05.03.25 19:09, Joe Damato wrote: > In commit b65969856d4f ("igc: Link queues to NAPI instances"), the XSK > queues were incorrectly unmapped from their NAPI instances. After > discussion on the mailing list and the introduction of a test to codify > the expected behavior, we can see that the unmapping causes the > check_xsk test to fail: > > NETIF=enp86s0 ./tools/testing/selftests/drivers/net/queues.py > > [...] > # Check| ksft_eq(q.get('xsk', None), {}, > # Check failed None != {} xsk attr on queue we configured > not ok 4 queues.check_xsk > > After this commit, the test passes: > > ok 4 queues.check_xsk > > Note that the test itself is only in net-next, so I tested this change > by applying it to my local net-next tree, booting, and running the test. > > Cc: stable@vger.kernel.org > Fixes: b65969856d4f ("igc: Link queues to NAPI instances") > Signed-off-by: Joe Damato <jdamato@fastly.com> > --- > drivers/net/ethernet/intel/igc/igc_xdp.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/drivers/net/ethernet/intel/igc/igc_xdp.c b/drivers/net/ethernet/intel/igc/igc_xdp.c > index 13bbd3346e01..869815f48ac1 100644 > --- a/drivers/net/ethernet/intel/igc/igc_xdp.c > +++ b/drivers/net/ethernet/intel/igc/igc_xdp.c > @@ -86,7 +86,6 @@ static int igc_xdp_enable_pool(struct igc_adapter *adapter, > napi_disable(napi); > } > > - igc_set_queue_napi(adapter, queue_id, NULL); > set_bit(IGC_RING_FLAG_AF_XDP_ZC, &rx_ring->flags); > set_bit(IGC_RING_FLAG_AF_XDP_ZC, &tx_ring->flags); > > @@ -136,7 +135,6 @@ static int igc_xdp_disable_pool(struct igc_adapter *adapter, u16 queue_id) > xsk_pool_dma_unmap(pool, IGC_RX_DMA_ATTR); > clear_bit(IGC_RING_FLAG_AF_XDP_ZC, &rx_ring->flags); > clear_bit(IGC_RING_FLAG_AF_XDP_ZC, &tx_ring->flags); > - igc_set_queue_napi(adapter, queue_id, napi); > > if (needs_reset) { > napi_enable(napi); > > base-commit: 3c9231ea6497dfc50ac0ef69fff484da27d0df66 igc_set_queue_napi() could be made static as it only used within igc_main.c after this change. Reviewed-by: Gerhard Engleder <gerhard@engleder-embedded.com>
diff --git a/drivers/net/ethernet/intel/igc/igc_xdp.c b/drivers/net/ethernet/intel/igc/igc_xdp.c index 13bbd3346e01..869815f48ac1 100644 --- a/drivers/net/ethernet/intel/igc/igc_xdp.c +++ b/drivers/net/ethernet/intel/igc/igc_xdp.c @@ -86,7 +86,6 @@ static int igc_xdp_enable_pool(struct igc_adapter *adapter, napi_disable(napi); } - igc_set_queue_napi(adapter, queue_id, NULL); set_bit(IGC_RING_FLAG_AF_XDP_ZC, &rx_ring->flags); set_bit(IGC_RING_FLAG_AF_XDP_ZC, &tx_ring->flags); @@ -136,7 +135,6 @@ static int igc_xdp_disable_pool(struct igc_adapter *adapter, u16 queue_id) xsk_pool_dma_unmap(pool, IGC_RX_DMA_ATTR); clear_bit(IGC_RING_FLAG_AF_XDP_ZC, &rx_ring->flags); clear_bit(IGC_RING_FLAG_AF_XDP_ZC, &tx_ring->flags); - igc_set_queue_napi(adapter, queue_id, napi); if (needs_reset) { napi_enable(napi);
In commit b65969856d4f ("igc: Link queues to NAPI instances"), the XSK queues were incorrectly unmapped from their NAPI instances. After discussion on the mailing list and the introduction of a test to codify the expected behavior, we can see that the unmapping causes the check_xsk test to fail: NETIF=enp86s0 ./tools/testing/selftests/drivers/net/queues.py [...] # Check| ksft_eq(q.get('xsk', None), {}, # Check failed None != {} xsk attr on queue we configured not ok 4 queues.check_xsk After this commit, the test passes: ok 4 queues.check_xsk Note that the test itself is only in net-next, so I tested this change by applying it to my local net-next tree, booting, and running the test. Cc: stable@vger.kernel.org Fixes: b65969856d4f ("igc: Link queues to NAPI instances") Signed-off-by: Joe Damato <jdamato@fastly.com> --- drivers/net/ethernet/intel/igc/igc_xdp.c | 2 -- 1 file changed, 2 deletions(-) base-commit: 3c9231ea6497dfc50ac0ef69fff484da27d0df66