Re: CPU scheduler weirdness?

Mike Galbraith
2009-09-04T06:26:06Z

On Thu, 2009-09-03 at 23:57 +0200, Marton Balint wrote:

> >> In the meantime, I updated my original C program and also created a kernel
> >> module (schedtest_mod.c) which causes the same scheduling problems as the
> >> kernel module of my TV card. The kernel module is a skeleton of the
> >> infrared sensor polling code in cx88-input.c. It uses
> >> schedule_delayed_work, this seems to cause the problem. The C program
> >> (schedtest.c) is also updated, it now detects the number of CPU cores, from
> >> now, what you can set as a command line parameter is the CPU core number,
> >> on which the schedtest processes will not quit. (previously this was always
> >> the last core).
> >>
> >> So to reproduce the bug on a dual core system, compile and insert the
> >> kernel module (schedtest_mod.c). Then check dmesg, it should contain on
> >> which CPU core is the delayed_work running. You should use the CPU core id
> >> of the _other_ CPU core as a command line parameter to the updated
> >> schedtest program.
> >>
> >> And by the way, thank you guys for the help so far, hopefully we'll get to
> >> the bottom of this :)
> >
> > I reproduced the bug with the previously provided kernel module and C program
> > on a different computer (it's a laptop with a core2 duo P8400 CPU), and also
> > bisected the bug to this commit:
> >
> > sched: fine-tune SD_MC_INIT:
> > 14800984706bf6936bbec5187f736e928be5c218
> >
> > If I add again the removed SD_BALANCE_NEWIDLE to flags, then everything works
> > as expected. So what would be the correct fix for this bug? Revert the patch?
> > Or just add SD_BALANCE_NEWIDLE to flags?

Or, figure out what's going weird with that module loaded.

> Ingo, Peter, could any of you guys have a look at the commit that caused
> this bug? Is it OK to revert it? Or a fix somewhere else is necessary? I'm
> pushing this because I hope that this bug will get fixed in the upcoming
> stable kernel...

Where does your schedtest.c and schedtest_mod.c live?

-Mike