Messages in this thread | | | Subject | Re: CPU scheduler weirdness? | From | Mike Galbraith <> | Date | Fri, 04 Sep 2009 08:26:01 +0200 |
| |
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
| |