Subject: Re: Is the netBSD kernel Preemptible ?
To: None <firstname.lastname@example.org>
From: Gary Thorpe <email@example.com>
Date: 06/14/2002 13:42:55
>From: Lars Heidieker <firstname.lastname@example.org>
>To: Gary Thorpe <email@example.com>
>Subject: Re: Is the netBSD kernel Preemptible ?
>Date: Fri, 14 Jun 2002 19:23:14 +0200
>Yes other threads/tasks can enter the kernel while "others" sleep because
>But (in kernel) a thread/task has to give up its timeslice on its own
>its not forced of the cpu, that happens if the thread leaves the kernel
So basically the kernel can only do cooperative multitasking once kernel
code is being executed?
As for waiting on SMP support to change this, I don't think the two are
necessarily bound together. Sure, SMP will really not perform very well
until the kernel is premptible/reentrant, but it can be done whether or not
the machine has more than 1 cpu. E.g. BEOS and QNX both seem to be
premptible even without SMP. The premptibility allows more things to occur
concurrently and *can* lead to better performance even on single cpu
systems from what I have read (of course there is associated overhead).
I recently asked a related question on tech-kern (or tech-smp?) about
whether or not it was necessary to write device driver code with
locks/synchronization stuff. Since there is a huge amount of code which will
need to be changed to add reentrancy/premption (sprinkled everywhere in a
monolithic kernel), I do not think developers should wait for SMP to arrive,
because then the necessary framework to have it working well will be playing
catch-up and NetBSD will go through the same thing FreeBSD and Linux are
still going through.
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp.