[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1250665455.7583.326.camel@twins>
Date: Wed, 19 Aug 2009 09:04:15 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Marton Balint <cus@...ekas.hu>
Cc: Andreas Mohr <andi@...as.de>, linux-kernel@...r.kernel.org,
mingo@...e.hu
Subject: Re: CPU scheduler weirdness?
On Tue, 2009-08-18 at 21:49 +0200, Marton Balint wrote:
> In the meantime, I was able to create a tiny C program which always
> succesfully reproduces the bug. It's basically an endless loop which does
> not stop while the process is running on the last CPU core. The program
> creates multiple instances of itself, to be able to keep all of the CPU
> cores busy. After 1 second, the processes running on other than the last
> CPU core die, the processes running on the last CPU core remain stuck
> there...
>
> I tested it on my dual core system, if someone could test it on a quad
> core and report back that would probably be useful.
>
> Usage: ./schedtest <number of CPU cores>
>
> And don't forget to kill the stuck processes after using the program! :)
So what's the bug? Sure one task will stay on the cpu, and because there
is no contention it doesn't get migrated, and therefore won't quit,
how's that a problem?
If you start a bunch of loops (enough to fill all cpus) you'll find
it'll get migrated and die pretty quickly.
Those same loops `while :; do :; done &` get spread around the available
cores just fine, still no bug.
btw: sysconf(_SC_NPROCESSORS_ONLN);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists