On Fri, Oct 18, 2019 at 1:22 PM Phil Yang <phil.y...@arm.com> wrote: > > This patch adds the implementation of the 128-bit atomic compare > exchange API on AArch64. Using 64-bit 'ldxp/stxp' instructions > can perform this operation. Moreover, on the LSE atomic extension > accelerated platforms, it implemented by 'casp' instructions for > better performance. > > Since the '__ARM_FEATURE_ATOMICS' flag only supports GCC-9, so this > patch adds a new config flag 'RTE_ARM_FEATURE_ATOMICS' to enable the > 'cas' version on elder version compilers.
Jerin, Phil, I am getting a build error on the octeontx2 target: {standard input}: Assembler messages: {standard input}:672: Error: selected processor does not support `casp x0,x1,x2,x3,[x4]' {standard input}:690: Error: selected processor does not support `caspa x0,x1,x2,x3,[x4]' {standard input}:708: Error: selected processor does not support `caspl x0,x1,x2,x3,[x4]' {standard input}:726: Error: selected processor does not support `caspal x0,x1,x2,x3,[x4]' ninja: build stopped: subcommand failed. Looking into the meson logs, I can see: Native C compiler: ccache gcc (gcc 9.2.1 "gcc (GCC) 9.2.1 20190827 (Red Hat 9.2.1-1)") Cross C compiler: aarch64-linux-gnu-gcc (gcc 8.2.1) Host machine cpu family: aarch64 Host machine cpu: armv8-a Target machine cpu family: aarch64 Target machine cpu: armv8-a Build machine cpu family: x86_64 Build machine cpu: x86_64 ... Message: Implementer : Cavium Compiler for C supports arguments -mcpu=octeontx2: NO Message: [] Fetching value of define "__ARM_NEON" : 1 Fetching value of define "__ARM_FEATURE_CRC32" : Fetching value of define "__ARM_FEATURE_CRYPTO" : My toolchain does not support the octeontx2 target, but RTE_ARM_FEATURE_ATOMICS ends up being set in the configuration anyway. Tried with Linaro toolchains (4.7.1, 7.4) mentionned in the dpdk documentation, same result. Looking at config/arm/meson.build, the "extra machine specific flags" are appended to the configuration, regardless of what the compiler replied when testing the machine args. -- David Marchand