[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220317202925.GS4285@paulmck-ThinkPad-P17-Gen-1>
Date: Thu, 17 Mar 2022 13:29:25 -0700
From: "Paul E. McKenney" <paulmck@...nel.org>
To: Randy Dunlap <rdunlap@...radead.org>
Cc: Hyeonggon Yoo <42.hyeyoo@...il.com>, rcu@...r.kernel.org,
Josh Triplett <josh@...htriplett.org>,
Steven Rostedt <rostedt@...dmis.org>,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
Joel Fernandes <joel@...lfernandes.org>,
linux-kernel@...r.kernel.org
Subject: Re: RCU: undefined reference to irq_work_queue
On Thu, Mar 17, 2022 at 01:26:45PM -0700, Randy Dunlap wrote:
>
>
> On 3/17/22 10:36, Paul E. McKenney wrote:
> > On Thu, Mar 17, 2022 at 04:45:11PM +0000, Hyeonggon Yoo wrote:
> >> On Thu, Mar 17, 2022 at 09:20:33AM -0700, Paul E. McKenney wrote:
> >>> On Thu, Mar 17, 2022 at 03:24:42PM +0000, Hyeonggon Yoo wrote:
> >>>> On Thu, Mar 17, 2022 at 07:00:00AM -0700, Paul E. McKenney wrote:
> >>>>> On Thu, Mar 17, 2022 at 11:32:53AM +0000, Hyeonggon Yoo wrote:
> >>>>>> Hello RCU folks,
> >>>>>>
>
> > ------------------------------------------------------------------------
> >
> > diff --git a/arch/Kconfig b/arch/Kconfig
> > index 678a80713b21..66c5b5543511 100644
> > --- a/arch/Kconfig
> > +++ b/arch/Kconfig
> > @@ -38,6 +38,7 @@ config KPROBES
> > depends on MODULES
> > depends on HAVE_KPROBES
> > select KALLSYMS
> > + select TASKS_RCU if PREEMPTION
> > help
> > Kprobes allows you to trap at almost any kernel address and
> > execute a callback function. register_kprobe() establishes
> > diff --git a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig
> > index f559870fbf8b..4f665ae0cf55 100644
> > --- a/kernel/rcu/Kconfig
> > +++ b/kernel/rcu/Kconfig
> > @@ -78,7 +78,8 @@ config TASKS_RCU_GENERIC
> > task-based RCU implementations. Not for manual selection.
> >
> > config TASKS_RCU
> > - def_bool PREEMPTION
> > + def_bool 0
>
> preferably
> def_bool n
>
> but the 0 probably works... :)
In a later commit, it ends up like this:
config TASKS_TRACE_RCU
bool "Enable Tasks Trace RCU"
depends on RCU_EXPERT
default n
select IRQ_WORK
help
This option enables a task-based RCU implementation that uses
explicit rcu_read_lock_trace() read-side markers, and allows
these readers to appear in the idle loop as well as on the CPU
hotplug code paths. It can force IPIs on online CPUs, including
idle ones, so use with caution.
The reason being to allow people to use rcutorture without having
to have TASKS_TRACE_RCU enabled.
So you got your wish! I think... ;-)
Thanx, Paul
> > + select IRQ_WORK
> > help
> > This option enables a task-based RCU implementation that uses
> > only voluntary context switch (not preemption!), idle, and
> > diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
> > index 752ed89a293b..a7aaf150b704 100644
> > --- a/kernel/trace/Kconfig
> > +++ b/kernel/trace/Kconfig
> > @@ -127,6 +127,7 @@ config TRACING
> > select BINARY_PRINTF
> > select EVENT_TRACING
> > select TRACE_CLOCK
> > + select TASKS_RCU if PREEMPTION
> >
> > config GENERIC_TRACER
> > bool
>
> --
> ~Randy
Powered by blists - more mailing lists