Message ID | 20231107215742.363031-51-ankur.a.arora@oracle.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Make the kernel preemptible | expand |
On Tue, Nov 07, 2023 at 01:57:36PM -0800, Ankur Arora wrote: > With PREEMPTION being always enabled, we don't need TASKS_RCU > to be explicitly conditioned on it. > > Suggested-by: Paul E. McKenney <paulmck@kernel.org> > Signed-off-by: Ankur Arora <ankur.a.arora@oracle.com> Reviewed-by: Paul E. McKenney <paulmck@kernel.org> > --- > arch/Kconfig | 4 ++-- > include/linux/rcupdate.h | 4 ---- > kernel/bpf/Kconfig | 2 +- > kernel/trace/Kconfig | 4 ++-- > 4 files changed, 5 insertions(+), 9 deletions(-) > > diff --git a/arch/Kconfig b/arch/Kconfig > index 05ce60036ecc..f5179b24072c 100644 > --- a/arch/Kconfig > +++ b/arch/Kconfig > @@ -55,7 +55,7 @@ config KPROBES > depends on MODULES > depends on HAVE_KPROBES > select KALLSYMS > - select TASKS_RCU if PREEMPTION > + select TASKS_RCU > help > Kprobes allows you to trap at almost any kernel address and > execute a callback function. register_kprobe() establishes > @@ -104,7 +104,7 @@ config STATIC_CALL_SELFTEST > config OPTPROBES > def_bool y > depends on KPROBES && HAVE_OPTPROBES > - select TASKS_RCU if PREEMPTION > + select TASKS_RCU > > config KPROBES_ON_FTRACE > def_bool y > diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h > index 5e5f920ade90..7246ee602b0b 100644 > --- a/include/linux/rcupdate.h > +++ b/include/linux/rcupdate.h > @@ -171,10 +171,6 @@ static inline void rcu_nocb_flush_deferred_wakeup(void) { } > } while (0) > void call_rcu_tasks(struct rcu_head *head, rcu_callback_t func); > void synchronize_rcu_tasks(void); > -# else > -# define rcu_tasks_classic_qs(t, preempt) do { } while (0) > -# define call_rcu_tasks call_rcu > -# define synchronize_rcu_tasks synchronize_rcu > # endif > > # ifdef CONFIG_TASKS_TRACE_RCU > diff --git a/kernel/bpf/Kconfig b/kernel/bpf/Kconfig > index 6a906ff93006..e3231b28e2a0 100644 > --- a/kernel/bpf/Kconfig > +++ b/kernel/bpf/Kconfig > @@ -27,7 +27,7 @@ config BPF_SYSCALL > bool "Enable bpf() system call" > select BPF > select IRQ_WORK > - select TASKS_RCU if PREEMPTION > + select TASKS_RCU > select TASKS_TRACE_RCU > select BINARY_PRINTF > select NET_SOCK_MSG if NET > diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig > index 61c541c36596..e090387b1c2d 100644 > --- a/kernel/trace/Kconfig > +++ b/kernel/trace/Kconfig > @@ -163,7 +163,7 @@ config TRACING > select BINARY_PRINTF > select EVENT_TRACING > select TRACE_CLOCK > - select TASKS_RCU if PREEMPTION > + select TASKS_RCU > > config GENERIC_TRACER > bool > @@ -204,7 +204,7 @@ config FUNCTION_TRACER > select GENERIC_TRACER > select CONTEXT_SWITCH_TRACER > select GLOB > - select TASKS_RCU if PREEMPTION > + select TASKS_RCU > select TASKS_RUDE_RCU > help > Enable the kernel to trace every kernel function. This is done > -- > 2.31.1 >
diff --git a/arch/Kconfig b/arch/Kconfig index 05ce60036ecc..f5179b24072c 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -55,7 +55,7 @@ config KPROBES depends on MODULES depends on HAVE_KPROBES select KALLSYMS - select TASKS_RCU if PREEMPTION + select TASKS_RCU help Kprobes allows you to trap at almost any kernel address and execute a callback function. register_kprobe() establishes @@ -104,7 +104,7 @@ config STATIC_CALL_SELFTEST config OPTPROBES def_bool y depends on KPROBES && HAVE_OPTPROBES - select TASKS_RCU if PREEMPTION + select TASKS_RCU config KPROBES_ON_FTRACE def_bool y diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index 5e5f920ade90..7246ee602b0b 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h @@ -171,10 +171,6 @@ static inline void rcu_nocb_flush_deferred_wakeup(void) { } } while (0) void call_rcu_tasks(struct rcu_head *head, rcu_callback_t func); void synchronize_rcu_tasks(void); -# else -# define rcu_tasks_classic_qs(t, preempt) do { } while (0) -# define call_rcu_tasks call_rcu -# define synchronize_rcu_tasks synchronize_rcu # endif # ifdef CONFIG_TASKS_TRACE_RCU diff --git a/kernel/bpf/Kconfig b/kernel/bpf/Kconfig index 6a906ff93006..e3231b28e2a0 100644 --- a/kernel/bpf/Kconfig +++ b/kernel/bpf/Kconfig @@ -27,7 +27,7 @@ config BPF_SYSCALL bool "Enable bpf() system call" select BPF select IRQ_WORK - select TASKS_RCU if PREEMPTION + select TASKS_RCU select TASKS_TRACE_RCU select BINARY_PRINTF select NET_SOCK_MSG if NET diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index 61c541c36596..e090387b1c2d 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig @@ -163,7 +163,7 @@ config TRACING select BINARY_PRINTF select EVENT_TRACING select TRACE_CLOCK - select TASKS_RCU if PREEMPTION + select TASKS_RCU config GENERIC_TRACER bool @@ -204,7 +204,7 @@ config FUNCTION_TRACER select GENERIC_TRACER select CONTEXT_SWITCH_TRACER select GLOB - select TASKS_RCU if PREEMPTION + select TASKS_RCU select TASKS_RUDE_RCU help Enable the kernel to trace every kernel function. This is done
With PREEMPTION being always enabled, we don't need TASKS_RCU to be explicitly conditioned on it. Suggested-by: Paul E. McKenney <paulmck@kernel.org> Signed-off-by: Ankur Arora <ankur.a.arora@oracle.com> --- arch/Kconfig | 4 ++-- include/linux/rcupdate.h | 4 ---- kernel/bpf/Kconfig | 2 +- kernel/trace/Kconfig | 4 ++-- 4 files changed, 5 insertions(+), 9 deletions(-)