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

Daniel Phillips
2002-01-08T20:56:36Z

On January 8, 2002 08:47 pm, Andrew Morton wrote:
> Daniel Phillips wrote:
> > What a preemptible kernel can do that a non-preemptible kernel can't is:
> > reschedule exactly as often as necessary, instead of having lots of extra
> > schedule points inserted all over the place, firing when *they* think the
> > time is right, which may well be earlier than necessary.
>
> Nope. `if (current->need_resched)' -> the time is right (beyond right,
> actually).

Oops, sorry, right.

The preemptible kernel can reschedule, on average, sooner than the
scheduling-point kernel, which has to wait for a scheduling point to roll
around.

And while I'm enumerating differences, the preemptable kernel (in this
incarnation) has a slight per-spinlock cost, while the non-preemptable kernel
has the fixed cost of checking for rescheduling, at intervals throughout all
'interesting' kernel code, essentially all long-running loops. But by clever
coding it's possible to finesse away almost all the overhead of those loop
checks, so in the end, the non-preemptible low-latency patch has a slight
efficiency advantage here, with emphasis on 'slight'.

--
Daniel