Hi all,
        I was measuring the latency with the new Intel E810. I first used 
testpmd application with a single core and a single pair of queues and measured 
the latency on the generator side. The problem is that a latency bump occurs 
when the background traffic is above a certain threshold. I noticed that the 
threshold would move (at different rate of background traffic) depending on the 
speed of the recv and xmit function (i.e. bulk, SSE or AVX2)
        To identify where the bump occurs, I added hardware timestamp support 
to the application. I enabled rx hardware timestamp offload capability of E810, 
used rte_eth_timesync_read_time after rte_eth_rx_burst returns and 
rte_eth_timesync_read_tx_timestamp after rte_eth_tx_burst returns. I found the 
latency bump occurs between the packet arrives at the PHY Core and 
rte_eth_tx_burst returns. I also measures the CPU cycles before 
rte_eth_rx_burst is called and rte_eth_tx_burst returns in the user space. The 
gap in CPU cycles is stable regardless of the background traffic. This means 
the bump resides between the packet arrives the NIC and the packet is extracted 
from the main memory via rte_eth_rx_burst.
        Meanwhile I failed to find any DPDK latency report from Intel nor  
mails from those who might experience the same problem. Does anyone meet the 
same problem and probably know what happens between the packet is in the PHY 
Core and the packet is in the memory? Maybe Intel Validation Team?
        I guess it may relate to packet discarding logic in the firmware or the 
DMA process. I saw this issue on different servers and different versions of 
firmware or DDP as well.

Configuration of the server:
CPU: Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
RAM: DDR4 11 x 32 GB, 2933 MHz, 6 Channels
OS: Ubuntu 20.04.2 LTS
Kernel: 5.4.0-89-generic
Ice kernel driver version: 1.6.7
OS default DDP version: 1.3.26
Firmware version: 3.0
Traffic generator: MoonGen with two Mellanox ConnectX-5 EN 100G NICs

        Best Wishes
        Pan



Reply via email to