> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-boun...@osuosl.org> On Behalf Of
> Kurt Kanzenbach
> Sent: Monday, February 17, 2025 5:01 PM
> To: Nguyen, Anthony L <anthony.l.ngu...@intel.com>; Kitszel, Przemyslaw
> <przemyslaw.kits...@intel.com>
> Cc: Andrew Lunn <andrew+net...@lunn.ch>; David S. Miller
> <da...@davemloft.net>; Eric Dumazet <eduma...@google.com>; Jakub
> Kicinski <k...@kernel.org>; Paolo Abeni <pab...@redhat.com>; Sebastian
> Andrzej Siewior <bige...@linutronix.de>; Damato, Joe
> <jdam...@fastly.com>; Gerhard Engleder <gerhard@engleder-
> embedded.com>; intel-wired-...@lists.osuosl.org; net...@vger.kernel.org;
> Kurt Kanzenbach <k...@linutronix.de>
> Subject: [Intel-wired-lan] [PATCH iwl-next v2 4/4] igb: Get rid of spurious
> interrupts
> 
> When running the igc with XDP/ZC in busy polling mode with deferral of hard
> interrupts, interrupts still happen from time to time. That is caused by the 
> igb
> task watchdog which triggers Rx interrupts periodically.
> 
> That mechanism has been introduced to overcome skb/memory allocation
> failures [1]. So the Rx clean functions stop processing the Rx ring in case of
> such failure. The task watchdog triggers Rx interrupts periodically in the 
> hope
> that memory became available in the mean time.
> 
> The current behavior is undesirable for real time applications, because the
> driver induced Rx interrupts trigger also the softirq processing. However, all
> real time packets should be processed by the application which uses the busy
> polling method.
> 
> Therefore, only trigger the Rx interrupts in case of real allocation failures.
> Introduce a new flag for signaling that condition.
> 
> Follow the same logic as in commit 8dcf2c212078 ("igc: Get rid of spurious
> interrupts").
> 
> [1] -
> https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git/commit/?id=3b
> e507547e6177e5c808544bd6a2efa2c7f1d436
> 
> Reviewed-by: Joe Damato <jdam...@fastly.com>
> Signed-off-by: Kurt Kanzenbach <k...@linutronix.de>
> ---
>  drivers/net/ethernet/intel/igb/igb.h      |  3 ++-
>  drivers/net/ethernet/intel/igb/igb_main.c | 29
> +++++++++++++++++++++++++----  drivers/net/ethernet/intel/igb/igb_xsk.c  |
> 1 +
>  3 files changed, 28 insertions(+), 5 deletions(-)
> 
Tested-by: Sweta Kumari <sweta.kum...@intel.com>

Reply via email to