From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF6EEC2D0C2 for ; Fri, 3 Jan 2020 17:38:02 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 85900215A4 for ; Fri, 3 Jan 2020 17:38:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 85900215A4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=goodmis.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 19E0D8E0006; Fri, 3 Jan 2020 12:38:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 14F208E0003; Fri, 3 Jan 2020 12:38:02 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0643B8E0006; Fri, 3 Jan 2020 12:38:02 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0128.hostedemail.com [216.40.44.128]) by kanga.kvack.org (Postfix) with ESMTP id E4A058E0003 for ; Fri, 3 Jan 2020 12:38:01 -0500 (EST) Received: from smtpin30.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with SMTP id AF6C64853 for ; Fri, 3 Jan 2020 17:38:01 +0000 (UTC) X-FDA: 76337031162.30.shoe59_bd6512f2d61e X-HE-Tag: shoe59_bd6512f2d61e X-Filterd-Recvd-Size: 4303 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf19.hostedemail.com (Postfix) with ESMTP for ; Fri, 3 Jan 2020 17:38:01 +0000 (UTC) Received: from gandalf.local.home (cpe-66-24-58-225.stny.res.rr.com [66.24.58.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 39AA0206DB; Fri, 3 Jan 2020 17:37:56 +0000 (UTC) Date: Fri, 3 Jan 2020 12:37:54 -0500 From: Steven Rostedt To: glider@google.com Cc: Vegard Nossum , Dmitry Vyukov , Marco Elver , Andrey Konovalov , Sergey Senozhatsky , Arnd Bergmann , Andrey Ryabinin , linux-mm@kvack.org, viro@zeniv.linux.org.uk, adilger.kernel@dilger.ca, akpm@linux-foundation.org, luto@kernel.org, ard.biesheuvel@linaro.org, hch@infradead.org, hch@lst.de, darrick.wong@oracle.com, davem@davemloft.net, dmitry.torokhov@gmail.com, ebiggers@google.com, edumazet@google.com, ericvh@gmail.com, gregkh@linuxfoundation.org, harry.wentland@amd.com, herbert@gondor.apana.org.au, iii@linux.ibm.com, mingo@elte.hu, jasowang@redhat.com, axboe@kernel.dk, m.szyprowski@samsung.com, mark.rutland@arm.com, martin.petersen@oracle.com, schwidefsky@de.ibm.com, willy@infradead.org, mst@redhat.com, mhocko@suse.com, monstr@monstr.eu, pmladek@suse.com, cai@lca.pw, rdunlap@infradead.org, robin.murphy@arm.com, tiwai@suse.com, tytso@mit.edu, tglx@linutronix.de, gor@linux.ibm.com, wsa@the-dreams.de Subject: Re: [PATCH RFC v4 02/42] stackdepot: build with -fno-builtin Message-ID: <20200103123754.3d9be4f0@gandalf.local.home> In-Reply-To: <20191220184955.223741-3-glider@google.com> References: <20191220184955.223741-1-glider@google.com> <20191220184955.223741-3-glider@google.com> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, 20 Dec 2019 19:49:15 +0100 glider@google.com wrote: > Clang may replace stackdepot_memcmp() with a call to instrumented bcmp(), > which is exactly what we wanted to avoid creating stackdepot_memcmp(). > Building the file with -fno-builtin prevents such optimizations. > > Signed-off-by: Alexander Potapenko > To: Alexander Potapenko > Cc: Vegard Nossum > Cc: Dmitry Vyukov > Cc: Marco Elver > Cc: Andrey Konovalov > Cc: Sergey Senozhatsky > Cc: Arnd Bergmann > Cc: Andrey Ryabinin > Cc: linux-mm@kvack.org > --- > This patch was previously called "stackdepot: prevent Clang from optimizing > away stackdepot_memcmp()". > > v3: > - use -fno-builtin instead of a barrier > > Change-Id: I4495b617b15c0ab003a61c1f0d54d0026fa8b144 > --- > lib/Makefile | 4 ++++ > lib/stackdepot.c | 2 +- > 2 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/lib/Makefile b/lib/Makefile > index 93217d44237f..066a6649e929 100644 > --- a/lib/Makefile > +++ b/lib/Makefile > @@ -218,6 +218,10 @@ obj-$(CONFIG_MEMREGION) += memregion.o > obj-$(CONFIG_STMP_DEVICE) += stmp_device.o > obj-$(CONFIG_IRQ_POLL) += irq_poll.o > > +# stackdepot.c should not be instrumented or call instrumented functions. > +# Prevent the compiler from calling builtins like memcmp() or bcmp() from this > +# file. > +CFLAGS_stackdepot.o += -fno-builtin > obj-$(CONFIG_STACKDEPOT) += stackdepot.o > KASAN_SANITIZE_stackdepot.o := n > KCOV_INSTRUMENT_stackdepot.o := n > diff --git a/lib/stackdepot.c b/lib/stackdepot.c > index 1d3aab244897..9d33059d874c 100644 > --- a/lib/stackdepot.c > +++ b/lib/stackdepot.c > @@ -163,7 +163,7 @@ int stackdepot_memcmp(const unsigned long *u1, const unsigned long *u2, > unsigned int n) > { > for ( ; n-- ; u1++, u2++) { > - if (*u1 != *u2) > + if ((*u1) != (*u2)) This change isn't mentioned in the change log. -- Steve > return 1; > } > return 0;