net/ena: fix Tx SQ free space assessment
authorIgor Chauskin <igorch@amazon.com>
Tue, 26 Jan 2021 18:32:25 +0000 (19:32 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 29 Jan 2021 17:16:12 +0000 (18:16 +0100)
commit8a90f3d8d09b5fa2e7a6a7b83b8e4868acebbe01
treec580f71d7ac486c8ddb78ea22c001551fee9cd67
parent05cffdcfa0f1940e0b2c5495aa7194c474cfe197
net/ena: fix Tx SQ free space assessment

Before starting transmission of Tx burst, the driver checked the
available space in the sq and limited the number of packets for
transmission accordingly.
The calculation was incorrect for fragmented packets and potentially had
significantly limited the length of Tx bursts.

This patch removes the assessment and pushes packets to the sq as long
as the burst is not exhausted and space is available in the sq.

Correct evaluation of the required space isn't possible before the burst
because it depends on the number of segments of each packet.
This patch adds per-packet space evaluation for each packet before
attempting to process it. In case there is not enough queue space, the
burst will just stop without error.

Fixes: 2061fe41f212 ("net/ena: linearize Tx mbuf")
Cc: stable@dpdk.org
Signed-off-by: Igor Chauskin <igorch@amazon.com>
Reviewed-by: Michal Krawczyk <mk@semihalf.com>
drivers/net/ena/ena_ethdev.c