Re: [RFC PATCH 1/2] rcu: sysctl: Panic on RCU Stall

Paul E. McKenney
2016-06-01T02:34:17Z

On Tue, May 31, 2016 at 07:49:41PM -0300, Daniel Bristot de Oliveira wrote:
> On 05/31/2016 04:23 PM, Josh Triplett wrote:
>
> Hi Josh,
>
> > Sorry, realized something else a moment after sending: I don't think
> > this will build if you use the tiny RCU implementation. That
> > implementation *does* support tracing, and if you enable tracing,
> > you'll have CONFIG_RCU_STALL_COMMON=y, but you won't build tree.c where
> > the variable definition lives. So, the sysctl code will reference a
> > variable that doesn't exist.
>
> Good catch!
>
> [root@f23 linux]# egrep '(TINY_RCU|RCU_TRACE)' .config
> CONFIG_TINY_RCU=y
> # CONFIG_TREE_RCU_TRACE is not set
> CONFIG_RCU_TRACE=y
> [root@f23 linux]# make
> ...
> kernel/built-in.o:(.data+0x4688): undefined reference to `sysctl_panic_on_rcu_stall'
> Makefile:937: recipe for target 'vmlinux' failed
> make: *** [vmlinux] Error 1
>
>
> How about this change in the condition:
> -#ifdef CONFIG_RCU_STALL_COMMON
> +#if defined(CONFIG_TREE_RCU) || defined(CONFIG_PREEMPT_RCU)

Looks plausible to me. But what I would trust quite a bit more than my
own opinion would be successful builds for all three configurations. ;-)

Thanx, Paul

> It worked fine here, but I may be missing something, so I better
> check with the experts :-).
>
> Thanks for reviewing the patch set!
>
> -- Daniel
>