]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
rcu: Create NEED_TASKS_RCU to factor out enablement logic
authorPaul E. McKenney <paulmck@kernel.org>
Thu, 22 Feb 2024 18:09:19 +0000 (10:09 -0800)
committerUladzislau Rezki (Sony) <urezki@gmail.com>
Mon, 15 Apr 2024 09:29:48 +0000 (11:29 +0200)
Currently, if a Kconfig option depends on TASKS_RCU, it conditionally does
"select TASKS_RCU if PREEMPTION".  This works, but requires any change in
this enablement logic to be replicated across all such "select" clauses.
This commit therefore creates a new NEED_TASKS_RCU Kconfig option so
that the default value of TASKS_RCU can depend on a combination of this
new option and any needed enablement logic, so that this logic is in
one place.

While in the area, also anticipate a likely future change by adding
PREEMPT_AUTO to that logic.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Ankur Arora <ankur.a.arora@oracle.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Steven Rostedt <rostedt@goodmis.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
kernel/rcu/Kconfig

index 7dca0138260c35a4bc3193f973dc17731ec875dc..3e079de0f5b434bd394033f08a38a00228c07432 100644 (file)
@@ -85,9 +85,13 @@ config FORCE_TASKS_RCU
          idle, and user-mode execution as quiescent states.  Not for
          manual selection in most cases.
 
-config TASKS_RCU
+config NEED_TASKS_RCU
        bool
        default n
+
+config TASKS_RCU
+       bool
+       default NEED_TASKS_RCU && (PREEMPTION || PREEMPT_AUTO)
        select IRQ_WORK
 
 config FORCE_TASKS_RUDE_RCU