Re: RasterMan on linux and threads

Brian Pomerantz (bapper@piratehaven.org)
Fri, 17 Dec 1999 15:28:32 -0800


On Sat, Dec 18, 1999 at 01:16:17AM +0100, Ingo Molnar wrote:
>
> On Fri, 17 Dec 1999, Brian Pomerantz wrote:
>
> > Basically when you start a thread, the likelihood of it running on
> > another CPU than the one the original process is running is small if
> > the thread is short lived. The reason for this is the scheduler gives
> > priority to a process on the same CPU as the one currently running and
> > more priority if that process shares the same VM as the one that was
> > just running. If a thread lives long enough or there is a large
> > number of threads sharing the same VM, eventually it/they will migrate
> > across more CPUs. Threads are no different than processes in this
> > regard.
>
> this is false. We wake up any newly created thread, which means that we
> immediately send a cross-CPU message to any potential idle CPU to run this
> new thread. I've just measured this on pre1-2.3.34 - we start running the
> newly created thread within 15 microseconds _on another CPU_ after it got
> created.
>

After having spent quite some time looking over the scheduler on the
2.2.10 kernel, I was under the impression that there isn't a guarantee
that the new thread will be run on a different CPU because of the
priority the scheduler gives to processes running on the same CPU with
shared VM. This would of course only be the case if there is not an
idle CPU. The chances of there not being an idle CPU especially on a
quad system is pretty unlikely I suppose. Then again, I'm new at this
kernel hacking so I am probably completely wrong, I bow to you since
you've been doing kernel development longer than I. There aren't a
whole lot of comments describing what is going on in a lot of the
kernel.

BAPper

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/