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.

rcu: Update Requirements.rst for RCU Tasks Trace

This commit updates the documentation to declare that RCU Tasks Trace
is implemented as a thin wrapper around SRCU-fast.

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
c0872be2 1a72f4bb

+6 -6
+6 -6
Documentation/RCU/Design/Requirements/Requirements.rst
··· 2780 2780 ~~~~~~~~~~~~~~~ 2781 2781 2782 2782 Some forms of tracing need to sleep in readers, but cannot tolerate 2783 - SRCU's read-side overhead, which includes a full memory barrier in both 2784 - srcu_read_lock() and srcu_read_unlock(). This need is handled by a 2785 - Tasks Trace RCU that uses scheduler locking and IPIs to synchronize with 2786 - readers. Real-time systems that cannot tolerate IPIs may build their 2787 - kernels with ``CONFIG_TASKS_TRACE_RCU_READ_MB=y``, which avoids the IPIs at 2788 - the expense of adding full memory barriers to the read-side primitives. 2783 + SRCU's read-side overhead, which includes a full memory barrier in 2784 + both srcu_read_lock() and srcu_read_unlock(). This need is handled by 2785 + a Tasks Trace RCU API implemented as thin wrappers around SRCU-fast, 2786 + which avoids the read-side memory barriers, at least for architectures 2787 + that apply noinstr to kernel entry/exit code (or that build with 2788 + ``CONFIG_TASKS_TRACE_RCU_NO_MB=y``. 2789 2789 2790 2790 The tasks-trace-RCU API is also reasonably compact, 2791 2791 consisting of rcu_read_lock_trace(), rcu_read_unlock_trace(),