Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!news.mira.net.au!news.netspace.net.au!news.mel.connect.com.au!munnari.OZ.AU!uunet!in3.uu.net!128.230.129.106!news.maxwell.syr.edu!hunter.premier.net!news1.best.com!idiom.com!nntp2.ba.best.com!not-for-mail
From: dillon@flea.best.net (Matt Dillon)
Newsgroups: comp.programming.threads,comp.unix.bsd.freebsd.misc
Subject: Re: [??] pure kernel vs. dual concurrency implementations
Date: 22 Feb 1997 18:01:30 -0800
Organization: BEST Internet Communications, Inc.
Lines: 27
Message-ID: <5eo8dq$pan@flea.best.net>
References: <330CE6A4.63B0@cet.co.jp> <874tf7lbxc.fsf@serpentine.com> <8gn2swxpwh.fsf@galapagos.cse.psu.edu>
NNTP-Posting-Host: flea.best.net
Xref: euryale.cc.adfa.oz.au comp.programming.threads:3285 comp.unix.bsd.freebsd.misc:36016
:In article <8gn2swxpwh.fsf@galapagos.cse.psu.edu>,
:Scott Schwartz <schwartz@galapagos.cse.psu.edu.NO-SPAM> wrote:
:>Bryan O'Sullivan <bos@serpentine.com> writes:
:>| m> * simpler model, less complicated scheduler
:>|
:>| Arguments from simplicity are oftentimes seductive and misleading, if
:>| what you are trying to achieve is good performance.
:>
:>On the other hand, if you look at actual systems, like Plan 9, you
:>find that they are very fast in addition to being simple.
This is actually one area where FreeBSD could use a workover...
A register-set save/restore from an interrupt on a pentium pro 200
can be done in about 1uS (cache case). I do not know how much
additional overhead the MMU switch takes, but it can't be all that bad
since the secondary cache is physically tagged (at least, I think it is).
FreeBSD should be able to context switch a whole lot faster then
it currently does. A brief look at the code shows a *huge* amount
of baggage in the 'critical path' that could be moved elsewhere,
and I do mean *huge*.
That said, it is still respectable enough that I've never had a problem
with context switches on FreeBSD systems. I presume few other people
have either, which tends to put the switch code at a lower priority.
-Matt