[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <323e29c6-36ce-4aa6-22f7-7b98c1425d10@infradead.org>
Date: Thu, 17 Mar 2022 13:31:00 -0700
From: Randy Dunlap <rdunlap@...radead.org>
To: paulmck@...nel.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 3/17/22 13:29, Paul E. McKenney wrote:
> 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
Yeah, thanks.
>>> + 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
--
~Randy
Powered by blists - more mailing lists