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