public inbox for bpf@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next] igc: Fix TX drops in XDP ZC
@ 2025-03-19 14:18 Zdenek Bouska
  2025-03-19 15:06 ` Song, Yoong Siang
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Zdenek Bouska @ 2025-03-19 14:18 UTC (permalink / raw)
  To: Tony Nguyen, Przemek Kitszel, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Alexei Starovoitov,
	Daniel Borkmann, Jesper Dangaard Brouer, John Fastabend,
	Andre Guedes, Vedang Patel, Maciej Fijalkowski, Jithu Joseph,
	Song Yoong Siang, Florian Bezdeka
  Cc: intel-wired-lan, netdev, linux-kernel, bpf, Zdenek Bouska

Fixes TX frame drops in AF_XDP zero copy mode when budget < 4.
xsk_tx_peek_desc() consumed TX frame and it was ignored because of
low budget. Not even AF_XDP completion was done for dropped frames.

It can be reproduced on i226 by sending 100000x 60 B frames with
launch time set to minimal IPG (672 ns between starts of frames)
on 1Gbit/s. Always 1026 frames are not sent and are missing a
completion.

Fixes: 9acf59a752d4c ("igc: Enable TX via AF_XDP zero-copy")
Signed-off-by: Zdenek Bouska <zdenek.bouska@siemens.com>
---
 drivers/net/ethernet/intel/igc/igc_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index 472f009630c9..f2e0a30a3497 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -3042,7 +3042,7 @@ static void igc_xdp_xmit_zc(struct igc_ring *ring)
 	 * descriptors. Therefore, to be safe, we always ensure we have at least
 	 * 4 descriptors available.
 	 */
-	while (xsk_tx_peek_desc(pool, &xdp_desc) && budget >= 4) {
+	while (budget >= 4 && xsk_tx_peek_desc(pool, &xdp_desc)) {
 		struct igc_metadata_request meta_req;
 		struct xsk_tx_metadata *meta = NULL;
 		struct igc_tx_buffer *bi;

---
base-commit: 8ef890df4031121a94407c84659125cbccd3fdbe
change-id: 20250310-igc-fix-tx-zero-copy-drops-1c4a81441033

Best regards,
-- 
Zdenek Bouska

Siemens, s.r.o.
Foundational Technologies


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* RE: [PATCH net-next] igc: Fix TX drops in XDP ZC
  2025-03-19 14:18 [PATCH net-next] igc: Fix TX drops in XDP ZC Zdenek Bouska
@ 2025-03-19 15:06 ` Song, Yoong Siang
  2025-03-19 16:16 ` Florian Bezdeka
  2025-03-27 13:07 ` [Intel-wired-lan] " Mor Bar-Gabay
  2 siblings, 0 replies; 4+ messages in thread
From: Song, Yoong Siang @ 2025-03-19 15:06 UTC (permalink / raw)
  To: Bouska, Zdenek, Nguyen, Anthony L, Kitszel, Przemyslaw,
	Andrew Lunn, David S. Miller, Dumazet, Eric, Jakub Kicinski,
	Paolo Abeni, Alexei Starovoitov, Daniel Borkmann,
	Jesper Dangaard Brouer, John Fastabend, Andre Guedes,
	Vedang Patel, Fijalkowski, Maciej, Joseph, Jithu,
	Bezdeka, Florian
  Cc: intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, bpf@vger.kernel.org, Bouska, Zdenek

On Wednesday, March 19, 2025 10:19 PM, Zdenek Bouska <zdenek.bouska@siemens.com> wrote:
>Fixes TX frame drops in AF_XDP zero copy mode when budget < 4.
>xsk_tx_peek_desc() consumed TX frame and it was ignored because of
>low budget. Not even AF_XDP completion was done for dropped frames.
>
>It can be reproduced on i226 by sending 100000x 60 B frames with
>launch time set to minimal IPG (672 ns between starts of frames)
>on 1Gbit/s. Always 1026 frames are not sent and are missing a
>completion.
>
>Fixes: 9acf59a752d4c ("igc: Enable TX via AF_XDP zero-copy")
>Signed-off-by: Zdenek Bouska <zdenek.bouska@siemens.com>

Reviewed-by: Song Yoong Siang <yoong.siang.song@intel.com>

