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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E10F1C433F5 for ; Tue, 14 Dec 2021 22:05:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238063AbhLNWFV (ORCPT ); Tue, 14 Dec 2021 17:05:21 -0500 Received: from sin.source.kernel.org ([145.40.73.55]:58672 "EHLO sin.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234747AbhLNWEp (ORCPT ); Tue, 14 Dec 2021 17:04:45 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id EE57ACE1AFB for ; Tue, 14 Dec 2021 22:04:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CEA29C34614; Tue, 14 Dec 2021 22:04:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1639519481; bh=pDN13qNBCkZZ1SYN3icWfQuAvJW52/Ly9A+GRqClHuE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SlOIAtapvz8WXMzq29VjQNEfR5Ok3HP0wSpEEJ1kfX4sQc+J/EPNiWXNIDx3/HRVz kGZ7tIDL55mkKD4HhQAlPN/VI617asmPnXdJ0ERMA45Sgn+o3vd2OCptmCCszKzYeC /UFjUU21ivSyToqAAHLA6HsMbaxlt44AsZc/yXksg4lvG7ZbYMIbYRj4D1Uj9aBc+K WF7WVILMC6mu97h/es2xKkm5C/BlQ/l1y1MAoAvrLl1Foc2nilLEldbye4H6vupW9J XaKBUjPbNz7VNfntGW+VewpXh4eHAopCQ3SO2nbz67ybN/TVCE4CdH+ZXclc+VSo5j HtSaw4JY0oHtA== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 64D935C134C; Tue, 14 Dec 2021 14:04:41 -0800 (PST) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, kernel-team@fb.com, mingo@kernel.org Cc: elver@google.com, andreyknvl@google.com, glider@google.com, dvyukov@google.com, cai@lca.pw, boqun.feng@gmail.com, "Paul E . McKenney" Subject: [PATCH kcsan 06/29] kcsan, kbuild: Add option for barrier instrumentation only Date: Tue, 14 Dec 2021 14:04:16 -0800 Message-Id: <20211214220439.2236564-6-paulmck@kernel.org> X-Mailer: git-send-email 2.31.1.189.g2e36527f23 In-Reply-To: <20211214220356.GA2236323@paulmck-ThinkPad-P17-Gen-1> References: <20211214220356.GA2236323@paulmck-ThinkPad-P17-Gen-1> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Marco Elver Source files that disable KCSAN via KCSAN_SANITIZE := n, remove all instrumentation, including explicit barrier instrumentation. With instrumentation for memory barriers, in few places it is required to enable just the explicit instrumentation for memory barriers to avoid false positives. Providing the Makefile variable KCSAN_INSTRUMENT_BARRIERS_obj.o or KCSAN_INSTRUMENT_BARRIERS (for all files) set to 'y' only enables the explicit barrier instrumentation. Signed-off-by: Marco Elver Signed-off-by: Paul E. McKenney --- scripts/Makefile.lib | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index d1f865b8c0cba..ab17f7b2e33c4 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -182,6 +182,11 @@ ifeq ($(CONFIG_KCSAN),y) _c_flags += $(if $(patsubst n%,, \ $(KCSAN_SANITIZE_$(basetarget).o)$(KCSAN_SANITIZE)y), \ $(CFLAGS_KCSAN)) +# Some uninstrumented files provide implied barriers required to avoid false +# positives: set KCSAN_INSTRUMENT_BARRIERS for barrier instrumentation only. +_c_flags += $(if $(patsubst n%,, \ + $(KCSAN_INSTRUMENT_BARRIERS_$(basetarget).o)$(KCSAN_INSTRUMENT_BARRIERS)n), \ + -D__KCSAN_INSTRUMENT_BARRIERS__) endif # $(srctree)/$(src) for including checkin headers from generated source files -- 2.31.1.189.g2e36527f23