On Fri, 18 Dec 1998, Rik van Riel wrote:
> > > All it takes is one pointer per processor, so it can be done
> > > (very) cheaply.
> >
> > it's _not_ that cheap since it means a cross-CPU message pass.
>
> That should be cheaper than an 'inapropriate' context switch
> or a truckload of cache misses/invalidates.
(sure, i just pointed out that the mechanizm you were suggesting is
fundamentally wrong on SMP.)
> > I have some code that does the mentioned SMP thing more
> > apropriately (scheduling done completely at add_to_runqueue()
> > time), and it's already in there partly (see reschedule_idle()),
> > but it's original form was too intrusive for 2.2.
>
> I've read the code -- it's not effective since it only looks
> for idle processes. We want something better and I have a
> good idea how it could look...
it looks only for idle processes _in the current version_. As i said, only
the SMP 'framework' is in there, there was more complete implementation in
earlier 2.1 kernels that went through the whole runqueue and sent
reschedule messages across CPUs (Alan had something like this in the
original SMP code, the reschedule was borrowed from there), but it was
just too much of a change for 2.2. It could even turn out to be
suboptimally comlpex, but in any case, it's on my TODO list for 2.3.
-- mingo
-
Linux SMP list: FIRST see FAQ at http://www.irisa.fr/prive/mentre/smp-faq/
To Unsubscribe: send "unsubscribe linux-smp" to [EMAIL PROTECTED]