From: Maxime Coquelin <maxime.coquelin@redhat.com>
To: luca.boccassi@gmail.com, Hengqi Chen <hengqi.chen@gmail.com>
Cc: Baoyuan Li <updoing@sina.com>, dpdk stable <stable@dpdk.org>
Subject: Re: patch 'net/virtio: fix check of threshold for Tx freeing' has been queued to stable release 22.11.9
Date: Fri, 4 Jul 2025 14:01:07 +0200 [thread overview]
Message-ID: <f1fe5e72-a707-4f31-8cd8-b96b7a77b027@redhat.com> (raw)
In-Reply-To: <20250630122556.1133654-9-luca.boccassi@gmail.com>
Hi Luca,
This patch introduces a performance regression, could you make sure it
is not applied to the v22.11 LTS ?
Thanks,
Maxime
On 6/30/25 2:25 PM, luca.boccassi@gmail.com wrote:
> Hi,
>
> FYI, your patch has been queued to stable release 22.11.9
>
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 07/02/25. So please
> shout if anyone has objections.
>
> Also note that after the patch there's a diff of the upstream commit vs the
> patch applied to the branch. This will indicate if there was any rebasing
> needed to apply to the stable branch. If there were code changes for rebasing
> (ie: not only metadata diffs), please double check that the rebase was
> correctly done.
>
> Queued patches are on a temporary branch at:
> https://github.com/bluca/dpdk-stable
>
> This queued commit can be viewed at:
> https://github.com/bluca/dpdk-stable/commit/4863a82ac7db22f67294808bc5077b848e057a40
>
> Thanks.
>
> Luca Boccassi
>
> ---
> From 4863a82ac7db22f67294808bc5077b848e057a40 Mon Sep 17 00:00:00 2001
> From: Hengqi Chen <hengqi.chen@gmail.com>
> Date: Mon, 9 Jun 2025 07:23:47 +0000
> Subject: [PATCH] net/virtio: fix check of threshold for Tx freeing
>
> [ upstream commit 3e3c7f3fa5ac3f2748a4463d87e73eb28024b401 ]
>
> Like most drivers, make the fast path of virtio_xmit_cleanup() behave as
> described by the comments of rte_eth_txconf::tx_free_thresh ([0]):
> Start freeing Tx buffers if there are
> less free descriptors than this value.
>
> The rationale behind this change is that:
> * vq->vq_nentries is set during device probe
> with the queue size specified by vhost backend,
> this value does not reflect the real nb_tx_desc
> * the real available tx desc is set to vq->vq_free_cnt
> via the nb_tx_desc param of rte_eth_tx_queue_setup() API
> * so `nb_used > vq->vq_nentries - vq->vq_free_thresh` could never be true
> if say nb_tx_desc=2048, vq->vq_nentries=4096, vq->vq_free_thresh=32,
> see bug report 1716 ([1]) for details.
>
> [0]: https://github.com/DPDK/dpdk/commit/72514b5d5543
> [1]: https://bugs.dpdk.org/show_bug.cgi?id=1716
>
> Bugzilla ID: 1716
> Fixes: 72514b5d5543 ("ethdev: fix check of threshold for Tx freeing")
>
> Signed-off-by: Baoyuan Li <updoing@sina.com>
> Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> ---
> .mailmap | 3 +++
> drivers/net/virtio/virtio_rxtx.c | 2 +-
> 2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/.mailmap b/.mailmap
> index f53fdf0d85..bda591c1cf 100644
> --- a/.mailmap
> +++ b/.mailmap
> @@ -150,6 +150,8 @@ Balakrishna Bhamidipati <bbhamidipati@marvell.com>
> Balasubramanian Manoharan <balasubramanian.manoharan@caviumnetworks.com>
> Balazs Nemeth <bnemeth@redhat.com> <balazs.nemeth@intel.com>
> Bao-Long Tran <longtb5@viettel.com.vn>
> +Baoyuan Li <updoing@sina.com>
> +Bar Neuman <bneuman@nvidia.com>
> Barak Enat <barak@saguna.net>
> Barry Cao <barry.cao@nxp.com>
> Bartosz Staszewski <bartoszx.staszewski@intel.com>
> @@ -504,6 +506,7 @@ Hemant Agrawal <hemant.agrawal@nxp.com> <hemant@freescale.com>
> Heng Ding <hengx.ding@intel.com>
> Hengjian Zhang <hengjianx.zhang@intel.com>
> Heng Jiang <jiangheng14@huawei.com>
> +Hengqi Chen <hengqi.chen@gmail.com>
> Heng Wang <heng.wang@ericsson.com>
> Henning Schild <henning.schild@siemens.com>
> Henry Cai <caihe@huawei.com>
> diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
> index c3e686cf0c..66aaeb3c65 100644
> --- a/drivers/net/virtio/virtio_rxtx.c
> +++ b/drivers/net/virtio/virtio_rxtx.c
> @@ -1870,7 +1870,7 @@ virtio_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
>
> nb_used = virtqueue_nused(vq);
>
> - if (likely(nb_used > vq->vq_nentries - vq->vq_free_thresh))
> + if (likely(vq->vq_free_cnt < vq->vq_free_thresh))
> virtio_xmit_cleanup(vq, nb_used);
>
> for (nb_tx = 0; nb_tx < nb_pkts; nb_tx++) {
next prev parent reply other threads:[~2025-07-04 12:01 UTC|newest]
Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-12 21:06 patch 'net/i40e/base: remove unused variables' " luca.boccassi
2025-06-12 21:06 ` patch 'ci: bump tested distributions in GHA' " luca.boccassi
2025-06-12 21:06 ` patch 'net/fm10k/base: fix compilation warnings' " luca.boccassi
2025-06-12 21:06 ` patch 'net/ixgbe/base: correct definition of endianness macro' " luca.boccassi
2025-06-12 21:06 ` patch 'net/ixgbe/base: fix compilation warnings' " luca.boccassi
2025-06-12 21:06 ` patch 'net/i40e/base: fix unused value " luca.boccassi
2025-06-12 21:06 ` patch 'net/i40e/base: fix compiler " luca.boccassi
2025-06-12 21:06 ` patch 'acl: fix build with GCC 15 on aarch64' " luca.boccassi
2025-06-12 21:06 ` patch 'eal/linux: improve ASLR check' " luca.boccassi
2025-06-12 21:06 ` patch 'net/e1000: fix xstats name' " luca.boccassi
2025-06-12 21:06 ` patch 'net/e1000: fix EEPROM dump' " luca.boccassi
2025-06-12 21:06 ` patch 'net/ixgbe: fix port mask default value in filter' " luca.boccassi
2025-06-12 21:06 ` patch 'net/e1000: fix igb Tx queue offloads capability' " luca.boccassi
2025-06-12 21:06 ` patch 'vhost/crypto: fix cipher data length' " luca.boccassi
2025-06-12 21:06 ` patch 'crypto/virtio: fix cipher data source " luca.boccassi
2025-06-12 21:06 ` patch 'app/crypto-perf: fix AAD offset alignment' " luca.boccassi
2025-06-12 21:06 ` patch 'crypto/qat: fix out-of-place header bytes in AEAD raw API' " luca.boccassi
2025-06-12 21:06 ` patch 'crypto/qat: fix out-of-place chain/cipher/auth headers' " luca.boccassi
2025-06-12 21:06 ` patch 'net/mlx5: fix header modify action on group 0' " luca.boccassi
2025-06-12 21:06 ` patch 'net/mlx5: validate GTP PSC QFI width' " luca.boccassi
2025-06-12 21:06 ` patch 'net/mlx5: fix counter service cleanup on init failure' " luca.boccassi
2025-06-12 21:06 ` patch 'net/mlx5: remove unsupported flow meter action in HWS' " luca.boccassi
2025-06-12 21:06 ` patch 'net/mlx5: fix maximal queue size query' " luca.boccassi
2025-06-12 21:06 ` patch 'net/mlx5: align PF and VF/SF MAC address handling' " luca.boccassi
2025-06-12 21:06 ` patch 'app/testpmd: fix RSS hash key update' " luca.boccassi
2025-06-12 21:06 ` patch 'net/af_xdp: fix use after free in zero-copy Tx' " luca.boccassi
2025-06-12 21:06 ` patch 'net/hns3: fix integer overflow in interrupt unmap' " luca.boccassi
2025-06-12 21:06 ` patch 'net/hns3: fix memory leak on failure' " luca.boccassi
2025-06-12 21:06 ` patch 'net/hns3: fix extra wait for link up' " luca.boccassi
2025-06-12 21:06 ` patch 'net/hns3: fix memory leak for indirect flow action' " luca.boccassi
2025-06-12 21:06 ` patch 'net/hns3: fix interrupt rollback' " luca.boccassi
2025-06-12 21:06 ` patch 'net/hns3: fix divide by zero' " luca.boccassi
2025-06-12 21:06 ` patch 'net/hns3: fix resources release on reset' " luca.boccassi
2025-06-12 21:06 ` patch 'net/qede: fix use after free' " luca.boccassi
2025-06-12 21:06 ` patch 'bus/fslmc: " luca.boccassi
2025-06-12 21:06 ` patch 'net/null: fix packet copy' " luca.boccassi
2025-06-12 21:06 ` patch 'bus/vmbus: align ring buffer data to page boundary' " luca.boccassi
2025-06-12 21:06 ` patch 'bus/vmbus: use Hyper-V page size' " luca.boccassi
2025-06-12 21:06 ` patch 'net/netvsc: " luca.boccassi
2025-06-12 21:06 ` patch 'net/netvsc: add stats counters from VF' " luca.boccassi
2025-06-12 21:06 ` patch 'app/testpmd: relax number of TCs in DCB command' " luca.boccassi
2025-06-12 21:06 ` patch 'net/mana: check vendor ID when probing RDMA device' " luca.boccassi
2025-06-12 21:07 ` patch 'net/hns3: fix CRC data segment' " luca.boccassi
2025-06-12 21:07 ` patch 'net/tap: fix qdisc add failure handling' " luca.boccassi
2025-06-12 21:07 ` patch 'net/mlx5: fix VLAN stripping on hairpin queue' " luca.boccassi
2025-06-12 21:07 ` patch 'mem: fix lockup on address space shortage' " luca.boccassi
2025-06-12 21:07 ` patch 'test/malloc: improve resiliency' " luca.boccassi
2025-06-12 21:07 ` patch 'trace: fix overflow in per-lcore trace buffer' " luca.boccassi
2025-06-12 21:07 ` patch 'common/cnxk: fix E-tag pattern parsing' " luca.boccassi
2025-06-12 21:07 ` patch 'common/cnxk: fix CQ tail drop' " luca.boccassi
2025-06-12 21:07 ` patch 'net/cnxk: fix descriptor count update on reconfig' " luca.boccassi
2025-06-12 21:07 ` patch 'ethdev: fix error struct in flow configure' " luca.boccassi
2025-06-12 21:07 ` patch 'net/ice/base: fix integer overflow' " luca.boccassi
2025-06-12 21:07 ` patch 'net/ice/base: fix typo in device ID description' " luca.boccassi
2025-06-12 21:07 ` patch 'common/dpaax: fix PDCP key command race condition' " luca.boccassi
2025-06-12 21:07 ` patch 'common/dpaax: fix PDCP AES only 12-bit SN' " luca.boccassi
2025-06-12 21:07 ` patch 'crypto/virtio: add request check on request side' " luca.boccassi
2025-06-12 21:07 ` patch 'crypto/virtio: fix driver cleanup' " luca.boccassi
2025-06-12 21:07 ` patch 'ethdev: keep promiscuous/allmulti value before disabling' " luca.boccassi
2025-06-12 21:07 ` patch 'eal: fix return value of lcore role' " luca.boccassi
2025-06-12 21:07 ` patch 'eal: warn if no lcore is available' " luca.boccassi
2025-06-12 21:07 ` patch 'bus: cleanup device lists' " luca.boccassi
2025-06-12 21:07 ` patch 'eal/linux: unregister alarm callback before free' " luca.boccassi
2025-06-12 21:07 ` patch 'eal/freebsd: " luca.boccassi
2025-06-12 21:07 ` patch 'bus/pci/bsd: fix device existence check' " luca.boccassi
2025-06-17 18:38 ` Jake Freeland
2025-06-12 21:07 ` patch 'power/intel_uncore: fix crash closing uninitialized driver' " luca.boccassi
2025-06-12 21:07 ` patch 'pcapng: fix null dereference in close' " luca.boccassi
2025-06-12 21:07 ` patch 'net/mlx5: avoid setting kernel MTU if not needed' " luca.boccassi
2025-06-12 21:07 ` patch 'net/mlx5: fix hypervisor detection in VLAN workaround' " luca.boccassi
2025-06-12 21:07 ` patch 'net/hns3: check requirement for hardware GRO' " luca.boccassi
2025-06-12 21:07 ` patch 'net/hns3: allow Tx vector when fast free not enabled' " luca.boccassi
2025-06-12 21:07 ` patch 'net/hns3: allow Rx vector mode with VLAN filter' " luca.boccassi
2025-06-30 12:25 ` patch 'common/mlx5: fix extraction of auxiliary device name' " luca.boccassi
2025-06-30 12:25 ` patch 'net/mlx5: fix crash on age query with indirect conntrack' " luca.boccassi
2025-07-02 15:32 ` Khadem Ullah
2025-07-03 11:57 ` Khadem Ullah
2025-06-30 12:25 ` patch 'net/mlx5: fix WQE size calculation for Tx queue' " luca.boccassi
2025-06-30 12:25 ` patch 'net/ixgbe: fix indentation' " luca.boccassi
2025-06-30 12:25 ` patch 'net/ice: fix querying RSS hash for DCF' " luca.boccassi
2025-06-30 12:25 ` patch 'net/iavf: fix VLAN strip setting after enabling filter' " luca.boccassi
2025-06-30 12:25 ` patch 'common/cnxk: fix null pointer checks' " luca.boccassi
2025-06-30 12:25 ` patch 'vhost: search virtqueues driver data in read-only area' " luca.boccassi
2025-06-30 12:25 ` patch 'net/virtio: fix check of threshold for Tx freeing' " luca.boccassi
2025-07-04 12:01 ` Maxime Coquelin [this message]
2025-07-04 13:13 ` Luca Boccassi
2025-06-30 12:25 ` patch 'eal/unix: fix log message for madvise failure' " luca.boccassi
2025-06-30 12:25 ` patch 'common/cnxk: fix qsize in CPT iq enable' " luca.boccassi
2025-06-30 12:25 ` patch 'crypto/qat: fix out-of-place chain/cipher/auth headers' " luca.boccassi
2025-06-30 12:25 ` patch 'examples/ipsec-secgw: fix crash with IPv6' " luca.boccassi
2025-06-30 12:25 ` patch 'examples/ipsec-secgw: fix crash in event vector mode' " luca.boccassi
2025-06-30 12:25 ` patch 'test/crypto: fix auth and cipher case IV length' " luca.boccassi
2025-06-30 12:25 ` patch 'test/crypto: set to null after freeing operation' " luca.boccassi
2025-06-30 12:25 ` patch 'crypto/openssl: include private exponent in RSA session' " luca.boccassi
2025-06-30 12:25 ` patch 'test/crypto: fix RSA decrypt validation' " luca.boccassi
2025-06-30 12:25 ` patch 'event/dlb2: fix dequeue with CQ depth <= 16' " luca.boccassi
2025-06-30 12:25 ` patch 'event/dlb2: fix validaton of LDB port COS ID arguments' " luca.boccassi
2025-06-30 12:25 ` patch 'event/dlb2: fix num single link ports for DLB2.5' " luca.boccassi
2025-06-30 12:25 ` patch 'event/dlb2: fix default credits based on HW version' " luca.boccassi
2025-06-30 12:25 ` patch 'app/eventdev: fix number of releases sent during cleanup' " luca.boccassi
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=f1fe5e72-a707-4f31-8cd8-b96b7a77b027@redhat.com \
--to=maxime.coquelin@redhat.com \
--cc=hengqi.chen@gmail.com \
--cc=luca.boccassi@gmail.com \
--cc=stable@dpdk.org \
--cc=updoing@sina.com \
/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).