[comp.os.mach] Mach 3.0 Performance

georgeb@fai.UUCP (George Bosworth) (06/25/91)

In an article in the ASPLOS-IV Proceedings (full citation later),
researchers from U. of Washington published a side-by-side
performance comparison of Mach 2.5 and Mach 3.0.

They averaged three runs of seven diverse applications running on a
MIPS R3000-based DECstation 5000/200 with 24 MB of memory.  I condense
their tabulation of results by adding the applications together for
a few of their measured items:

   Measured Item                        Mach 2.5       Mach 3.0
   ==========================           ========       ========

   Elapsed time (seconds)                    307            416

   Address space context switches         10,740        215,811

   Kernel-level thread context            18,255        248,274
     switches 

   System calls                           90,515        278,771

   Kernel mode TLB misses                439,067      3,867,602

Here are two questions:

1. The authors argue that RISC hardware and microkernel OS designs
   are out of kilter, and deliberately chose a RISC machine for
   the Mach comparisons.  Are there similar timing runs for Mach 2.5
   and Mach 3.0 on CISC machines?

2. Are there any reasons to believe that more current versions of
   Mach 3.0 have improved in performance? If so, are there published
   performance runs?

Full citation:  Thomas E. Anderson, Henry M. Levy, Brian N. Bershad,
and Edward D Lazowska, "The Interaction of Architecture and Operating
System Design", in Proceedings of the Fourth International Conference
on Architectural Support for Programming Languages and Operating
Systems, April 1991, pages 108-120.  The proceedings are available
from ACM by order number 556910.

George
  
George H. Bosworth                    georgeb@fai.com    or  
Fujitsu America B-2-7                 uunet!fai.com!georgeb
3055 Orchard Drive                         
San Jose CA 95134                     1-408/432-1300 x5033

Rick.Rashid@cs.cmu.edu (06/26/91)

In looking at the numbers in Brian's paper I noted a couple of things:

    1) The single application which is listed as having the
       greatest disparity in time (150 vs 92 seconds) is the
       remote Andrew benchmark.  This is very deceptive because
       Mach 2.5 incorporates AFS 3.0 directly in the kernel
       (AFS is the remote file system being used) while there
       is no direct support for AFS in Mach 3.0.  In Mach 3.0
       we run a server program called Venus which implements
       an older version of the AFS interface.  This older
       implementation still talks to current AFS servers, but
       it does so using the old protocol through a protocol
       converter.  Performance of AFS access through Venus is
       thus particularly poor and not really indicative of any
       specific feature of Mach 3.0.  (The reason Mach 3.0 uses
       Venus has to do with NFS/AFS licensing issues.)

    2) The other tests indicated Mach 3.0 performance in the range of
       .73 to 1.64 of Mach 2.5 with the latex and linking applications,
       for example, running at .85 and the spelling checker at 1.64.

I don't routinely get number for the DecStation, but I do have some
older numbers for the Decstation Mach 3.0 vs. Ultrix (collected
last year for USENIX).  The numbers are presented as ratios
of Ultrix to Mach 3.0 times (i.e. numbers below 1 are
bad for 3.0, above 1 are good):

        Compilation benchmark:   1.23
        Andrew benchmark:         1.01
        Cached file reads:        1.60
        Uncached reads:            .90
        Uncached writes:           .88

For the Sun 3/60 I measured Mach 2.5 and Mach 3.0:

        Compilation:              1.04
        Andrew:                    .98

(additional numbers are in the paper).

I am currently compiling a set of performance number for the
i386 which I will pass on in a message in the next few days.

-Rick