|SUCCESS|dpdk-next-net|edff93f638| Intel-Testing

sys_stv at intel.com sys_stv at intel.com
Tue Jun 30 15:49:32 CEST 2026


Test-Label: intel-Testing
Test-Status: SUCCESS
_Testing PASS_

DPDK git repo: dpdk-next-net
commit f6b873bbd605b6be2145cc73dfbea7f8ca31d7f1
Author: Maxime Leroy <maxime at leroys.fr>
Date:   Tue Jun 30 14:49:45 2026 +0200

    net/dpaa2: drop the fake software VLAN strip offload
    
    RTE_ETH_RX_OFFLOAD_VLAN_STRIP is advertised, but no hardware VLAN strip
    backs it: when enabled, the Rx burst calls rte_vlan_strip() on every
    frame, a software op masquerading as a hardware offload.
    
    It saves a forwarding application nothing: the datapath reads the L2
    header anyway to classify or strip. The offload does not remove that
    read, it relocates it into the driver Rx burst, where it is far more
    expensive.
    
    The cost is a matter of timing. rte_vlan_strip() reaches the L2 header
    through rte_pktmbuf_mtod(), which dereferences mbuf->buf_addr. On a
    freshly recycled buffer that mbuf cacheline is cold. eth_fd_to_mbuf()
    has just written other fields of it (data_off, ol_flags), but buf_addr
    is a persistent field it does not rewrite. A write does not stall: it
    posts to the store buffer while the line fills in the background, and
    the rewritten fields are forwarded straight from there. buf_addr has
    nothing to forward, so it must be read from the line, whose fill is
    still in flight, and the read stalls. The ethertype read that follows,
    on the cold payload line, stalls again. Read later by the application,
    when the fill has completed, the same read hits. The offload just
    performs it at the worst possible moment.
    
    Measured on a single-core port-to-port forwarding test over two 10G
    ports (one core at 2 GHz, 64-byte untagged frames):
    
      - throughput 4.22 -> 5.00 Mpps (+18 percent)
      - IPC 0.93 -> 1.25: the cost was memory stall, not compute
      - L3/DRAM-bound L2 refills 319M -> 200M over 10s (-37 percent)
    
    perf confirms it: with the offload, the buf_addr load (the cold mbuf
    field) and the payload load account for about 84 percent of the Rx
    burst's L2 refills; removing it, those vanish and only the inherent DQRR
    dequeue misses remain.
    
    Stop advertising VLAN_STRIP and remove the rte_vlan_strip() calls from
    every Rx path. This is a behavioural change: the tag is left in the
    frame, so an application must strip it itself, on the L2 header it
    already reads.
    
    Signed-off-by: Maxime Leroy <maxime at leroys.fr>
    Acked-by: Morten Brørup <mb at smartsharesystems.com>
    Acked-by: Stephen Hemminger <stephen at networkplumber.org>
    Acked-by: Hemant Agrawal <hemant.agrawal at nxp.com>

Testing Summary : 18 Case Done, 18 Successful, 0 Failures      

TestPlan:
	pf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/pf_smoke_test_plan.rst
	vf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/vf_smoke_test_plan.rst
	virtio_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/virtio_smoke_test_plan.rst

TestSuite:
	pf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_pf_smoke.py
	vf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_vf_smoke.py
	virtio_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_virtio_smoke.py


OS : Ubuntu 24.04.4 LTS       
Kernel : 6.8.0-71-generic         
GCC : 13.3.0-6ubuntu2~24.04.1        
NIC : Ethernet Controller XL710 for 40GbE QSFP+         
Target : x86_64-native-linuxapp-gcc      

	Test result details:
	+-------------+---------------------------+-------+
	| suite       | case                      | status|
	+-------------+---------------------------+-------+
	| asan_smoke  | test_rxtx_with_ASan_enable| passed|
	| pf_smoke    | test_pf_jumbo_frames      | passed|
	| pf_smoke    | test_pf_rss               | passed|
	| pf_smoke    | test_pf_tx_rx_queue       | passed|
	| vf_smoke    | test_vf_rss               | passed|
	| vf_smoke    | test_vf_tx_rx_queue       | passed|
	| vf_smoke    | test_vf_jumbo_frames      | n/a   |
	| virtio_smoke| test_virtio_loopback      | passed|
	| virtio_smoke| test_virtio_pvp           | passed|
	+-------------+---------------------------+-------+


OS : Ubuntu 24.04.4 LTS       
Kernel : 6.8.0-87-generic         
GCC : 13.3.0-6ubuntu2~24.04.1        
NIC : Ethernet Controller E810-C for SFP         
Target : x86_64-native-linuxapp-gcc      

	Test result details:
	+-------------+---------------------------+-------+
	| suite       | case                      | status|
	+-------------+---------------------------+-------+
	| asan_smoke  | test_rxtx_with_ASan_enable| passed|
	| pf_smoke    | test_pf_jumbo_frames      | passed|
	| pf_smoke    | test_pf_rss               | passed|
	| pf_smoke    | test_pf_tx_rx_queue       | passed|
	| vf_smoke    | test_vf_jumbo_frames      | passed|
	| vf_smoke    | test_vf_rss               | passed|
	| vf_smoke    | test_vf_tx_rx_queue       | passed|
	| virtio_smoke| test_virtio_loopback      | passed|
	| virtio_smoke| test_virtio_pvp           | passed|
	+-------------+---------------------------+-------+


DPDK STV team


More information about the test-report mailing list