Port-i386 archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Kernel preemption
On Sun, Apr 27, 2008 at 12:21:05PM +0100, Andrew Doran wrote:
> > > The below patch implments in-kernel preemption for the i386 port.
> >
> > Is in-kernel preemption really worthwhile on multiprocessor machines?
>
> Yes, I think so. There are long/slow code paths within the kernel.
Right, but is it better to handle these by preemption or by setting up
to yield the processor before/while locking?
> > Given fine-grained locking it's not clear that it really helps much
> > with scheduler latency, and it adds potentially quite a bit of
> > overhead because you have to fiddle with interrupts for all spinlocks
> > rather than just those that are touched by interrupt code. Plus it
> > makes per-cpu stuff that much harder to work with.
>
> We make extensive use of adaptive locks which can be preempted safely and
> don't require playing about with the interrupt level, so it's not really a
> problem for us. Only items that can be accessed from a hardware interrupt
> handler are covered by pure spinlock, for example the scheduler, and that's
> not preemptible anyway.
I suppose that's an advantage of adaptive locks I hadn't thought of. Hrm...
--
David A. Holland
dholland%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index