Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp4954795ybv; Mon, 17 Feb 2020 09:09:13 -0800 (PST) X-Google-Smtp-Source: APXvYqyYlzPiKclkB6APW1tbug/WKGnbuabYb9noss+MNZubJxwH9pz1H012RtUfgpUJYl3LZ8Di X-Received: by 2002:a05:6830:1d8b:: with SMTP id y11mr13462022oti.4.1581959353761; Mon, 17 Feb 2020 09:09:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581959353; cv=none; d=google.com; s=arc-20160816; b=zcHxwmGwhLuC8UDFLGrC9uxBG7vUhCSnc6cjdFhoqgIaVhQlcrl4maWbj/7wTNiOO4 n8wIg1Kg+3rkjHK1+eqEq7E43SqluUkXggnCiE+iu/KUf4L/lVRALHAoPf0rlvjlLmPV KdRJZ7Cr8k9nH3huv4d9YjLxOZHASNIyvOJ6oj7GNxlUG0CHQLiyLk335Xk2uIKethIg kLsqTFQ9RPacEP1+/m9LvBtnc6ARNid+jSmIZ9etMHehlwefktNgLiiIOHpqxy322K+q DkmzRkvjYjx3Keik9AvXjEX6EWGcEQD8CxhGOuCdNB63lY13ZaQu5Jg8rYg8PRZw3srd cfFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :dkim-signature; bh=L6P6i8QYBtrRLDhCjXcjIS4jJjXwildK8xh5dBjAjQw=; b=mSiCQaQOXHnLJhIsC0wZPJT+ifG8gfCSq7H5bcf+dNJTnRQfDrgJXzF/2oIGJgs98s PK5H2+d/4oYQ50Uniqb2U0h3gOrAcElziBM0UGWFdXR9LE+f/iQEb0db7XG/8siU1FKI yRj07LmKrS94aUANsThFmocT+n7WWeHXR0k/VbWhUJD/QlS4kVdj3v3s0ArC73IicX8t vQ4xWndAUMBymsfH7ca+4sPz2UbcUC5b9il3AX6n5uK0QYFayNlXODtrwg5RmLoPrZfU MNFldzoCjfBtcaevMcI8nppZ0wdZA1IOET1eTfFR6LoLbx9oLNbLk19GTWVppp0EdDnF O+JA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lca.pw header.s=google header.b=ffd4dHge; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e8si6810860oie.96.2020.02.17.09.09.01; Mon, 17 Feb 2020 09:09:13 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@lca.pw header.s=google header.b=ffd4dHge; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728819AbgBQRGR (ORCPT + 99 others); Mon, 17 Feb 2020 12:06:17 -0500 Received: from mail-qv1-f68.google.com ([209.85.219.68]:41538 "EHLO mail-qv1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728142AbgBQRGR (ORCPT ); Mon, 17 Feb 2020 12:06:17 -0500 Received: by mail-qv1-f68.google.com with SMTP id s7so7871283qvn.8 for ; Mon, 17 Feb 2020 09:06:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lca.pw; s=google; h=message-id:subject:from:to:cc:date:in-reply-to:references :mime-version:content-transfer-encoding; bh=L6P6i8QYBtrRLDhCjXcjIS4jJjXwildK8xh5dBjAjQw=; b=ffd4dHgeWvjZb9BGBU9kgw11/3oJ0Mb9QQlnBBDkZ0u0hR3L4PTyZ8LoixLO2Cj8YV O6mOO3+4CYI/akamAVpZ6f7V2T6GExd5S3TaZdPNnbyi0tsVKVQvKrJ+TpldSIENEfDo 0afoQemXutfzDYbSevb4++hQ5x7Ij3dymdcxDToVUByCIdgF1/CXJdzjSVcVnHOL6J1Y e3C0sM0JZVXMBO3wgaJRIa1NtqhVrFT0zZ18Jy4y9Rj2wYfbjD8m7MEleGq6fuAX93lq JGqHg0KMMDLuMt1GCcQch6LooyUXn42ryvkpkQZQdgzllWwFYKIDpm7PyMA93hl2ib82 OgPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:mime-version:content-transfer-encoding; bh=L6P6i8QYBtrRLDhCjXcjIS4jJjXwildK8xh5dBjAjQw=; b=Gh90TynAN7G+UkZYPGH/Mj/jB2jvv2MnISOtTi5nEmvG+xMQlGS8DKVqkQBKWxVnwM oFd5mKCnTdTSRKJCd4tnT2LclludgyBLZ2Ssq+crQb4hTeeJc8MGQUZkMVr5uFa1mka6 xUgknFSwgjOKQlkODewJPRplLuAyBaOGkO7hxyuWll0D1eeMbcbWeJhxwbu440pxlSFB vmZSDo+7cMF4KKBOzkMsvqbZkxzL8nge7POOg61nZC5lEQd2maNe/KKc4kASbIFe6r8G o7yyuZju+5SNbrZYQb9gpTBLDXXisSdeHrUFkQSnh7rRc1eUR2pD5RW0bH4N7XIUCzpI 9xBw== X-Gm-Message-State: APjAAAWRkA6Aber50UC5VazgcBJEN5+Gmd0rZlnFVcdVDqoSx73Ah41j Vqw/SYE6weeRksqckLGvfq4OtQ== X-Received: by 2002:a05:6214:707:: with SMTP id b7mr13001067qvz.97.1581959176043; Mon, 17 Feb 2020 09:06:16 -0800 (PST) Received: from dhcp-41-57.bos.redhat.com (nat-pool-bos-t.redhat.com. [66.187.233.206]) by smtp.gmail.com with ESMTPSA id w202sm514179qkb.89.2020.02.17.09.06.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 17 Feb 2020 09:06:15 -0800 (PST) Message-ID: <1581959174.7365.88.camel@lca.pw> Subject: Re: [PATCH v2] kcsan, trace: Make KCSAN compatible with tracing From: Qian Cai To: paulmck@kernel.org, Marco Elver Cc: andreyknvl@google.com, glider@google.com, dvyukov@google.com, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, rostedt@goodmis.org, mingo@redhat.com, x86@kernel.org Date: Mon, 17 Feb 2020 12:06:14 -0500 In-Reply-To: <20200214234004.GT2935@paulmck-ThinkPad-P72> References: <20200214211035.209972-1-elver@google.com> <20200214234004.GT2935@paulmck-ThinkPad-P72> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.22.6 (3.22.6-10.el7) Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 2020-02-14 at 15:40 -0800, Paul E. McKenney wrote: > On Fri, Feb 14, 2020 at 10:10:35PM +0100, Marco Elver wrote: > > Previously the system would lock up if ftrace was enabled together with > > KCSAN. This is due to recursion on reporting if the tracer code is > > instrumented with KCSAN. > > > > To avoid this for all types of tracing, disable KCSAN instrumentation > > for all of kernel/trace. > > > > Furthermore, since KCSAN relies on udelay() to introduce delay, we have > > to disable ftrace for udelay() (currently done for x86) in case KCSAN is > > used together with lockdep and ftrace. The reason is that it may corrupt > > lockdep IRQ flags tracing state due to a peculiar case of recursion > > (details in Makefile comment). > > > > Signed-off-by: Marco Elver > > Reported-by: Qian Cai > > Cc: Paul E. McKenney > > Cc: Steven Rostedt > > Queued for review and further testing, thank you! > > Qian, does this also fix things for you? It works fine. Feel free to use, Tested-by: Qian Cai > > Thanx, Paul > > > --- > > v2: > > * Fix KCSAN+lockdep+ftrace compatibility. > > --- > > arch/x86/lib/Makefile | 5 +++++ > > kernel/kcsan/Makefile | 2 ++ > > kernel/trace/Makefile | 3 +++ > > 3 files changed, 10 insertions(+) > > > > diff --git a/arch/x86/lib/Makefile b/arch/x86/lib/Makefile > > index 432a077056775..6110bce7237bd 100644 > > --- a/arch/x86/lib/Makefile > > +++ b/arch/x86/lib/Makefile > > @@ -8,6 +8,11 @@ KCOV_INSTRUMENT_delay.o := n > > > > # KCSAN uses udelay for introducing watchpoint delay; avoid recursion. > > KCSAN_SANITIZE_delay.o := n > > +ifdef CONFIG_KCSAN > > +# In case KCSAN+lockdep+ftrace are enabled, disable ftrace for delay.o to avoid > > +# lockdep -> [other libs] -> KCSAN -> udelay -> ftrace -> lockdep recursion. > > +CFLAGS_REMOVE_delay.o = $(CC_FLAGS_FTRACE) > > +endif > > > > # Early boot use of cmdline; don't instrument it > > ifdef CONFIG_AMD_MEM_ENCRYPT > > diff --git a/kernel/kcsan/Makefile b/kernel/kcsan/Makefile > > index df6b7799e4927..d4999b38d1be5 100644 > > --- a/kernel/kcsan/Makefile > > +++ b/kernel/kcsan/Makefile > > @@ -4,6 +4,8 @@ KCOV_INSTRUMENT := n > > UBSAN_SANITIZE := n > > > > CFLAGS_REMOVE_core.o = $(CC_FLAGS_FTRACE) > > +CFLAGS_REMOVE_debugfs.o = $(CC_FLAGS_FTRACE) > > +CFLAGS_REMOVE_report.o = $(CC_FLAGS_FTRACE) > > > > CFLAGS_core.o := $(call cc-option,-fno-conserve-stack,) \ > > $(call cc-option,-fno-stack-protector,) > > diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile > > index f9dcd19165fa2..6b601d88bf71e 100644 > > --- a/kernel/trace/Makefile > > +++ b/kernel/trace/Makefile > > @@ -6,6 +6,9 @@ ifdef CONFIG_FUNCTION_TRACER > > ORIG_CFLAGS := $(KBUILD_CFLAGS) > > KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS)) > > > > +# Avoid recursion due to instrumentation. > > +KCSAN_SANITIZE := n > > + > > ifdef CONFIG_FTRACE_SELFTEST > > # selftest needs instrumentation > > CFLAGS_trace_selftest_dynamic.o = $(CC_FLAGS_FTRACE) > > -- > > 2.25.0.265.gbab2e86ba0-goog > >