|SUCCESS|dpdk|062b389428| Intel-Testing
sys_stv at intel.com
sys_stv at intel.com
Sat Oct 3 12:20:21 CEST 2026
Test-Label: intel-Testing
Test-Status: SUCCESS
_Testing PASS_
DPDK git repo: dpdk
commit a7565d8747d492f632c9fb82ea676add76ac64ad
Author: Md Rayhanul Islam <r97yhan at gmail.com>
Date: Fri Oct 2 16:09:27 2026 -0400
net/e1000: support non-coherent DMA
On non-coherent systems the NIC reads stale descriptors and packet data.
Seen on a BCM2711 Compute Module 4 with an Intel I210: transmits never
completed and received data went to address zero.
Take the DMA context from the bus at probe, keep it in the shared adapter
data so secondary processes see it, and install separate TX and RX bursts
for such devices. They translate every address against the device window
and synchronize buffers and descriptors. Both come from one inlined
template with a constant flag, so the coherent datapath is unchanged.
Four descriptors share a cache line. Invalidate a line before writing
into it, so cleaning it afterwards keeps the Done bits the NIC wrote on
the neighbours; without that a burst loses about three packets of every
sixteen. Completion is the Done bit, never the head register, which
advances when a descriptor is fetched rather than when its data has been
read. Receive descriptors are refilled a whole line at a time, and
receive buffers are cleaned before handover and rejected unless they are
direct, cache-line aligned and inside the window.
The em driver, which shares net/e1000 with igb, does not set
RTE_PCI_DRV_DMA_NONCOHERENT, so on non-coherent systems the PCI
bus does not probe em devices; they fail cleanly instead of
running with stale DMA.
Tested between two Compute Module 4 boards with Intel I210s: testpmd
txonly holds 1.42 Mpps at 1 GbE line rate, and a 512 MB transfer with
DPDK at both ends arrives byte-identical.
Signed-off-by: Md Rayhanul Islam <r97yhan at gmail.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