Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

srcu: Create an rcu_tasks_trace_expedite_current() function

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
Reviewed-by: Joel Fernandes <joelagnelf@nvidia.com>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>

authored by

Paul E. McKenney and committed by
Boqun Feng
a525ccd4 e55c2e28

+14
+14
include/linux/rcupdate_trace.h
··· 184 184 srcu_barrier(&rcu_tasks_trace_srcu_struct); 185 185 } 186 186 187 + /** 188 + * rcu_tasks_trace_expedite_current - Expedite the current Tasks Trace RCU grace period 189 + * 190 + * Cause the current Tasks Trace RCU grace period to become expedited. 191 + * The grace period following the current one might also be expedited. 192 + * If there is no current grace period, one might be created. If the 193 + * current grace period is currently sleeping, that sleep will complete 194 + * before expediting will take effect. 195 + */ 196 + static inline void rcu_tasks_trace_expedite_current(void) 197 + { 198 + srcu_expedite_current(&rcu_tasks_trace_srcu_struct); 199 + } 200 + 187 201 // Placeholders to enable stepwise transition. 188 202 void __init rcu_tasks_trace_suppress_unused(void); 189 203