Bug 1107 - [22.11-rc1][meson test] seqlock_autotest test failed
Summary: [22.11-rc1][meson test] seqlock_autotest test failed
Status: UNCONFIRMED
Alias: None
Product: DPDK
Classification: Unclassified
Component: meson (show other bugs)
Version: 22.11
Hardware: All All
: Normal normal
Target Milestone: ---
Assignee: Mattias Rönnblom
URL:
Depends on:
Blocks:
 
Reported: 2022-10-18 07:57 CEST by jiang,yu
Modified: 2022-11-02 09:22 CET (History)
1 user (show)



Attachments
O2_working.log (17.98 KB, text/plain)
2022-11-02 09:11 CET, David Marchand
Details
O3_ko.log (18.75 KB, text/plain)
2022-11-02 09:11 CET, David Marchand
Details

Description jiang,yu 2022-10-18 07:57:07 CEST
[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.
Comment 1 David Marchand 2022-10-18 08:45:57 CEST
Mattias, could you have a look?
Thanks.
Comment 2 jiang,yu 2022-10-18 11:04:52 CEST
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.
Comment 3 jiang,yu 2022-11-02 07:40:09 CET
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:
Comment 4 David Marchand 2022-11-02 09:11:19 CET
Created attachment 228 [details]
O2_working.log
Comment 5 David Marchand 2022-11-02 09:11:41 CET
Created attachment 229 [details]
O3_ko.log
Comment 6 David Marchand 2022-11-02 09:12:51 CET
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.
Comment 7 jiang,yu 2022-11-02 09:22:53 CET
(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.

Note You need to log in before you can comment on or make changes to this bug.