Re: [GIT RFC PULL rcu/urgent] Prevent Kconfig from asking pointless questions

From: Ingo Molnar
Date: Tue Apr 21 2015 - 02:42:34 EST



* Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> On Mon, 20 Apr 2015 20:28:32 +0200
> Ingo Molnar <mingo@xxxxxxxxxx> wrote:
>
> > Instrumentation - especially instrumentation that should have been
> > implemented mostly in user-space, like ftrace ;-) - is another special
> > case that should stay as flexible as possible via sysctls, obviously.
>
> I know I used ftrace as an example, but a more appropriate example
> would be the sched knobs, as this is more about rcu scheduling than
> anything else.
>
> See:
>
> sched_autogroup_enabled sched_rr_timeslice_ms
> sched_child_runs_first sched_rt_period_us
> sched_domain/ sched_rt_runtime_us
> sched_latency_ns sched_shares_window_ns
> sched_migration_cost_ns sched_time_avg_ms
> sched_min_granularity_ns sched_tunable_scaling
> sched_nr_migrate sched_wakeup_granularity_ns

You are comparing apples to oranges.

1)

Many of these are only sysctls if CONFIG_SCHED_DEBUG is enabled, see:

triton:~/tip> git grep const_debug kernel/sched/*.c
kernel/sched/core.c:const_debug unsigned int sysctl_sched_features =
kernel/sched/core.c:const_debug unsigned int sysctl_sched_nr_migrate = 32;
kernel/sched/core.c:const_debug unsigned int sysctl_sched_time_avg = MSEC_PER_SEC;
kernel/sched/core.c:const_debug unsigned int sysctl_timer_migration = 1;
kernel/sched/fair.c:const_debug unsigned int sysctl_sched_migration_cost = 500000UL;

and they turn into 'const' otherwise:

/*
* Tunables that become constants when CONFIG_SCHED_DEBUG is off:
*/
#ifdef CONFIG_SCHED_DEBUG
# include <linux/static_key.h>
# define const_debug __read_mostly
#else
# define const_debug const
#endif

2)

A handful of them are simple on/off knobs, such as the
sched_child_runs_first quirk, or the sched_autogroup_enabled.

3)

There's basically just the three sched_rt_* ones that are 'true'
tunables (not on/off knobs), mostly because of ABI weakness:
setscheduler() has no interface for them.

Note that modern scheduler policies, like SCHED_DEADLINE, get all
their policy parameters from the sched_setparam() user-space ABI, they
are not driven by sysctls.

So my point stands.

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/