Re: [patch] Voluntary Kernel Preemption, 2.6.12-rc4-mm2

From: Ingo Molnar
Date: Tue May 24 2005 - 11:19:38 EST



* Nick Piggin <nickpiggin@xxxxxxxxxxxx> wrote:

> >remove it if it's not being used, but right now the only choice that
> >distributions have is no preemption or full-blown CONFIG_PREEMPT. Ask
> >the kernel maintainers at SuSE why they havent enabled CONFIG_PREEMPT in
> >their kernels.
> >
>
> I guess it is a number of reasons. Probably the main one had
> traditionally been the chance of bugs. I guess the next big one is
> return on overhead (ie. the scheduling latency soon runs into the
> problem of long critical sections), although thanks to you and others,
> I understand that is becoming less and less of an issue over time too.
>
> If a new SUSE kernel branch was started from 2.6.12 with VP turned on
> rather than PREEMPT then I would probably argue against it a little
> bit ;)

dont think of scheduling latencies as a binary thing a'ka "do we have
good preemption latencies". It's a continuum, with almost a continuum
number of techniques. One thing is sure: close to one end of the
spectrum we have PREEMPT_NONE, and pretty close to the other end of the
spectrum we have PREEMPT_RT.

both PREEMPT_VOLUNTARY and CONFIG_PREEMPT are at arbitrary points within
that continuum, with different cost/benefit tradeoffs. Neither is
perfect, and both are 'ugly' in the theoretical sense.

now, i dont intend to populate our .config with a continuum number of
preemption models ;) But clearly the past 4 years have shown that no
major distro was brave enough to go CONFIG_PREEMPT, so a solution
inbetween is needed. -VP is precisely such a (very low-impact) solution.
It has a ridiculously low impact:

include/linux/kernel.h | 18 +++++++++++----

we already talked an order of magnitude more about this feature than its
size is (with help text included :). Lets go with it and let people know
that the water is fine. If it's unused it can be zapped easily.

Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/