>---
> drivers/net/ethernet/intel/igc/igc_main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/drivers/net/ethernet/intel/igc/igc_main.c
>b/drivers/net/ethernet/intel/igc/igc_main.c
>index 472f009630c9..f2e0a30a3497 100644
>--- a/drivers/net/ethernet/intel/igc/igc_main.c
>+++ b/drivers/net/ethernet/intel/igc/igc_main.c
>@@ -3042,7 +3042,7 @@ static void igc_xdp_xmit_zc(struct igc_ring *ring)
> 	 * descriptors. Therefore, to be safe, we always ensure we have at least
> 	 * 4 descriptors available.
> 	 */
>-	while (xsk_tx_peek_desc(pool, &xdp_desc) && budget >= 4) {
>+	while (budget >= 4 && xsk_tx_peek_desc(pool, &xdp_desc)) {
> 		struct igc_metadata_request meta_req;
> 		struct xsk_tx_metadata *meta = NULL;
> 		struct igc_tx_buffer *bi;
>
>---
>base-commit: 8ef890df4031121a94407c84659125cbccd3fdbe
>change-id: 20250310-igc-fix-tx-zero-copy-drops-1c4a81441033
>
>Best regards,
>--
>Zdenek Bouska
>
>Siemens, s.r.o.
>Foundational Technologies


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH net-next] igc: Fix TX drops in XDP ZC
  2025-03-19 14:18 [PATCH net-next] igc: Fix TX drops in XDP ZC Zdenek Bouska
  2025-03-19 15:06 ` Song, Yoong Siang
@ 2025-03-19 16:16 ` Florian Bezdeka
  2025-03-27 13:07 ` [Intel-wired-lan] " Mor Bar-Gabay
  2 siblings, 0 replies; 4+ messages in thread
From: Florian Bezdeka @ 2025-03-19 16:16 UTC (permalink / raw)
  To: Zdenek Bouska, Tony Nguyen, Przemek Kitszel, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Alexei Starovoitov, Daniel Borkmann, Jesper Dangaard Brouer,
	John Fastabend, Andre Guedes, Vedang Patel, Maciej Fijalkowski,
	Jithu Joseph, Song Yoong Siang
  Cc: intel-wired-lan, netdev, linux-kernel, bpf

On Wed, 2025-03-19 at 15:18 +0100, Zdenek Bouska wrote:
> Fixes TX frame drops in AF_XDP zero copy mode when budget < 4.
> xsk_tx_peek_desc() consumed TX frame and it was ignored because of
> low budget. Not even AF_XDP completion was done for dropped frames.
> 
> It can be reproduced on i226 by sending 100000x 60 B frames with
> launch time set to minimal IPG (672 ns between starts of frames)
> on 1Gbit/s. Always 1026 frames are not sent and are missing a
> completion.
> 
> Fixes: 9acf59a752d4c ("igc: Enable TX via AF_XDP zero-copy")
> Signed-off-by: Zdenek Bouska <zdenek.bouska@siemens.com>

Reviewed-by: Florian Bezdeka <florian.bezdeka@siemens.com>

> ---
>  drivers/net/ethernet/intel/igc/igc_main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
> index 472f009630c9..f2e0a30a3497 100644
> --- a/drivers/net/ethernet/intel/igc/igc_main.c
> +++ b/drivers/net/ethernet/intel/igc/igc_main.c
> @@ -3042,7 +3042,7 @@ static void igc_xdp_xmit_zc(struct igc_ring *ring)
>  	 * descriptors. Therefore, to be safe, we always ensure we have at least
>  	 * 4 descriptors available.
>  	 */
> -	while (xsk_tx_peek_desc(pool, &xdp_desc) && budget >= 4) {
> +	while (budget >= 4 && xsk_tx_peek_desc(pool, &xdp_desc)) {
>  		struct igc_metadata_request meta_req;
>  		struct xsk_tx_metadata *meta = NULL;
>  		struct igc_tx_buffer *bi;
> 
> ---
> base-commit: 8ef890df4031121a94407c84659125cbccd3fdbe
> change-id: 20250310-igc-fix-tx-zero-copy-drops-1c4a81441033
> 
> Best regards,
> -- 
> Zdenek Bouska
> 
> Siemens, s.r.o.
> Foundational Technologies


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Intel-wired-lan] [PATCH net-next] igc: Fix TX drops in XDP ZC
  2025-03-19 14:18 [PATCH net-next] igc: Fix TX drops in XDP ZC Zdenek Bouska
  2025-03-19 15:06 ` Song, Yoong Siang
  2025-03-19 16:16 ` Florian Bezdeka
@ 2025-03-27 13:07 ` Mor Bar-Gabay
  2 siblings, 0 replies; 4+ messages in thread
From: Mor Bar-Gabay @ 2025-03-27 13:07 UTC (permalink / raw)
  To: Zdenek Bouska, Tony Nguyen, Przemek Kitszel, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Alexei Starovoitov, Daniel Borkmann, Jesper Dangaard Brouer,
	John Fastabend, Andre Guedes, Vedang Patel, Maciej Fijalkowski,
	Jithu Joseph, Song Yoong Siang, Florian Bezdeka
  Cc: intel-wired-lan, netdev, linux-kernel, bpf

On 19/03/2025 16:18, Zdenek Bouska wrote:
> Fixes TX frame drops in AF_XDP zero copy mode when budget < 4.
> xsk_tx_peek_desc() consumed TX frame and it was ignored because of
> low budget. Not even AF_XDP completion was done for dropped frames.
> 
> It can be reproduced on i226 by sending 100000x 60 B frames with
> launch time set to minimal IPG (672 ns between starts of frames)
> on 1Gbit/s. Always 1026 frames are not sent and are missing a
> completion.
> 
> Fixes: 9acf59a752d4c ("igc: Enable TX via AF_XDP zero-copy")
> Signed-off-by: Zdenek Bouska <zdenek.bouska@siemens.com>
> Reviewed-by: Song Yoong Siang <yoong.siang.song@intel.com>
> Reviewed-by: Florian Bezdeka <florian.bezdeka@siemens.com>
> ---
>   drivers/net/ethernet/intel/igc/igc_main.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
Tested-by: Mor Bar-Gabay <morx.bar.gabay@intel.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-03-27 13:07 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-19 14:18 [PATCH net-next] igc: Fix TX drops in XDP ZC Zdenek Bouska
2025-03-19 15:06 ` Song, Yoong Siang
2025-03-19 16:16 ` Florian Bezdeka
2025-03-27 13:07 ` [Intel-wired-lan] " Mor Bar-Gabay

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox