lkml.org 
[lkml]   [2015]   [Apr]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [GIT RFC PULL rcu/urgent] Prevent Kconfig from asking pointless questions

* Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:

> Hello, Ingo,
>
> This series contains a single change that fixes Kconfig asking pointless
> questions (https://lkml.org/lkml/2015/4/14/616). This is an RFC pull
> because there has not yet been a -next build for April 16th. If you
> would prefer to wait until after -next has pulled this, please let me
> know and I will redo this pull request after that has happened.
>
> In the meantime, this change is available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git for-mingo
>
> for you to fetch changes up to 8d7dc9283f399e1fda4e48a1c453f689326d9396:
>
> rcu: Control grace-period delays directly from value (2015-04-14 19:33:59 -0700)
>
> ----------------------------------------------------------------
> Paul E. McKenney (1):
> rcu: Control grace-period delays directly from value
>
> kernel/rcu/tree.c | 16 +++++++++-------
> lib/Kconfig.debug | 1 +
> 2 files changed, 10 insertions(+), 7 deletions(-)

Pulled, thanks a lot Paul!

Note, while this fixes Linus's immediate complaint that arose from the
new option, I still think we need to do more fixes in this area.

To demonstrate the current situation I tried the following experiment,
I did a 'make defconfig' on an x86 box and then took the .config and
deleted all 'RCU Subsystem' options not marked as debugging.

Then I did a 'make oldconfig' to see what kinds of questions a user is
facing when trying to configure RCU:

*
* Restart config...
*
*
* RCU Subsystem
*
RCU Implementation
> 1. Tree-based hierarchical RCU (TREE_RCU) (NEW)
choice[1]: 1
Task_based RCU implementation using voluntary context switch (TASKS_RCU) [N/y/?] (NEW)
Consider userspace as in RCU extended quiescent state (RCU_USER_QS) [N/y/?] (NEW)
Tree-based hierarchical RCU fanout value (RCU_FANOUT) [64] (NEW)
Tree-based hierarchical RCU leaf-level fanout value (RCU_FANOUT_LEAF) [16] (NEW)
Disable tree-based hierarchical RCU auto-balancing (RCU_FANOUT_EXACT) [N/y/?] (NEW)
Accelerate last non-dyntick-idle CPU's grace periods (RCU_FAST_NO_HZ) [N/y/?] (NEW)
Real-time priority to use for RCU worker threads (RCU_KTHREAD_PRIO) [0] (NEW)
Offload RCU callback processing from boot-selected CPUs (RCU_NOCB_CPU) [N/y/?] (NEW)
#
# configuration written to .config
#

Only TREE_RCU is available on defconfig, so all the other options
marked with '(NEW)' were offered as an interactive prompt.

I don't think that any of the 8 interactive options (!) here are
particularly useful to even advanced users who configure kernels, and
I don't think they should be offered under non-expert settings.

Instead we should pick a preferred RCU configuration based on other
hints (such as CONFIG_NR_CPUS and CONFIG_NO_HZ settings), and if users
or distribution makers find some problem with that, we should address
those specific complaints.

Making everything under the sun configurable, with which non-RCU
experts cannot really do anything anyway, isn't very user friendly -
and results in:

- user confusion and frustration

- possibly messed up configurations

- it also hides inefficiencies that might arise from our defaults:
someone genuinely finding a problem might just tweak the .config,
without ever communicating that bad default to us.

So doing (much!) less is in general the best option for Kconfig driven
UIs.

Ingo


\
 
 \ /
  Last update: 2015-04-18 15:21    [W:0.100 / U:4.896 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site