On 2022-10-18 07:57, bugzi...@dpdk.org wrote:
> https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-77db8b1c577f1119&q=1&e=8bb9cf17-6273-48ca-96b9-52e8c1287ae2&u=https%3A%2F%2Fbugs.dpdk.org%2Fshow_bug.cgi%3Fid%3D1107
> 
>              Bug ID: 1107
>             Summary: [22.11-rc1][meson test] seqlock_autotest test failed
>             Product: DPDK
>             Version: 22.11
>            Hardware: All
>                  OS: All
>              Status: UNCONFIRMED
>            Severity: normal
>            Priority: Normal
>           Component: meson
>            Assignee: dev@dpdk.org
>            Reporter: yux.ji...@intel.com
>    Target Milestone: ---
> 
> [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

Have you tried with a different compiler? Preferably one supported by 
DPDK, unlike 4.8.5.

Some versions of GCC had problems with C11 release-type thread fences. 
GCC 7.2, for example, could reorder non-atomic stores across the fence. 
(That mightily confused me, when I came across this in my very first 
program using C11-style atomics.)

It might be worth disassembling the code to make sure that didn't happen 
in your case.

Also, you could try to replace the release barrier and/or the acquire 
barrier with a rte_compiler_barrier(), just to see if this problem is 
indeed related to the barriers. On a TSO machine, a compiler barrier 
should do the job. Or you use __sync_synchronize(). (Just for 
exploration, not as a bug fix or workaround.)

> 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.
> 

Reply via email to