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
>
next prev parent 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).