Re: [PATCH tip/core/rcu 8/9] nohz_full: Add full-system-idle state machine

Geert Uytterhoeven
2013-09-06T08:08:23Z

On Tue, Aug 20, 2013 at 4:47 AM, Paul E. McKenney
<paulmck@linux.vnet.ibm.com> wrote:
> --- a/kernel/time/Kconfig
> +++ b/kernel/time/Kconfig
> @@ -157,6 +157,33 @@ config NO_HZ_FULL_SYSIDLE
>
> Say N if you are unsure.
>
> +config NO_HZ_FULL_SYSIDLE_SMALL
> + int "Number of CPUs above which large-system approach is used"
> + depends on NO_HZ_FULL_SYSIDLE
> + range 1 NR_CPUS

This causes "kernel/time/Kconfig:162:warning: range is invalid" on m68k and
all other architectures that do not support SMP.

How to reproduce:
make ARCH=m68k defconfig

Furthermore, it seems only hexagon, metag, mips, and x86 set NR_CPUS to 1
if !SMP. On other architectures, NR_CPUS is not defined and presumed to be 0.

Hence in non-interactive configs (e.g. "make defconfig"),
NO_HZ_FULL_SYSIDLE_SMALL will end up as 0.
In interactive configs (e.g. "make oldconfig") Kconfig suggest "0" as
the default,
but refuses to accept it as it doesn't fall within the range 1..0.

How to reproduce:
Remove the "depends on NO_HZ_FULL_SYSIDLE"
make ARCH=powerpc mpc83xx_defconfig
grep NO_HZ_FULL_SYSIDLE_SMALL .config
-> CONFIG_NO_HZ_FULL_SYSIDLE_SMALL=0
sed 's/CONFIG_NO_HZ_FULL_SYSIDLE_SMALL=0//g' -i .config
make ARCH=powerpc oldconfig
-> no value is accepted

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds