Test-Label: intel-Testing Test-Status: SUCCESS _Testing PASS DPDK git repo: dpdk-next-net-mlx commit 727c358dcc4f41836eb07d2af8e0937d3b794c79 Author: Viacheslav Ovsiienko Date: Tue Jan 3 13:11:45 2023 +0200 net/mlx5: fix read device clock in real time mode Since ConnectX-6DX the real time timestamp mode is supported. The rte_eth_read_clock() routine queries current timestamp value from the PMD. The mlx5 PMD has special infrastructure to schedule packet sending in real time mode which can be engaged with tx_pp devarg. This infrastructure provides the timestamp reading from the special queue CEQs directly from the host memory in user space, without involving kernel calls. The ConnectX-7 NIC has hardware capability to schedule packet sending without special infrastructure and tx_pp devarg can be omitted. If there is no tx_pp devarg specified the mlx5 uses kernel calls to query current timestamp value. The kernel can be completely unaware about engaged real time mode, also kernel might use its internal queue CQEs to get timestamps, that is neither precise nor reliable, inconsistent values might be returned, causing send scheduling malfunction. The HCA PCI BAR provides the real time direct reading from hardware. This patch maps PCI resource to the process address space on demand and allows reading the real time timestamp values from the NIC directly. Fixes: b94d93ca73803 ("net/mlx5: support reading device clock") Cc: stable@dpdk.org Signed-off-by: Viacheslav Ovsiienko Testing Summary : 18 Case Done, 18 Successful, 0 Failures Testbed #1: 9 Case Done, 9 Successful, 0 Failures * 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| +-------------+---------------------------+-------+ * Environment: OS : Ubuntu 20.04.5 LTS Kernel : 5.8.0-63-generic GCC : 9.4.0-1ubuntu1~20.04.1 NIC : Ethernet Controller E810-C for SFP Target : x86_64-native-linuxapp-gcc Testbed #2: 9 Case Done, 9 Successful, 0 Failures * 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| +-------------+---------------------------+-------+ * Environment: OS : Ubuntu 20.04.5 LTS Kernel : 5.13.0-30-generic GCC : 9.4.0-1ubuntu1~20.04.1 NIC : Ethernet Controller XL710 for 40GbE QSFP+ Target : x86_64-native-linuxapp-gcc 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 asan_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/asan_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 asan_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_asan_smoke.py DPDK STV team