DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jie Hai <haijie1@huawei.com>
To: "Konstantin Ananyev" <konstantin.ananyev@huawei.com>,
	"dev@dpdk.org" <dev@dpdk.org>,
	"thomas@monjalon.net" <thomas@monjalon.net>,
	"ferruh.yigit@amd.com" <ferruh.yigit@amd.com>,
	"Morten Brørup" <mb@smartsharesystems.com>,
	Fengchengwen <fengchengwen@huawei.com>,
	"lihuisong (C)" <lihuisong@huawei.com>
Cc: huangdengdui <huangdengdui@huawei.com>
Subject: Re: [PATCH] examples/l3fwd: fix Tx performance deteriorate
Date: Tue, 26 Nov 2024 15:39:25 +0800	[thread overview]
Message-ID: <4e9583d6-24ef-b76d-7b31-9d9960a3af1b@huawei.com> (raw)
In-Reply-To: <ce0a0c7fe2e74903bac70e13fbb64545@huawei.com>

Hi, konstantin.ananyev,

That sounds better, will send V2。

Thanks,
Jie Hai

> 
> In  commit:
> examples/l3fwd: add option to set Rx burst size
> you introduced new global
> uint32_t nb_pkt_per_burst;
> Why not to use it for both (rx and tx) paths?
> Or if necessary introduce another one for tx, so we'll have:
> uint32_t nb_rx_pkt_per_burst, nb_tx_pkt_per_burst,;
> To me that is much better then create some hardcoded
> and implicit thresholds.
> 
>> Fixes: d5c4897ecfb2 ("examples/l3fwd: add option to set Rx burst size")
>>
>> Signed-off-by: Jie Hai <haijie1@huawei.com>
>> ---
>>   examples/l3fwd/l3fwd.h        | 8 +++++---
>>   examples/l3fwd/l3fwd_common.h | 6 +++---
>>   2 files changed, 8 insertions(+), 6 deletions(-)
>>
>> diff --git a/examples/l3fwd/l3fwd.h b/examples/l3fwd/l3fwd.h
>> index 0cce3406ee7d..a01fecd51261 100644
>> --- a/examples/l3fwd/l3fwd.h
>> +++ b/examples/l3fwd/l3fwd.h
>> @@ -35,7 +35,7 @@
>>   /*
>>    * Try to avoid TX buffering if we have at least MAX_TX_BURST packets to send.
>>    */
>> -#define	MAX_TX_BURST	  (MAX_PKT_BURST / 2)
>> +#define	MAX_TX_BURST DEFAULT_PKT_BURST
>>
>>   #define NB_SOCKETS        8
>>
>> @@ -57,6 +57,8 @@
>>   #define L3FWD_HASH_ENTRIES		(1024*1024*1)
>>   #endif
>>
>> +static_assert(MAX_TX_BURST <= MAX_PKT_BURST, "MAX_TX_BURST should be at most MAX_PKT_BURST");
>> +
>>   struct parm_cfg {
>>   	const char *rule_ipv4_name;
>>   	const char *rule_ipv6_name;
>> @@ -152,8 +154,8 @@ send_single_packet(struct lcore_conf *qconf,
>>   	len++;
>>
>>   	/* enough pkts to be sent */
>> -	if (unlikely(len == MAX_PKT_BURST)) {
>> -		send_burst(qconf, MAX_PKT_BURST, port);
>> +	if (unlikely(len == MAX_TX_BURST)) {
>> +		send_burst(qconf, MAX_TX_BURST, port);
>>   		len = 0;
>>   	}
>>
>> diff --git a/examples/l3fwd/l3fwd_common.h b/examples/l3fwd/l3fwd_common.h
>> index d94e5f135791..3f504dc0a552 100644
>> --- a/examples/l3fwd/l3fwd_common.h
>> +++ b/examples/l3fwd/l3fwd_common.h
>> @@ -71,7 +71,7 @@ send_packetsx4(struct lcore_conf *qconf, uint16_t port, struct rte_mbuf *m[],
>>   	 * If TX buffer for that queue is empty, and we have enough packets,
>>   	 * then send them straightway.
>>   	 */
>> -	if (num >= MAX_TX_BURST && len == 0) {
>> +	if (num >= MAX_TX_BURST / 2 && len == 0) {
>>   		n = rte_eth_tx_burst(port, qconf->tx_queue_id[port], m, num);
>>   		if (unlikely(n < num)) {
>>   			do {
>> @@ -112,9 +112,9 @@ send_packetsx4(struct lcore_conf *qconf, uint16_t port, struct rte_mbuf *m[],
>>   	len += n;
>>
>>   	/* enough pkts to be sent */
>> -	if (unlikely(len == MAX_PKT_BURST)) {
>> +	if (unlikely(len > MAX_TX_BURST)) {
>>
>> -		send_burst(qconf, MAX_PKT_BURST, port);
>> +		send_burst(qconf, len, port);
>>
>>   		/* copy rest of the packets into the TX buffer. */
>>   		len = num - n;
>> --
>> 2.22.0
> 

  reply	other threads:[~2024-11-26  7:39 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-22  7:13 Jie Hai
2024-11-22  9:14 ` lihuisong (C)
2024-11-22 11:01 ` Konstantin Ananyev
2024-11-26  7:39   ` Jie Hai [this message]
2024-11-25 19:44 ` Stephen Hemminger

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=4e9583d6-24ef-b76d-7b31-9d9960a3af1b@huawei.com \
    --to=haijie1@huawei.com \
    --cc=dev@dpdk.org \
    --cc=fengchengwen@huawei.com \
    --cc=ferruh.yigit@amd.com \
    --cc=huangdengdui@huawei.com \
    --cc=konstantin.ananyev@huawei.com \
    --cc=lihuisong@huawei.com \
    --cc=mb@smartsharesystems.com \
    --cc=thomas@monjalon.net \
    /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).