From patchwork Sat Dec 16 04:22:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 179817 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:24d3:b0:fb:cd0c:d3e with SMTP id r19csp30680dyi; Fri, 15 Dec 2023 20:25:52 -0800 (PST) X-Google-Smtp-Source: AGHT+IFs3goIn9i0Aj4Tnj/mfrqjcWldlGwkdNpCkyV1qrpB7G2+oICMCgITUxKzhp9DgEL0P9HF X-Received: by 2002:a05:6214:1106:b0:67a:cbf8:b162 with SMTP id e6-20020a056214110600b0067acbf8b162mr11470609qvs.87.1702700752624; Fri, 15 Dec 2023 20:25:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702700752; cv=none; d=google.com; s=arc-20160816; b=0V9e6hWOuM1C3iI57plEYH/a3EE0YEHoEUp2JSB1nm+5GJkFGzH11lkrYrmpvcuzZ4 zvJjNdGWaWFr/+CFKfiFdzfTlXb2g6i3oc6xBpXjPTMY9udname8HJH6Scgjny8VTWy2 q1aVVOwIrILbyx9k7fSD5y20M0GeU2zaqxhVndUJcDEMtxVBAz9HTbSmqLd+4+01kW4p ju5VFrw4Vt/Hr5fA9nggTD4SgYQpRBaCacpN6XFVUzUEevU5Yh2GULREPrsdUHWoXNcb /WKHCumOVcBNxFjZwG2onEKhTYhVvvqHGSmtb+jmXZB2hFrpcm8RmHaldduZCxkTpQz3 CouA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:subject:cc:to:from:date:user-agent:message-id; bh=7yWmTZz6xBQfotj9D8RbHPBcVW8g+FDm4fTllJi7Ds4=; fh=mTYg3JJ8i2GBNLFt8qb4bgYwOyk0kmrOzICLbi6qJ1c=; b=WIwKRT9pkuh1YBvoZgZxzxU7YlPnM1hgAc0sKO/bigNhQUU5t0PYCNVkQ4VeCPqHu9 6E0EWDHEOwFp9B638unEL+8wtg8CMSNBSMvISNhGbZ1o1FC8jeG/mccV4urH+K8ObXgT Tp3lDjHJfIX9XtKM8HIBxEQBlkz46Y34tKmhfdXpEXy4CSYQTVNcYuJ/NdlvBgbQM3Gu P/K+o2Am8DgUiunu0QG+oFhmBJ4OPeXZ4+HBIbBE8gSC/20HiAMe/FOkdvOcolLPHyEm L9E6+3pb5koWJuwkt/aG2yU4BQhL2maElp17CjUEac4n9JVoibq9Wyu4SM3a1WOcna0J Wykg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-2058-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-2058-ouuuleilei=gmail.com@vger.kernel.org" Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id t16-20020a0ce2d0000000b0067ef911bb5asi1174135qvl.342.2023.12.15.20.25.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Dec 2023 20:25:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-2058-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-2058-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-2058-ouuuleilei=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 661091C2433C for ; Sat, 16 Dec 2023 04:25:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 285ED3526F; Sat, 16 Dec 2023 04:21:57 +0000 (UTC) X-Original-To: linux-kernel@vger.kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 936FE328B6 for ; Sat, 16 Dec 2023 04:21:55 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 27FF5C433C7; Sat, 16 Dec 2023 04:21:55 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.97) (envelope-from ) id 1rEMCM-00000002yHl-0uWe; Fri, 15 Dec 2023 23:22:46 -0500 Message-ID: <20231216042245.999106507@goodmis.org> User-Agent: quilt/0.67 Date: Fri, 15 Dec 2023 23:22:29 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton Subject: [for-linus][PATCH 15/15] ring-buffer: Do not record in NMI if the arch does not support cmpxchg in NMI References: <20231216042214.905262999@goodmis.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1785411144568802495 X-GMAIL-MSGID: 1785411144568802495 From: "Steven Rostedt (Google)" As the ring buffer recording requires cmpxchg() to work, if the architecture does not support cmpxchg in NMI, then do not do any recording within an NMI. Link: https://lore.kernel.org/linux-trace-kernel/20231213175403.6fc18540@gandalf.local.home Cc: Masami Hiramatsu Cc: Mark Rutland Cc: Mathieu Desnoyers Signed-off-by: Steven Rostedt (Google) --- kernel/trace/ring_buffer.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index f4679013289b..5a114e752f11 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -3674,6 +3674,12 @@ rb_reserve_next_event(struct trace_buffer *buffer, int nr_loops = 0; int add_ts_default; + /* ring buffer does cmpxchg, make sure it is safe in NMI context */ + if (!IS_ENABLED(CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG) && + (unlikely(in_nmi()))) { + return NULL; + } + rb_start_commit(cpu_buffer); /* The commit page can not change after this */