Re: RasterMan on linux and threads

michael_schulz@public.uni-hamburg.de
Sun, 19 Dec 1999 13:27:54 +0100


Rik van Riel:
> On Sat, 18 Dec 1999 michael_schulz@public.uni-hamburg.de wrote:
>
> > But i could think of a situation in a boss/worker setup (keeping
> > workers in a pool), where some workers got scheduled on different cpus
> > and then stay assigned to their cpus during several requests.
>
> This is exactly what happens on Linux, except
> that the switching can also happen mid-request
> (but it usually won't happen very often).
>
> There still is the issue of cache flushing
> though. Keeping the threads on their own
> CPU does not alleviate the program of pushing
> the data from one thread back to the other
> (or from one CPU to the other).

OK. So the scheduler has a behaviour which is complex enuf in
different situations. We could nearly endless elaborate them.

As far as i understand the scheduler is guided by a whole bunch of
constraints which exploit properties of the system in order to decide
what to do next.

So far as we observe the behaviour of the scheduler there are some
situations where context switching is too expensive compared to the
remaining load of the request, some caches are flushed which has
negative sideeffects on the overall performance, the cost of switching
can vary on different hardware. One even could speculate and try out
stating that switching one thread back and forth gets less `usefull'
the more frequently it happens etc.

Brightening things a bit, the remaining questions are:
- what are _all_ these constraints
- how are they balanced against each other
- does the constraint-system (so to call) cover most of the
interesting situations, so that an optimal scheduling could be
found
- how expensive is it to evaluate the constraints

Micha.

-- 
-- Michael Schulz, Uni Hamburg

- 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/