[Cbe-oss-dev] [RFC] [PATCH 0:8] SPU Gang Scheduling
Arnd Bergmann
arnd at arndb.de
Tue Mar 4 15:51:02 EST 2008
On Tuesday 04 March 2008, Luke Browning wrote:
> Finally, this means that a gang is eligible to be run as long as
> one context in the gang is runnable. Major page faulting is the other
> event that may cause a gang to be preempted. It is implemented via a
> nfaulting count and a call to yield. In this case, the gang needs to
> be put on the runqueue as the context is in kernel mode. It is sort of
> a step down scheduling technique to give something else a chance to run.
I think the last time we talked about this, the conclusion was that
we should always do lazy loading as well as unloading of the entire
gang, meaning that it only gets started as long as *all* threads in
the gang actually try to run on the SPU, and then run until the end
of their time slice or until the point where all threads return to
the PPU by means of stop-and-signal or page faults.
The reason for that is that running the gang when only one of the
threads in it would be somewhat unfair to the other sleeping gangs
in the system that have all contexts in a thread trying to run SPU
code.
Arnd <><
More information about the cbe-oss-dev
mailing list