Re: [GIT PULL] adaptive spinning mutexes

Ingo Molnar
2009-01-14T21:14:58Z

* Andrew Morton <akpm@linux-foundation.org> wrote:

> On Wed, 14 Jan 2009 21:51:22 +0100
> Ingo Molnar <mingo@elte.hu> wrote:
>
> >
> > * Andrew Morton <akpm@linux-foundation.org> wrote:
> >
> > > > > Do people enable CONFIG_SCHED_DEBUG?
> > > >
> > > > If they suspect performance problems and want to analyze them?
> > >
> > > The vast majority of users do not and usually cannot compile their own
> > > kernels.
> >
> > ... which they derive from distro kernels or some old .config they always
> > used, via 'make oldconfig'. You are arguing against well-established facts
> > here.
> >
> > If you dont believe my word for it, here's an analysis of all kernel
> > configs posted to lkml in the past 8 months:
> >
> > $ grep ^CONFIG_SCHED_DEBUG linux-kernel | wc -l
> > 424
> >
> > $ grep 'CONFIG_SCHED_DEBUG is not' linux-kernel | wc -l
> > 109
> >
> > i.e. CONFIG_SCHED_DEBUG=y is set in 80% of the configs. A large majority
> > of testers has it enabled and /sys/debug/sched_features was always a good
> > mechanism that we used for runtime toggles.
>
> You just disproved your own case :(

how so? 80% is not enough? I also checked Fedora and it has SCHED_DEBUG=y
in its kernel rpms.

note that there's also a performance issue here: we generally _dont want_
a debug sysctl overhead in the mutex code or in any fastpath for that
matter. So making it depend on SCHED_DEBUG is useful.

sched_feat() features get optimized out at build time when SCHED_DEBUG is
disabled. So it gives us the best of two worlds: the utility of sysctls in
the SCHED_DEBUG=y, and they get compiled out in the !SCHED_DEBUG case.

Ingo