> -----Original Message----- > From: Song, Yoong Siang <[email protected]> > Sent: Monday, January 19, 2026 11:28 AM > To: Behera, Vivek (DI FA DSP ICC PRC1) <[email protected]>; > Loktionov, Aleksandr <[email protected]>; Keller, Jacob E > <[email protected]>; Nguyen, Anthony L <[email protected]>; > Kitszel, Przemyslaw <[email protected]> > Cc: [email protected] > Subject: RE: [PATCH iwl-net v10] igc: Fix trigger of incorrect irq in > igc_xsk_wakeup > function > > On Monday, January 19, 2026 6:00 PM, Behera, VIVEK > <[email protected]> wrote: > > [...] > > >> >@@ -6938,9 +6939,20 @@ int igc_xsk_wakeup(struct net_device *dev, > >> >u32 queue_id, u32 flags) > >> > if (!ring->xsk_pool) > >> > return -ENXIO; > >> > > >> >- q_vector = adapter->q_vector[queue_id]; > >> >- if (!napi_if_scheduled_mark_missed(&q_vector->napi)) > >> >- igc_trigger_rxtxq_interrupt(adapter, q_vector); > >> >+ if (flags & XDP_WAKEUP_RX) > >> >+ eics |= igc_sw_irq_prep(ring->q_vector); > >> >+ > >> >+ if (flags & XDP_WAKEUP_TX) { > >> >+ /* for IGC_FLAG_QUEUE_PAIRS, this will be NOP as NAPI has > >> >+ * been already marked with NAPIF_STATE_MISSED > >> >+ */ > >> > >> The code looked good to me, but I am not understand this comment. > >> Can you help to explain why the NAPI will be marked as > NAPIF_STATE_MISSED? > >If the napi was running it will be marked as missed and if napi is not > >scheduled the function would return false preparing the eics value for > >soft irq trigger > > Thanks for the explanation, > the current comment "NAPI has been already marked with NAPIF_STATE_MISSED" > is misleading because it implies this always happens for > IGC_FLAG_QUEUE_PAIRS. However, this only occurs when NAPI is currently > running. Could you revise the comment to be more accurate? Something like: > > /* For IGC_FLAG_QUEUE_PAIRS, if NAPI is already > * running from the RX path, it will have been > * marked as missed, making this TX call a NOP. > */ > Okay. I will update the comment > >> per my understanding, for IGC_FLAG_QUEUE_PAIRS, rx_ ring->q_vector > >> will be equal to tx_ ring->q_vector, thus, no harm for eics to "OR" the > >> same > value twice. > >> Am I right? > >Yes. Exactly for the IGC_FLAG_QUEUE_PAIRS the q_vector its napi are The > >same for rx and tx so calling napi_if_scheduled_mark_missed the second > >time would not have change anything. > >If IGC_FLAG_QUEUE_PAIRS is not active the q_vector extracted from the > >tx_ring would be different and so would be it's napi which will be then > >used as the argument in napi_if_scheduled_mark_missed
Re: [Intel-wired-lan] [PATCH iwl-net v10] igc: Fix trigger of incorrect irq in igc_xsk_wakeup function
Behera, VIVEK via Intel-wired-lan Mon, 19 Jan 2026 02:45:15 -0800
- [Intel-wired-lan] [PATCH iwl-net v10] ig... Vivek Behera via Intel-wired-lan
- Re: [Intel-wired-lan] [PATCH iwl-ne... Song, Yoong Siang
- Re: [Intel-wired-lan] [PATCH iw... Behera, VIVEK via Intel-wired-lan
- Re: [Intel-wired-lan] [PATC... Song, Yoong Siang
- Re: [Intel-wired-lan] [... Behera, VIVEK via Intel-wired-lan
