[PATCH v3 1/3] testpmd: Do not enable mbuf fast release TX offload by default

Morten Brørup mb at smartsharesystems.com
Mon Aug 11 10:17:17 CEST 2025


Hi folks,

Some of you commented on this patch.
Please formally tag with ACKED-BY or REVIEWED-BY, so it can be merged.

Patch 3/3 in the series has been merged, and is causing the "test_txoffload_port_multi_segs" test to fail. I expect this patch 1/3 to fix (or partially fix) that.

Med venlig hilsen / Kind regards,
-Morten Brørup


> From: Morten Brørup [mailto:mb at smartsharesystems.com]
> Sent: Sunday, 3 August 2025 21.42
> 
> Enabling some offload by default may conflict with a manually configured
> offload.
> Specifically, the mbuf fast release TX offload, which conflicts with multi
> segment packet TX offload, was enabled by default.
> Therefore, mbuf fast release TX offload (the only TX offload which was
> enabled by default) is not enabled by default anymore.
> 
> Signed-off-by: Morten Brørup <mb at smartsharesystems.com>
> ---
>  app/test-pmd/testpmd.c | 11 +----------
>  1 file changed, 1 insertion(+), 10 deletions(-)
> 
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
> index bb88555328..f00eae3992 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -490,9 +490,7 @@ lcoreid_t latencystats_lcore_id = -1;
>   */
>  struct rte_eth_rxmode rx_mode;
> 
> -struct rte_eth_txmode tx_mode = {
> -	.offloads = RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE,
> -};
> +struct rte_eth_txmode tx_mode;
> 
>  volatile int test_done = 1; /* stop packet forwarding when set to 1. */
> 
> @@ -1592,10 +1590,6 @@ init_config_port_offloads(portid_t pid, uint32_t
> socket_id)
>  	if (ret != 0)
>  		rte_exit(EXIT_FAILURE, "rte_eth_dev_info_get() failed\n");
> 
> -	if (!(port->dev_info.tx_offload_capa &
> RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE))
> -		port->dev_conf.txmode.offloads &=
> -			~RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE;
> -
>  	/* Apply Rx offloads configuration */
>  	for (i = 0; i < port->dev_info.max_rx_queues; i++)
>  		port->rxq[i].conf.offloads = port->dev_conf.rxmode.offloads;
> @@ -2857,9 +2851,6 @@ update_bonding_port_dev_conf(portid_t bond_pid)
>  		return;
>  	}
> 
> -	if (port->dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE)
> -		port->dev_conf.txmode.offloads |=
> -				RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE;
>  	/* Apply Tx offloads configuration */
>  	for (i = 0; i < port->dev_info.max_tx_queues; i++)
>  		port->txq[i].conf.offloads = port->dev_conf.txmode.offloads;
> --
> 2.43.0



More information about the dev mailing list