Subject: Re: lmbench with new checksum code...

From: [email-masked] (Larry McVoy)
Date: Thu, 16 May 1996 09:03:36 -0700

:             *Local* Communication bandwidths in megabytes/second
:             ----------------------------------------------------
: Host                 OS Pipe  TCP  File   Mmap  Bcopy  Bcopy  Mem   Mem
:                                   reread reread (libc) (hand) read write
: --------- ------------- ---- ---- ------ ------ ------ ------ ---- -----
: trombetas  Linux 1.99.3    8  4.8   25.0   17.4     18     24   41    36
: geneva.ru     SunOS 5.5    8  7.0   12.6   19.5     18     18   40    36
: negro.rut SunOS 4.1.3_U    4  2.0   19.5    8.2     18     24   41    36

THis is sorta weird - why is it that mmap reread is slower than file reread?
Do you have a kernel bcopy that is faster than memory read?

I think your 4.8MB/sec number is pretty studly.  That means you are 
checksumming 9MB/sec as well as the protocol stack on a system that 
bcopies at ~20MB/sec.  You're already better than 2x the SunOS code.
Call it a day, you won.

---

From: [email-masked] (Alan Cox)
Date: Thu, 16 May 1996 18:32:51 +0100 (BST)

> checksumming 9MB/sec as well as the protocol stack on a system that 

Actually the Linux kernel cheats on the receive side of loopback and doesnt
checksum. Its too expensive to fiddle around on the send side for that short
of doing the whole job and shorting the tcp layer as Solaris seems to.

> bcopies at ~20MB/sec.  You're already better than 2x the SunOS code.

Na.. We can cut all the checksums, do raw copies with no protocol overhead
and possibly later on do user->user copying (with page flips to keep larry
happy ;)). I can't see any reason we cannot do about 8-9MB/sec with a bit
of extra code and some sneaky tricks.

CONFIG_TCP_BENCHMARK_TRICKS 

anyone ?

---

From: "David S. Miller" <[email-masked]>
Date: Fri, 17 May 1996 00:01:05 -0400

From: [email-masked] (Larry McVoy)
   Date: Thu, 16 May 1996 09:03:36 -0700

I did not win, this is unacceptable.  I am completely convinced based
upon the edge I have over Solaris for context switching and general
process/trap operations I should be able to match it even with
everything going through real networking.

Linux + full networking overhead == Solaris memcpy/cow-page overhead

I cannot accept this piss poor performance I'm getting, it must be
made faster.

(Yes, I'm rediculious, Larry will tell you others how I feel that if
 I am presented with a "next generation" cpu and I cannot get from
 trap entry to kernel c-code in 12 completely pipelined non-stalling
 instructions then some hardware engineer has completely wasted his
 precious time ;-)

Later,
David S. Miller
[email-masked]