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