Subject: Context switch times for NetBSD 2x those of 386BSD 0.1?
To: None <port-i386@sun-lamp.cs.berkeley.edu, current-users@sun-lamp.cs.berkeley.edu>
From: Thor Lancelot Simon <tls@panix.com>
List: port-i386
Date: 08/26/1994 18:05:41
A recent thread in comp.arch discusses context switch times for various
operating systems on modern hardware.  Someone who works at QNX just posted a
list of measurements he's taken; it shows context switch times of 210ms and
380ms for 386BSD 0.1 and NetBSD on the same hardware.

This seems potentially indicative of a disturbing trend.  Is any attempt
being made to keep the kernel in line so far as code bloat goes?

Is anyone profiling the kernel, or otherwise actively working on this issue?
I can go spend a few weeks taking measurements if someone's not already.

Thor

P.S. I've attached a comp.arch article below.

Newsgroups: comp.arch,comp.benchmarks,comp.sys.super
Path: panix!MathWorks.Com!europa.eng.gtefsd.com!howland.reston.ans.net!torn!nott!cunews!revcan!quantum!danh
From: danh@qnx.com (Dan Hildebrand)
Subject: Re: Overheads of Parallel Systems (Summary)
Message-ID: <lmh9=0k@qnx.com>
Date: Thu, 25 Aug 94 12:23:24 GMT
Organization: QNX Software Systems
References: <33gfr2$atr@monalisa.usc.edu>
Lines: 67
Xref: panix comp.arch:34185 comp.benchmarks:6377 comp.sys.super:3562

In article <33gfr2$atr@monalisa.usc.edu>,
Zhiwei Xu <zxu@monalisa.usc.edu> wrote:
>
>(3) Context-switching times in microseconds
>
>Platform,                Operating System		Context Switching Time
>Processor Speed (Mhz)
>
>HP-735, 99               HP-UX 9.01		     68
>486DX, 33                QNX 4.2                80
>DEC 4000/610, 160        OSF/1 v1.3             87
>486DX2, 66               Linux 0.99.10          98
>IBM RS6000/580, 62       AIX 3.2               102
>Sun SS10, 40             SunOS 4.1.3           128
>Sun SS10, 40             SunOS 5.2             225
>Sun SS2, 40              SunOS 5.2             454

Note that these times are the measured result of a pair of processes 
signalling each other, which includes the additional kernel call overhead 
for the signalling calls.  A benefit of this approach is that the source is 
portable to a wide range of UNIX systems, howver, a more correct result, 
but currently less portable, can be obtained by using the sched_yield() 
call in a POSIX 1003.1b (previously 1003.4) OS.  Since this approach 
executes only one kernel call per context switch, with no signal processing 
being done, it is a more accurate indication of the actual context switch 
time.  Without the signal processing, the intervals are also much shorter. 
For example, the Pentium/90 number for QNX drops from 23 usec to 2 usecs, 
the 486/66 number drops from 44 to 5 usecs.  Here's a more complete listing 
of numbers collected from various responses on the net:

Platform,                Operating System        Context Switching Time
Processor Speed (Mhz)                              in microseconds

  90 MHz PCI Pentium     QNX 4.21                  23
  60 MHz ALR Pentium     QNX 4.2                   28
 100 MHz HP-747x         HP-RT 1.1                 34
  66 MHz 486DX2          QNX 4.2                   44
 100 Mhz HP-735          HP-UX 9.01                68
  50 MHz HP-742          HP-RT 1.1                 71
  33 MHz 486DX           QNX 4.2                   80
 150 MHz 21064           DEC OSF/1 v1.3            93
  80 MHz HP-712/80       HP-UX 9.05                96
  40 MHz DEC 5000/240    Ultrix 4.2                98
  66 MHz 486DX2          Linux 0.99.10             98
 150 MHz DEC 3000/500    ?                        100
  62 MHz IBM-RS6000/580  AIX 3.2                  102
  66 Mhz Snake           HP-UX 9.x                106
 150 MHz DEC 3000/400    ?                        127
  40 Mhz Viking          SunOS 4.1.3              128
  25 MHz DEC 5000/200    ?                        154
  50 MHz R4000 SGI       ?                        158
  33 MHz Sparc           SunOS 4.1.1              198
  40 MHz MIPS R3000      Ultrix 4.3               198
  33 Mhz 486             386BSD 0.1               210
  85 MHz Sparcstation-5  SunOS 4.1.3_U1           210
  50 Mhz RIOS            AIX 3.2                  212
  20 MHz DEC 5000/120    ?                        281
  33 MHz R3000/3010 SGI  Irix 4.0.5               345
  33 MHz 486             NetBSD                   380
  50 MHz Sparcstation-LX Solaris 2.3              620
  50 MHz 486DX2          Solaris                  636
  16 MHz 386SX           NetBSD                  2603
-- 
Dan Hildebrand                     email: danh@qnx.com
QNX Software Systems, Ltd.         QUICS: danh  (613) 591-0934 (data)
(613) 591-0931 x204 (voice)        mail:  175 Terence Matthews          
(613) 591-3579      (fax)                 Kanata, Ontario, Canada K2M 1W8

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