Re: [GIT PULL v2] sched: Make sleep inside atomic detection work on!PREEMPT

From: Ingo Molnar
Date: Sun Jul 03 2011 - 15:50:15 EST



* Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:

> On Fri, Jul 01, 2011 at 07:29:34PM +0200, Ingo Molnar wrote:
> >
> > * Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:
> >
> > > On Fri, Jul 01, 2011 at 05:05:17PM +0200, Ingo Molnar wrote:
> > > >
> > > > -tip testing also found that m32r fails to build:
> > > >
> > > > /home/mingo/tip/kernel/sched.c: In function 'preempt_schedule':
> > > > /home/mingo/tip/kernel/sched.c:4364: error: implicit declaration of function 'add_preempt_count_notrace'
> > > > /home/mingo/tip/kernel/sched.c:4366: error: implicit declaration of function 'sub_preempt_count_notrace'
> > > >
> > > > due to:
> > > >
> > > > bdd4e85dc36cdbcfc1608a5b2a17c80a9db8986a is the first bad commit
> > > > commit bdd4e85dc36cdbcfc1608a5b2a17c80a9db8986a
> > > > Author: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> > > > Date: Wed Jun 8 01:13:27 2011 +0200
> > > >
> > > > sched: Isolate preempt counting in its own config option
> > > >
> > > > Thanks,
> > > >
> > > > Ingo
> > >
> > > I have no clue how that did happen.
> > >
> > > Can you send me your config?
> >
> > Just the m32r defconfig: m32700ut.smp_defconfig.
> >
> > My guess would be that one of these:
> >
> > include/linux/bit_spinlock.h | 2 +-
> > include/linux/hardirq.h | 4 ++--
> > include/linux/pagemap.h | 4 ++--
> > include/linux/preempt.h | 26 +++++++++++++++++---------
> > include/linux/rcupdate.h | 12 ++++++------
> > include/linux/sched.h | 2 +-
> >
> > changed/exposed some header dependency quirk on m32r, failing the
> > build. Or m32r has some strange .config combo.
> >
> > Thanks,
> >
> > Ingo
>
> That's weird.
>
> We have this:
>
> config PREEMPT
> bool
> select PREEMPT_COUNT
>
> config PREEMPT_COUNT
> bool
>
> Then I run "make ARCH=m32r defconfig" that has CONFIG_PREEMPT=y
> but it doesn't select PREEMPT_COUNT and happily runs to break few
> times after.
>
> Even running make ARCH=m32r oldconfig on the defconfig doesn't fix up
> the issue.
>
> I thought "select" was an unconditional action. What am I missing?
>
> I'm adding in Cc more people who know better kconfig/kbuild than me.
> Every time I finally consider I know well the Kconfig language, I quickly
> get caught up by the fate...

Architectures have to include kernel/Kconfig.preempt explicitly,
like:

arch/x86/Kconfig:source "kernel/Kconfig.preempt"

m32r does not appear to do this - so it does not know about
PREEMPT_COUNT.

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/