mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@kernel.org>
To: rcu@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com,
	rostedt@goodmis.org, "Paul E. McKenney" <paulmck@kernel.org>,
	Andrii Nakryiko <andrii@kernel.org>,
	Alexei Starovoitov <ast@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	bpf@vger.kernel.org
Subject: [PATCH v2 12/21] srcu: Create an rcu_tasks_trace_expedite_current() function
Date: Wed,  1 Oct 2025 07:48:23 -0700	[thread overview]
Message-ID: <20251001144832.631770-12-paulmck@kernel.org> (raw)
In-Reply-To: <7fa58961-2dce-4e08-8174-1d1cc592210f@paulmck-laptop>

This commit creates an rcu_tasks_trace_expedite_current() function
that expedites the current (and possibly the next) RCU Tasks Trace
grace period.

If the current RCU Tasks Trace grace period is already waiting, that wait
will complete before the expediting takes effect.  If there is no RCU
Tasks Trace  grace period in flight, this function might well create one.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Andrii Nakryiko <andrii@kernel.org>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: <bpf@vger.kernel.org>
---
 include/linux/rcupdate_trace.h | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/include/linux/rcupdate_trace.h b/include/linux/rcupdate_trace.h
index f47ba9c074601c..cee89e51e45cbb 100644
--- a/include/linux/rcupdate_trace.h
+++ b/include/linux/rcupdate_trace.h
@@ -184,6 +184,20 @@ static inline void rcu_barrier_tasks_trace(void)
 	srcu_barrier(&rcu_tasks_trace_srcu_struct);
 }
 
+/**
+ * rcu_tasks_trace_expedite_current - Expedite the current Tasks Trace RCU grace period
+ *
+ * Cause the current Tasks Trace RCU grace period to become expedited.
+ * The grace period following the current one might also be expedited.
+ * If there is no current grace period, one might be created.  If the
+ * current grace period is currently sleeping, that sleep will complete
+ * before expediting will take effect.
+ */
+static inline void rcu_tasks_trace_expedite_current(void)
+{
+	srcu_expedite_current(&rcu_tasks_trace_srcu_struct);
+}
+
 // Placeholders to enable stepwise transition.
 void __init rcu_tasks_trace_suppress_unused(void);
 
-- 
2.40.1


  parent reply	other threads:[~2025-10-01 14:48 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-01 14:48 [PATCH v2 0/21] Implement RCU Tasks Trace in terms of SRCU-fast and optimize Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 01/21] srcu: Permit Tiny SRCU srcu_read_unlock() with interrupts disabled Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 02/21] rcu: Re-implement RCU Tasks Trace in terms of SRCU-fast Paul E. McKenney
2025-10-02 15:46   ` Frederic Weisbecker
2025-10-04  9:47     ` Paul E. McKenney
2025-10-07 12:10       ` Frederic Weisbecker
2025-10-07 13:47         ` Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 03/21] context_tracking: Remove rcu_task_trace_heavyweight_{enter,exit}() Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 04/21] rcu: Clean up after the SRCU-fastification of RCU Tasks Trace Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 05/21] rcu: Move rcu_tasks_trace_srcu_struct out of #ifdef CONFIG_TASKS_RCU_GENERIC Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 06/21] srcu: Create an srcu_expedite_current() function Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 07/21] rcutorture: Test srcu_expedite_current() Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 08/21] rcu: Add noinstr-fast rcu_read_{,un}lock_tasks_trace() APIs Paul E. McKenney
2025-10-02  1:37   ` Alexei Starovoitov
2025-10-02 13:38     ` Paul E. McKenney
2025-10-02 15:56       ` Alexei Starovoitov
2025-10-03  8:07         ` Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 09/21] rcu: Update Requirements.rst for RCU Tasks Trace Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 10/21] checkpatch: Deprecate rcu_read_{,un}lock_trace() Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 11/21] srcu: Create a DEFINE_SRCU_FAST() Paul E. McKenney
2025-10-01 14:48 ` Paul E. McKenney [this message]
2025-10-01 14:48 ` [PATCH v2 13/21] rcutorture: Test rcu_tasks_trace_expedite_current() Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 14/21] srcu: Make grace-period determination use ssp->srcu_reader_flavor Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 15/21] rcutorture: Exercise DEFINE_STATIC_SRCU_FAST() and init_srcu_struct_fast() Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 16/21] refscale: " Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 17/21] srcu: Require special srcu_struct define/init for SRCU-fast readers Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 18/21] srcu: Make SRCU-fast readers enforce use of SRCU-fast definition/init Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 19/21] doc: Update for SRCU-fast definitions and initialization Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 20/21] tracing: Guard __DECLARE_TRACE() use of __DO_TRACE_CALL() with SRCU-fast Paul E. McKenney
2025-10-01 14:48 ` [PATCH v2 21/21] rcu: Mark diagnostic functions as notrace Paul E. McKenney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251001144832.631770-12-paulmck@kernel.org \
    --to=paulmck@kernel.org \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=kernel-team@meta.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=rcu@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome