> -----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

Reply via email to