Re: [PATCH net-next 2/6] igc: Get rid of spurious interrupts
From: Kurt Kanzenbach <kurt@linutronix.de>
Date: 2024-09-05 09:44:24
Also in:
bpf
Attachments
- signature.asc [application/pgp-signature] 861 bytes
From: Kurt Kanzenbach <kurt@linutronix.de>
Date: 2024-09-05 09:44:24
Also in:
bpf
On Thu Sep 05 2024, Dima Ruinskiy wrote:
On 31/08/2024 0:04, Tony Nguyen wrote:quoted
- wr32(IGC_ICS, IGC_ICS_RXDMT0); + struct igc_ring *rx_ring = adapter->rx_ring[0]; + + if (test_bit(IGC_RING_FLAG_RX_ALLOC_FAILED, &rx_ring->flags)) { + clear_bit(IGC_RING_FLAG_RX_ALLOC_FAILED, &rx_ring->flags); + wr32(IGC_ICS, IGC_ICS_RXDMT0); + }I have some concerns specifically about this code (Legacy/MSI interrupt case). The code only checks the IGC_RING_FLAG_RX_ALLOC_FAILED flag of ring 0. What if the failure was on another ring? It seems proper to iterate over all Rx rings in the adapter (I believe igc can have up to 4).
In case of Legacy/MSI only one vector, one rx queue and one tx queue is utilized. The MSI-X code has to check for all rings, which it does. Thanks, Kurt