* 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