*BSD News Article 73235


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!spool.mu.edu!sgigate.sgi.com!fido.asd.sgi.com!neteng!lm
From: lm@neteng.engr.sgi.com (Larry McVoy)
Newsgroups: comp.os.linux.networking,comp.unix.bsd.netbsd.misc,comp.unix.bsd.freebsd.misc
Subject: Re: TCP latency
Followup-To: comp.os.linux.networking,comp.unix.bsd.netbsd.misc,comp.unix.bsd.freebsd.misc
Date: 9 Jul 1996 16:01:51 GMT
Organization: Silicon Graphics Inc., Mountain View, CA
Lines: 98
Message-ID: <4rtvpf$7e5@fido.asd.sgi.com>
References: <4paedl$4bm@engnews2.eng.sun.com> <4pf7f9$bsf@white.twinsun.com> <4rql4p$39f@innocence.interface-business.de> <4rrimn$dro@fido.asd.sgi.com> <31E16DB5.41C67EA6@dyson.iquest.net>
Reply-To: lm@slovax.engr.sgi.com
NNTP-Posting-Host: neteng.engr.sgi.com
X-Newsreader: TIN [version 1.2 PL2]
Xref: euryale.cc.adfa.oz.au comp.os.linux.networking:44504 comp.unix.bsd.netbsd.misc:3975 comp.unix.bsd.freebsd.misc:23139

: > Yup, that's right.  I had completely forgotten about that.  I think I have
: > both the old and the new libs on my 486, I'll have a crack at seeing the
: > perf differences and post them here.  My mistake.

OK, I have a 486 system that has both elf & a.out style shared libs.  It
has 24MB, 100Mhz, SCSI, PCI, etc.  ASUS motherboard (the common one).
The results are from lmbench 1.0, the one distributed on the net.

My analysis: everything is identical except process creation involving
an exec.  I'm sort of surprised by how much the elf stuff hurts exec -
any thoughts as to why?

But given that the effect is only felt in exec and that exec is only
used for the process benchmarks, I fail to see why this was perceived
as such a big deal.  I've included the results that I published in the
Usenix paper - please note that the FreeBSD machine was a 133Mhz P5 and
the Linux machine was 120Mhz P5.  It's pretty lame of the FreeBSD crowd 
to be saying I stacked the deck when the Linux box was slower hardware.

I'm also interested in John's comment about the smaller, simpler shell
that FreeBSD uses (I assume it is /bin/sh, right?).  If FreeBSD has a
simple shell that doesn't break any common scripts (like rc.d scripts,
that would be a bummer), I'd vote for using that in Linux.  I hate using
bash to start processes, it's bloated.


                    L M B E N C H  1 . 0   S U M M A R Y
                    ------------------------------------

            Processor, Processes - times in microseconds
            --------------------------------------------
Host                 OS  Mhz    Null    Null  Simple /bin/sh Mmap 2-proc 8-proc
                             Syscall Process Process Process  lat  ctxsw  ctxsw
--------- ------------- ---- ------- ------- ------- ------- ---- ------ ------
i486-elf  Linux 1.3.100   99       8      2K     18K    101K  749      8     18
i486.engr Linux 1.3.100   99       7      2K      7K     92K  673     10     19

            *Local* Communication latencies in microseconds
            -----------------------------------------------
Host                 OS  Pipe       UDP    RPC/     TCP    RPC/
                                            UDP             TCP
--------- ------------- ------- ------- ------- ------- -------
i486-elf  Linux 1.3.100      58     323     774     489    1111
i486.engr Linux 1.3.100      59     325     772     465    1116

            *Local* Communication bandwidths in megabytes/second
            ----------------------------------------------------
Host                 OS Pipe  TCP  File   Mmap  Bcopy  Bcopy  Mem   Mem
                                  reread reread (libc) (hand) read write
--------- ------------- ---- ---- ------ ------ ------ ------ ---- -----
i486-elf  Linux 1.3.100   17    9     16     30     17     16   33    40
i486.engr Linux 1.3.100   17    9     17     30     17     16   33    41


Usenix paper table for just FreeBSD vs Linux.  The stuff that was "unfair" is 
"Simple process" and "/bin/sh process".  I'm not really sure it is reasonable
to call that "unfair".  It's just a different library style.  FreeBSD could
have done the same thing.  The point of thebenchmark is to draw out these
differences.

                    L M B E N C H  1 . 0   S U M M A R Y
                    ------------------------------------

            Processor, Processes - times in microseconds
            --------------------------------------------
Host                 OS  Mhz    Null    Null  Simple /bin/sh Mmap 2-proc 8-proc
                             Syscall Process Process Process  lat  ctxsw  ctxsw
--------- ------------- ---- ------- ------- ------- ------- ---- ------ ------
i586.1    FreeBSD 2.1-S  133       9      3K     12K     20K  105     24     28
i586.120   Linux 1.3.28  120       2      1K      5K     16K   69     10     13

            *Local* Communication latencies in microseconds
            -----------------------------------------------
Host                 OS  Pipe       UDP    RPC/     TCP    RPC/
                                            UDP             TCP
--------- ------------- ------- ------- ------- ------- -------
i586.1    FreeBSD 2.1-S     104     213     387     264     450
i586.120   Linux 1.3.28      33     187     366     467     713

            *Local* Communication bandwidths in megabytes/second
            ----------------------------------------------------
Host                 OS Pipe  TCP  File   Mmap  Bcopy  Bcopy  Mem   Mem
                                  reread reread (libc) (hand) read write
--------- ------------- ---- ---- ------ ------ ------ ------ ---- -----
i586.1    FreeBSD 2.1-S   21    0     30     54     42     39   73    83
i586.120   Linux 1.3.28   34    7     23      9     42     38   74    75

            Memory latencies in nanoseconds
            (WARNING - may not be correct, check graphs)
            --------------------------------------------
Host                 OS   Mhz  L1 $   L2 $    Main mem    Guesses
--------- -------------   ---  ----   ----    --------    -------
i586.1    FreeBSD 2.1-S   133     7    111         181
i586.120   Linux 1.3.28   120     8    107         150

--
---
Larry McVoy     lm@sgi.com     http://reality.sgi.com/lm     (415) 933-1804