From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from hall.aurel32.net (hall.aurel32.net [IPv6:2001:bc8:30d7:100::1]) by sourceware.org (Postfix) with ESMTPS id DD4A13858CDA for ; Fri, 7 Oct 2022 18:40:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DD4A13858CDA Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=aurel32.net Authentication-Results: sourceware.org; spf=none smtp.mailfrom=aurel32.net DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=aurel32.net ; s=202004.hall; h=In-Reply-To:Content-Type:MIME-Version:References: Message-ID:Subject:To:From:Date:Content-Transfer-Encoding:Cc:From:Reply-To: Subject:Content-ID:Content-Description:X-Debbugs-Cc; bh=vztyHr6aNkfE3uuS6cEMiHk1UuNySjHzDxrQT0777Qw=; b=OXYBzUy7Vo3Qp3f5J1w3uzVY5Z 25v8eEXIUojL7QoxFPAFOTsJCZjGaPnwY8O1D7Y0ecxYM/hUkeTldVwZQ2hbC4m+DTCTcavpDCkf1 lfyvh+hn+h9OlSBwEgxKjgjhXYjCfmZuahdIIdg/K0nG1GEWjHG1+CUJn8q6kujp+J1gxlNwTIq0u 2lB0sPMwD1USVzxkwWXOSR2BvCTh1TTg8o49UgPHTefNsm/cWIkROMc5c9LDV3yrvSRIsAxfcwfOj 59ZmG5zryFFKdJHo7KNTHA696NOBrtROUkjZ00hNqA9I1mtEA7+vRQM3Y1s/6IgVVMHlyPKND+XLH q+SCf87g==; Received: from [2a01:e34:ec5d:a741:8a4c:7c4e:dc4c:1787] (helo=ohm.rr44.fr) by hall.aurel32.net with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ogsGf-001VHk-NT for libc-alpha@sourceware.org; Fri, 07 Oct 2022 20:40:17 +0200 Received: from aurel32 by ohm.rr44.fr with local (Exim 4.96) (envelope-from ) id 1ogsGf-00C5Xc-0f for libc-alpha@sourceware.org; Fri, 07 Oct 2022 20:40:17 +0200 Date: Fri, 7 Oct 2022 20:40:17 +0200 From: Aurelien Jarno To: Adhemerval Zanella via Libc-alpha Subject: Re: [PATCH] arm: Enable USE_ATOMIC_COMPILER_BUILTINS (BZ #24774) Message-ID: Mail-Followup-To: Adhemerval Zanella via Libc-alpha References: <20210929191430.884057-1-adhemerval.zanella@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210929191430.884057-1-adhemerval.zanella@linaro.org> User-Agent: Mutt/2.2.7 (2022-08-07) X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_PASS,SPF_NONE,TXREP,URIBL_BLACK autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 2021-09-29 16:14, Adhemerval Zanella via Libc-alpha wrote: > As per other architectures. I have checked on a armv8 hardware with > the following configurations: > > arm-linux-gnueabihf (gcc built with --with-float=hard --with-cpu=arm926ej-s) > armv5-linux-gnueabihf (-march=armv5te -mfpu=vfpv3) > armv7-linux-gnueabihf (-march=armv7-a -mfpu=vfpv3) > armv7-thumb-linux-gnueabihf (-march=armv7-a -mfpu=vfpv3 -mthumb) > armv7-neon-linux-gnueabihf (-march=armv7-a -mfpu=neon) > armv7-neonhard-linux-gnueabihf (-march=armv7-a -mfpu=neon -mfloat-abi=hard) > > Without any regression. > > I haven't dig into the code, but since Linux atomic-machine.h handle > pre-ARMv6 and ARMv6 I expect the compiler might have some small room > to optimize. > > The code size also improves is most of the configurations: > > * master > > text data bss dec hex filename > 1727801 9720 37928 1775449 1b1759 arm-linux-gnueabihf/libc.so > 1691729 9720 37928 1739377 1a8a71 arm-linux-gnueabihf-armv7-disable-multi-arch/libc.so > 1725509 9720 37928 1773157 1b0e65 armv5-linux-gnueabihf/libc.so > 1700757 9720 37928 1748405 1aadb5 armv6-linux-gnueabihf/libc.so > 1698973 9720 37928 1746621 1aa6bd armv6t2-linux-gnueabihf/libc.so > 1695481 9752 37928 1743161 1a9939 armv7-linux-gnueabihf/libc.so > 1692917 9744 37928 1740589 1a8f2d armv7-neonhard-linux-gnueabihf/libc.so > 1692917 9744 37928 1740589 1a8f2d armv7-neon-linux-gnueabihf/libc.so > 1225353 9752 37928 1273033 136cc9 armv7-thumb-linux-gnueabihf/libc.so > > * patched > > text data bss dec hex filename > 1726805 9720 37928 1774453 1b1375 arm-linux-gnueabihf/libc.so > 1689321 9720 37928 1736969 1a8109 arm-linux-gnueabihf-armv7-disable-multi-arch/libc.so > 1724433 9720 37928 1772081 1b0a31 armv5-linux-gnueabihf/libc.so > 1698301 9720 37928 1745949 1aa41d armv6-linux-gnueabihf/libc.so > 1696525 9720 37928 1744173 1a9d2d armv6t2-linux-gnueabihf/libc.so > 1693009 9752 37928 1740689 1a8f91 armv7-linux-gnueabihf/libc.so > 1690493 9744 37928 1738165 1a85b5 armv7-neonhard-linux-gnueabihf/libc.so > 1690493 9744 37928 1738165 1a85b5 armv7-neon-linux-gnueabihf/libc.so > 1223837 9752 37928 1271517 1366dd armv7-thumb-linux-gnueabihf/libc.so > > The idea is eventually move all architectures to use compiler builtins. > --- > sysdeps/arm/atomic-machine.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/sysdeps/arm/atomic-machine.h b/sysdeps/arm/atomic-machine.h > index 7928ff29d8..0275fcd2f7 100644 > --- a/sysdeps/arm/atomic-machine.h > +++ b/sysdeps/arm/atomic-machine.h > @@ -34,7 +34,7 @@ typedef intmax_t atomic_max_t; > typedef uintmax_t uatomic_max_t; > > #define __HAVE_64B_ATOMICS 0 > -#define USE_ATOMIC_COMPILER_BUILTINS 0 > +#define USE_ATOMIC_COMPILER_BUILTINS 1 > #define ATOMIC_EXCHANGE_USES_CAS 1 > > void __arm_link_error (void); > -- I have just found your patch after I stumbled on BZ #24774. I confirm it fixes this bug and also the flaky nptl/tst-rwlock9 test on arm. I did not find any regression on the testsuite on Debian armel (armv5-linux-gnueabi) and Debian armhf (armv7-linux-gnueabihf), using GCC 11. Reviewed-by: Aurelien Jarno Tested-by: Aurelien Jarno -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net