Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Apr 2001 03:23:34 +0000 (GMT)
From:      "E.B. Dreger" <eddy+public+spam@noc.everquick.net>
To:        Rik van Riel <riel@conectiva.com.br>
Cc:        Matt Dillon <dillon@earth.backplane.com>, Alfred Perlstein <bright@wintelcom.net>, Greg Lehey <grog@lemis.com>, "Justin T. Gibbs" <gibbs@scsiguy.com>, Doug Barton <DougB@DougBarton.net>, "current @ freebsd . org" <current@FreeBSD.ORG>
Subject:   Re: Kernel preemption, yes or no? (was: Filesystem gets a huge performance boost)
Message-ID:  <Pine.LNX.4.20.0104180312070.15456-100000@www.everquick.net>
In-Reply-To: <Pine.LNX.4.21.0104180002340.14442-100000@imladris.rielhome.conectiva>

next in thread | previous in thread | raw e-mail | index | archive | help
Going back to basic principles:

For minimal CPU utilization, it would be nice skip task switching, period.
Run something to completion, then go on to the next task.  Poll without
ever using an interrupt.

The problem is that latency becomes totally unacceptable.

So now let's go to the other extreme:  Create a Transputer-like array with
hundreds of 65xx-complexity CPUs.  Each atomic task runs on its own
private CPU.

The problem is that the electronics become a pain, and are often idle.
When too many tasks are launched, we run out of CPU power.

The compromise is to switch tasks on whatever CPU power is available...
balancing switching overhead with latency.  *Let the latency be as high as
is acceptable to reduce overhead as low as is practical.*

Hence, my philosophy is that task switching and preemption are necessary
evils because hardware does not perfectly accomodate software.  If we
must, we must... otherwise, use co-op switching as the next best thing to
straight run-to-completion.


Eddy

---------------------------------------------------------------------------

Brotsman & Dreger, Inc.
EverQuick Internet / EternalCommerce Division

Phone: (316) 794-8922

---------------------------------------------------------------------------


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.20.0104180312070.15456-100000>