DPDK usage discussions
 help / color / mirror / Atom feed
From: "Gábor LENCSE" <lencse@hit.bme.hu>
To: Antonio Di Bacco <a.dibacco.ks@gmail.com>
Cc: users@dpdk.org
Subject: Re: rte_eth_tx_burst() always returns 0 in tight loop
Date: Wed, 6 Jul 2022 17:03:34 +0200	[thread overview]
Message-ID: <0bc601d6-1f21-6f01-423d-8b725fd920ca@hit.bme.hu> (raw)
In-Reply-To: <CAO8pfFmv=f9+fGq26Vt5+t6WnaRV3YXu10_F=7mBoj50AphpdQ@mail.gmail.com>

Dear Antonio,

I have not met your problem during the implementation of siitperf, 
because I always had to send the frames at a given frame rate, that is, 
I used the appropriate timing.

Could you check, how early the failure begins? I mean that does already 
the second or third call fail? Or it happens only after a few hundred 
calls?

IMHO, the latter is natural, and it means that you have exhausted some 
resources.

Best regards,

Gábor

7/6/2022 9:21 AM keltezéssel, Antonio Di Bacco írta:
> I wonder why calling eth_dev_tx_burst in a tight loop doesn't allow to
> write the packets into the transmit buffer. Only solution I found is
> to include a small delay after the tx_burst that is less than the
> estimated serialization time of the packet in order to be able to
> saturate the ethernet line.
>
> Anyway I wonder if this is the right approach.
>
> Thx,
> Antonio.
>
> On Sun, Jul 3, 2022 at 10:19 PM Gábor LENCSE <lencse@hit.bme.hu> wrote:
>> Dear Antonio,
>>
>> According to my experience, the rte_eth_tx_burst() function reports the
>> packets as "sent" (by a non-zero return value), when they are still in
>> the transmit buffer.
>>
>> (If you are interested in the details, you can see them in Section 3.6.5
>> of this paper: http://www.hit.bme.hu/~lencse/publications/e104-b_2_128.pdf )
>>
>> Therefore, I think that the return value of 0 may mean that
>> rte_eth_tx_burst() can't even commit itself for the future delivery of
>> the packets. I could only guess why. E.g. all its resources have been
>> exhausted.
>>
>> Best regards,
>>
>> Gábor
>>
>>
>> 7/3/2022 5:57 PM keltezéssel, Antonio Di Bacco írta:
>>> I'm trying to send packets continuously in a  tight loop with a burst
>>> size of 8 and packets are 9600 bytes long.
>>> If I don't insert a delay after the rte_eth_tx_burst it always returns 0.
>>>
>>> What's the explanation of this behaviour ?
>>>
>>> Best regards,
>>> Antonio.


      parent reply	other threads:[~2022-07-06 15:03 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-03 15:57 Antonio Di Bacco
2022-07-03 20:18 ` Gábor LENCSE
2022-07-06  7:21   ` Antonio Di Bacco
2022-07-06 15:00     ` Stephen Hemminger
2022-07-07 14:30       ` Antonio Di Bacco
2022-09-26 15:36         ` Antonio Di Bacco
2022-09-26 17:24           ` Stephen Hemminger
2022-07-06 15:03     ` Gábor LENCSE [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0bc601d6-1f21-6f01-423d-8b725fd920ca@hit.bme.hu \
    --to=lencse@hit.bme.hu \
    --cc=a.dibacco.ks@gmail.com \
    --cc=users@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).