Re: [2.4.17/18pre] VM and swap - it's really unusable

george anzinger
2002-01-14T19:53:54Z

Arjan van de Ven wrote:
>
> "J.A. Magallon" wrote:
> >
> > On 20020114 Stephan von Krawczynski wrote:
> > >
> > >Hm, obviously the ll-patches look simple, but their pure required number makes
> > >me think they are as well stupid as simple. This whole story looks like making
> > >an old mac do real multitasking, just spread around scheduling points
> >
> > Yup. That remind me of...
> > Would there be any kernel call every driver is doing just to hide there
> > a conditional_schedule() so everyone does it even without knowledge of it ?
> > Just like Apple put the SystemTask() inside GetNextEvent()...
>
> Well the preempt patch sort of does this in every spin_unlock*() .....
> -
Gosh, not really. The nature of the preempt patch is to allow
preemption on completion of the interrupt that put the contending task
back in the run list. This can not be done if a spin lock is held, so
yes, there is a test on exit from the spin lock, but the point is that
this is only needed when the lock is release, not in unlocked code.

The utility of most of the ll patches is that they address the problem
within locked regions. This is why there is a lock-break patch that is
designed to augment the preempt patch. It picks up several of the long
held spin locks and pops out of them early to allow preemption, and then
relocks and continues (after picking up the pieces, of course).
--
George george@mvista.com
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Real time sched: http://sourceforge.net/projects/rtsched/