From patchwork Wed Dec 13 22:54:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 178341 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:3b04:b0:fb:cd0c:d3e with SMTP id c4csp8143554dys; Wed, 13 Dec 2023 14:53:26 -0800 (PST) X-Google-Smtp-Source: AGHT+IGKbMshJOEGc1rvvRVr5YVFVGCv/TyFGxPio7NG3zL84xnP6/vli1UJcDLQUI4byN2xZDx0 X-Received: by 2002:a17:903:485:b0:1d3:4ac9:18bc with SMTP id jj5-20020a170903048500b001d34ac918bcmr1866028plb.81.1702508006461; Wed, 13 Dec 2023 14:53:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702508006; cv=none; d=google.com; s=arc-20160816; b=T2gKks1gQiIemEzXTn0pjh6kgAmEEfaB2iMvJtZ89i3YCk1Pe5lIVqO6mvOZljOAk7 rC6u4mGeiixnwUQgDBWIyZFTKmoO0XzIN2/rv/PlfWgZF6uvb4/3ba81G344DLNa66Ht 7If09dEcU9UaPkdE2j9vIb0I7KX3nSDf2q1i6JGGSbxxzmJDGL0Mg2ntfD7gAeHsMjWq hQOBxsLLGQMFZOuoUa/9GYwLkby3vE0+bxXaCN4dhFuuoYxE/Yidu3+ehwgi1gteUO6F BvvT2xrLxnmTsCUft7NpRQLTIWU2Zft7Pk1fNyQG3hEJyS9JhHjjD1WhAIXvOzvpZAzE WYFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:subject:cc:to:from:date; bh=DktEfqDh4e3jHLfLAmsfWHEzkzRAtl50y+A5lnahXvs=; fh=R8JZsVKDlS7lXIAvTNV55bsjlDBI0i4sqiOYXO4tZQA=; b=gT4tP7XxaVp8CdukrEMPeF8SsF5rs7seXNL38T96MK9qdop+zuJSCa8RN/yTwuzO7Z F5ldnAGx3MlpEahELDqyFyFZq0ZDZI17hPYaj8M6V+yW3iqH7lXxbCcWgnNLi9/rhNcb 2przfuwYCuN0ZcK94kedFEOxi+7tAaQEqX0AaSjmw2hv3BNamXjjA7ffKasVgUhN39P5 FSuBOG77MFMFj5jIf9Ie0M7N4IxMLBIZ5yoik0jacYP1Hz+FC6t3Q2VBHeU2l1c5G4sr vIRhR70AtrQ8Ciq4ZNipIP/nh0W0D2pvSOYXukSp47mv9BvLIy8UPZFcsqKIk/lP75q8 o/Bg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from fry.vger.email (fry.vger.email. [23.128.96.38]) by mx.google.com with ESMTPS id l21-20020a170902d35500b001d09b00de2asi8067681plk.587.2023.12.13.14.53.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Dec 2023 14:53:26 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) client-ip=23.128.96.38; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 17A2680324D3; Wed, 13 Dec 2023 14:53:23 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229811AbjLMWxO (ORCPT + 99 others); Wed, 13 Dec 2023 17:53:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49280 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229698AbjLMWxN (ORCPT ); Wed, 13 Dec 2023 17:53:13 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BD9A085 for ; Wed, 13 Dec 2023 14:53:19 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 97306C433C7; Wed, 13 Dec 2023 22:53:18 +0000 (UTC) Date: Wed, 13 Dec 2023 17:54:03 -0500 From: Steven Rostedt To: LKML , Linux Trace Kernel Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers Subject: [PATCH] ring-buffer: Do not record in NMI if the arch does not support cmpxchg in NMI Message-ID: <20231213175403.6fc18540@gandalf.local.home> X-Mailer: Claws Mail 3.19.1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Wed, 13 Dec 2023 14:53:23 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1785209035396180923 X-GMAIL-MSGID: 1785209035396180923 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. 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 8f8887f025c9..caaffcdc6350 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -3719,6 +3719,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 */