Re: Preemtive kernel (Was: Re: [2.4.17/18pre] VM and swap - it's really unusable)

Daniel Phillips (phillips@bonn-fries.net)
Wed, 9 Jan 2002 08:48:41 +0100


On January 9, 2002 08:25 am, Roger Larsson wrote:
> (the subject has been wrong for some time now...)
>
> On Wednesday den 9 January 2002 07.26, Daniel Phillips wrote:
> > On January 9, 2002 12:02 am, Luigi Genoni wrote:
> > > On Tue, 8 Jan 2002, Daniel Phillips wrote:
> > > > On January 8, 2002 04:29 pm, Andrea Arcangeli wrote:
> > > > > but I just wanted to make clear that the
> > > > > idea that is floating around that preemptive kernel is all goodness
> > > > > is very far from reality, you get very low mean latency but at a
> > > > > price.
> > > >
> > > > A price lots of people are willing to pay
> > >
> > > Probably sometimes they are not making a good business.
> >
> > Perhaps. But they are happy customers and their music sounds better.
> >
> > Note: the dominating cost of -preempt is not Robert's patch, but the fact
> > that you need to have CONFIG_SMP enabled, even for uniprocessor, turning
> > all those stub macros into real spinlocks. For a dual processor you have
> > to have this anyway and it just isn't an issue.
>
> Well you don't - the first versions used the SMP spinlocks macros but
> replaced them with own code. (basically an INC on entry and a DEC and test
> when leaving)
>
> Think about what happens on a UP
> There are two cases
> - the processor is in the critical section, it can not be preempted = no
> other process can take the CPU away from it.
> - the processor is not in a critical section, no process can be executing
> inside it = can never be busy.
> => no real spinlocks needed on a UP

Right, thanks, it was immediately obvious when you pointed out that the
macros are just used to find the bounds of the critical regions. So the cost
of -preempt is somewhat less than I had imagined.

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