From mboxrd@z Thu Jan 1 00:00:00 1970 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 D8CF83DA5AC for ; Wed, 4 Mar 2026 22:03:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772661780; cv=none; b=Pdfxe0gd86bPyrFlJbiAbE+sMUgo7nz8+C5MbUyWTPuKCeenlxViHiRgPyZc5gWWYQk/uDuqdIgXB7P+UAzrE94VA2UPA0WrEOScMN4GjHxI0BtCtEcPWmKUf3xma+5fvS7KuMhN5DY/WRMG0olEEWU06aAvLye5Vf9CK81V0DA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772661780; c=relaxed/simple; bh=HcK/H9ltZEZ4Ipo2+kVsgzpEkLMGIKeA9mFyFMQYhys=; h=Message-ID:Date:From:To:Cc:Subject:References:MIME-Version: Content-Type; b=SAfNJMONpL/eaKSGdGWh0RHP2jwkEAFEVsCZ410BnXGaMfw0xVO3f6J+qlETZ57qw/CX2zQ2BE2Fj3SRP802jKudVswe2rnX74CnjZ0SZ+kYYBtN22w7Ct5SoV4iLbDXIzG7YAEe6lk1xJ5pyZ4hzgCzibCMXX4Oc16skEba+PU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rKwiue4F; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rKwiue4F" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B6785C4CEF7; Wed, 4 Mar 2026 22:03:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772661780; bh=HcK/H9ltZEZ4Ipo2+kVsgzpEkLMGIKeA9mFyFMQYhys=; h=Date:From:To:Cc:Subject:References:From; b=rKwiue4F8tbehEbx7ZbcLiS4kYFTMt+dVByamRODIRzWvYxpboTxNFCTShBjCaGHZ wxGmartoAIU3YRXwcTeqILGjditJkCmzfo+hHDORLHv2nftKnIhxhHyXmZNOt0h69A +4sZwF8EVfs7DWUqvZBnoIGlYHbyl5lzX2U0wc/PLAjapUzrZtvYzZ9jU0Su66gBbe orIe/cbUG9D2xaM8VtOMEpftr9rk2CF7UnG2XXgJjdTu2+BedT74C+UjvWA8m67qQp GEkGKXLzAjzjO5d+mR9ip2pj+T/H6D9w54Y2jYUh14NGhXl9OTJgcyTQKlCM3LnSmj k465OPRHfb85w== Received: from rostedt by gandalf with local (Exim 4.99.1) (envelope-from ) id 1vxuJe-00000003CSF-00S1; Wed, 04 Mar 2026 17:03:38 -0500 Message-ID: <20260304220337.856983225@kernel.org> User-Agent: quilt/0.69 Date: Wed, 04 Mar 2026 17:03:23 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton Subject: [for-linus][PATCH 4/6] ftrace: Disable preemption in the tracepoint callbacks handling filtered pids References: <20260304220319.218314827@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 From: Steven Rostedt When function trace PID filtering is enabled, the function tracer will attach a callback to the fork tracepoint as well as the exit tracepoint that will add the forked child PID to the PID filtering list as well as remove the PID that is exiting. Commit a46023d5616e ("tracing: Guard __DECLARE_TRACE() use of __DO_TRACE_CALL() with SRCU-fast") removed the disabling of preemption when calling tracepoint callbacks. The callbacks used for the PID filtering accounting depended on preemption being disabled, and now the trigger a "suspicious RCU usage" warning message. Make them explicitly disable preemption. Cc: Mathieu Desnoyers Link: https://patch.msgid.link/20260302213546.156e3e4f@gandalf.local.home Fixes: a46023d5616e ("tracing: Guard __DECLARE_TRACE() use of __DO_TRACE_CALL() with SRCU-fast") Signed-off-by: Steven Rostedt (Google) Signed-off-by: Masami Hiramatsu (Google) --- kernel/trace/ftrace.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 827fb9a0bf0d..2f72af0357e5 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -8611,6 +8611,7 @@ ftrace_pid_follow_sched_process_fork(void *data, struct trace_pid_list *pid_list; struct trace_array *tr = data; + guard(preempt)(); pid_list = rcu_dereference_sched(tr->function_pids); trace_filter_add_remove_task(pid_list, self, task); @@ -8624,6 +8625,7 @@ ftrace_pid_follow_sched_process_exit(void *data, struct task_struct *task) struct trace_pid_list *pid_list; struct trace_array *tr = data; + guard(preempt)(); pid_list = rcu_dereference_sched(tr->function_pids); trace_filter_add_remove_task(pid_list, NULL, task); -- 2.51.0