Test-Label: intel-Functional Test-Status: SUCCESS _Functional PASS_ DPDK git repo: dpdk-next-net-intel commit 00f8d452607bbddbd47a2d4c7abde1038dec9b1e Author: Morten Brørup Date: Fri Dec 12 11:11:36 2025 +0000 net/intel: cache mbuf fast release mempool When fast release of mbufs is enabled, the mempool to free the mbufs to was determined by looking at the pool pointer of the first mbuf in the burst being freed, potentially costing a cache miss. This patch adds a mbuf fast release mempool pointer to the common transmit queue structure, so reading the mbufs during fast release is avoided. The pointer in located a cache line already being accessed, and is only set once, when the first mbuf ever is released. The fast release mempool pointer also indicates if fast release is enabled, so this pointer is checked instead of the RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE flag in the offloads field in the transmit queue structure. The same optimizations were applied to mbuf recycle. For the ice driver, prefetcing the mbufs when fast release of mbufs is enabled became superflouous, and has been moved into the branch for normal mbuf release. For the i40e driver, prefetcing the mbufs when fast release of mbufs is enabled was already superflouous, and has been moved into the branch for normal mbuf release. Signed-off-by: Morten Brørup Smoke-Testing Summary : 31 Case Done, 31 Successful, 0 Failures OS : Ubuntu 24.04.3 LTS Kernel : 6.8.0-71-generic GCC : 13.3.0-6ubuntu2~24.04 NIC : Ethernet Controller XL710 for 40GbE QSFP+ Target : x86_64-native-linuxapp-gcc Test result details: +-----------------+---------------------------------------------------+-------+ | suite | case | status| +-----------------+---------------------------------------------------+-------+ | checksum_offload| test_checksum_offload_with_vlan | passed| | checksum_offload| test_do_not_insert_checksum_on_the_transmit_packet| passed| | checksum_offload| test_hardware_checksum_check_ip_rx | passed| | checksum_offload| test_hardware_checksum_check_ip_tx | passed| | checksum_offload| test_hardware_checksum_check_l4_rx | passed| | checksum_offload| test_hardware_checksum_check_l4_tx | passed| | checksum_offload| test_insert_checksum_on_the_transmit_packet | passed| | checksum_offload| test_rx_checksum_valid_flags | passed| | dual_vlan | test_dual_vlan_priority_rxtx | passed| | dual_vlan | test_vlan_filter_config | passed| | dual_vlan | test_vlan_filter_table | passed| | dual_vlan | test_vlan_insert_config | passed| | dual_vlan | test_vlan_random_test | passed| | dual_vlan | test_vlan_strip_config | passed| | dual_vlan | test_vlan_synthetic_test | passed| | dual_vlan | test_vlan_tpid_config | passed| | dual_vlan | test_vlan_stripq_config | n/a | | jumboframes | test_jumboframes_bigger_jumbo | passed| | jumboframes | test_jumboframes_jumbo_jumbo | passed| | jumboframes | test_jumboframes_jumbo_nojumbo | passed| | jumboframes | test_jumboframes_normal_jumbo | passed| | jumboframes | test_jumboframes_normal_nojumbo | passed| | rxtx_offload | test_rxoffload_port_all | passed| | rxtx_offload | test_rxoffload_port_cmdline | passed| | rxtx_offload | test_txoffload_port | passed| | rxtx_offload | test_txoffload_port_all | passed| | rxtx_offload | test_txoffload_port_checksum | passed| | rxtx_offload | test_txoffload_port_cmdline | passed| | rxtx_offload | test_txoffload_port_multi_segs | passed| | rxtx_offload | test_txoffload_queue | passed| | rxtx_offload | test_rxoffload_queue | n/a | +-----------------+---------------------------------------------------+-------+ DPDK STV team