[Environment] DPDK version: dpdk22.11.0rc1 a74b1b25136a592c275afbfa6b70771469750aee OS: CentOS7.9/3.10.0-1160.62.1.el7.x86_64 or 3.10.0-1160.71.1.el7.x86_64 Compiler: gcc version 4.8.5 20150623 Hardware platform: Intel(R) Atom(TM) CPU C3758 @ 2.20GHz [Test Setup] Steps to reproduce 1. Use the following command to build DPDK: CC=gcc meson -Denable_kmods=True -Dlibdir=lib --default-library=static x86_64-native-linuxapp-gcc/ ninja -C x86_64-native-linuxapp-gcc/ 2. Execute the following command in the dpdk directory. meson test -C x86_64-native-bsdapp-gcc/ seqlock_autotest [Show the output from the previous commands] 2/2 DPDK:fast-tests / seqlock_autotest FAIL 2.51s (exit status 255 or signal 127 SIGinvalid) 04:23:38 MALLOC_PERTURB_=139 DPDK_TEST=seqlock_autotest /root/dpdk/x86_64-native-linuxapp-gcc/app/test/dpdk-test --file-prefix=seqlock_autotest ----------------------------------- output ----------------------------------- stdout: RTE>>seqlock_autotest^M Reader observed inconsistent data values 10856068477537484964 9973142773974991064 9973142773974991064 Test Failed RTE>> stderr: EAL: Detected CPU lcores: 8 EAL: Detected NUMA nodes: 1 EAL: Detected static linkage of DPDK EAL: Multi-process socket /var/run/dpdk/seqlock_autotest/mp_socket EAL: Selected IOVA mode 'VA' EAL: 1024 hugepages of size 2097152 reserved, but no mounted hugetlbfs found for that size APP: HPET is not enabled, using TSC as default timer [Expected Result] Test ok.
Mattias, could you have a look? Thanks.
Only found this failure on CentOS7.9. Can test passed on 22.04.1 LTS (Jammy Jellyfish)/5.15.0-27-generic with GCC gcc version 11.2.0.
Still can reproduce on dpdk22.11-rc2 [root@localhost dpdk]# meson test -C x86_64-native-linuxapp-gcc/ seqlock_autotest ninja: Entering directory `/root/dpdk/x86_64-native-linuxapp-gcc' ninja: no work to do. 1/1 DPDK:fast-tests / seqlock_autotest FAIL 3.08s (exit status 255 or signal 127 SIGinvalid) >>> MALLOC_PERTURB_=123 DPDK_TEST=seqlock_autotest >>> /root/dpdk/x86_64-native-linuxapp-gcc/app/test/dpdk-test >>> --file-prefix=seqlock_autotest 1/1 DPDK:fast-tests / seqlock_autotest FAIL 3.08s (exit status 255 or signal 127 SIGinvalid) 06:38:57 MALLOC_PERTURB_=123 DPDK_TEST=seqlock_autotest /root/dpdk/x86_64-native-linuxapp-gcc/app/test/dpdk-test --file-prefix=seqlock_autotest ----------------------------------- output ----------------------------------- stdout: RTE>>seqlock_autotest^M Reader observed inconsistent data values 13079009876559343592 10884127578201130137 10884127578201130137 Test Failed RTE>> stderr: EAL: Detected CPU lcores: 8 EAL: Detected NUMA nodes: 1 EAL: Detected static linkage of DPDK EAL: Multi-process socket /var/run/dpdk/seqlock_autotest/mp_socket EAL: Selected IOVA mode 'VA' EAL: 1024 hugepages of size 2097152 reserved, but no mounted hugetlbfs found for that size EAL: VFIO support initialized EAL: Using IOMMU type 1 (Type 1) EAL: Probe PCI driver: net_i40e (8086:158b) device: 0000:02:00.0 (socket -1) EAL: Probe PCI driver: net_i40e (8086:158b) device: 0000:02:00.1 (socket -1) APP: HPET is not enabled, using TSC as default timer ------------------------------------------------------------------------------ Summary of Failures:
Created attachment 228 [details] O2_working.log
Created attachment 229 [details] O3_ko.log
I can confirm the issue is linked to compiler. Either using the compiler barrier workaround (suggested on mailing list), or changing compilation optimisation level from 3 to 2 makes the issue disappear. Fwiw, I attached the disassembled code.
(In reply to David Marchand from comment #6) > I can confirm the issue is linked to compiler. > Either using the compiler barrier workaround (suggested on mailing list), or > changing compilation optimisation level from 3 to 2 makes the issue > disappear. > Fwiw, I attached the disassembled code. Yes, it is only found on CentOS7.9/gcc 4.8.5. Can test passed on 22.04.1 LTS (Jammy Jellyfish)/5.15.0-27-generic with GCC gcc version 11.2.0.