Re: Patch #3 (TCP / Linux / Performance)

2001-12-03 Thread Matthew Dillon
:this is what i get, it's between a dell 2540 (dual PIII/900) and an Intel Sl2 :(dual PIII/1g). both are using intel's em driver. : :majadara> ./tbench 1 bagel :Throughput 12.4785 MB/sec (NB=15.5981 MB/sec 124.785 MBit/sec) :... :Throughput 37.002 MB/sec (NB=46.2526 MB/sec 370.02 MBit/sec) : ./

Re: Patch #3 (TCP / Linux / Performance)

2001-12-03 Thread Danny Braniss
this is what i get, it's between a dell 2540 (dual PIII/900) and an Intel Sl2 (dual PIII/1g). both are using intel's em driver. majadara> ./tbench 1 bagel Throughput 12.4785 MB/sec (NB=15.5981 MB/sec 124.785 MBit/sec) majadara> ./tbench 2 bagel Throughput 18.1598 MB/sec (NB=22.6998 MB/sec 181.5

Re: Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread Mike Silbersack
This part of the thread sounds really familiar. I recall someone coming up with a patch for this a few weeks ago, possibly committing it to -current. I'm too tired and it's too late, though; I'll look for it tomorrow if Matt doesn't find the thread in the archives first. Mike "Silby" Silbersac

Re: Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread Matthew Dillon
:curious, as the loopback's MTU is normally 16384. :Also, any idea on where does the 4096 limit (1460*2+1176) come from ? : : cheers : luigi It comes from the size of an mbuf, which is 2K. If you are trying to send 4100 bytes of data what winds up happening is this:

Re: Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread Luigi Rizzo
On Sun, Dec 02, 2001 at 12:10:53AM -0800, Matthew Dillon wrote: ... > There are still a couple of unresolved issues. I noticed that when > connecting locally TCP is non-optimal... when sending a 4100 byte > data block it sends two 1460 byte packets (maxseg), then one > 1176 byte p

Re: Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread Matthew Dillon
:nice, 950 Mbs which should be the theoretical maximum. what kind of CPUs :do you have in there, and do you know how hard they were working? : These are 1.1 GHz duel Pentium III's. One of the cpu's is maxed out at that transfer rate (this is -stable and the program is in the system

Re: Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread Lamont Granquist
On Sun, 2 Dec 2001, Matthew Dillon wrote: > This is connecting to inetd running a dd if=/dev/zero bs=32k on a > machine with the rfc sysctl's turned on and 262144 byte send and > receive buffers, without jumbo frames (my gigE switch doesn't support > them :-( ). nice, 950 Mbs wh

Re: Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread Matthew Dillon
:On Sun, 2 Dec 2001, Matthew Dillon wrote: :> Throughput 47.2446 MB/sec (NB=59.0558 MB/sec 472.446 MBit/sec) 20 procs :> :> It seems to max-out at around 75,000 packets per second (input + output). :> :> I doubt these results could be duplicated on anything but a DELL2550. :> It ded

Re: Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread Andrew R. Reiter
On Sun, 2 Dec 2001, Lamont Granquist wrote: : :What is the remaining bottleneck in these tests? CPU? Interrupts? What :would you need to do to get that closer to the theoretical limit :(something around 920 Mbs for GigE IIRC)? Well, for one thing, I'd imagine that per-byte and per-copy overhea

Re: Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread Lamont Granquist
On Sun, 2 Dec 2001, Matthew Dillon wrote: > Throughput 47.2446 MB/sec (NB=59.0558 MB/sec 472.446 MBit/sec) 20 procs > > It seems to max-out at around 75,000 packets per second (input + output). > > I doubt these results could be duplicated on anything but a DELL2550. > It dedicates

Re: Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread Andrew R. Reiter
: :Ahh, but there are patches floating around that do support zero-copy. :Just ask Ken Merry and Drew Gallatin. I don't think they've been integrated :due to lack of testing time, but they've existed for 2 or so years now. : http://people.freebsd.org/~ken/zero_copy/ -- Andrew R. Reiter [EMAIL

Re: Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread Bosko Milekic
On Sun, Dec 02, 2001 at 11:18:42AM -0800, Matthew Dillon wrote: [...] > :Does the FreeBSD tcp stack do zero copy (page flip the data to > :userspace)? In the localhost case, it seems like there are two copies > :to/from userspace there. > : > :-- > :Richard Sharpe, [EMAIL PROTECTED], LPIC-1 >

Re: Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread Matthew Dillon
: :OK Matt, that last patch did the trick. : :I am now getting 68 and 69Mb/s between my Linux system and the FreeBSD :system. Excellent! :I have also tried the loopback interface, and I am getting 371Mb/s for 1 process, :dropping to about 320Mb/s for 5. Excellent! :This seems like i

Re: Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread Justin T. Gibbs
>>Does the FreeBSD tcp stack do zero copy (page flip the data to >>userspace)? In the localhost case, it seems like there are two copies >>to/from userspace there. > > It has the ability to do it via sendfile() and a few other mechanisms, but >not as a normal part of typical read()/write(). A

Re: Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread David Greenman
>Does the FreeBSD tcp stack do zero copy (page flip the data to >userspace)? In the localhost case, it seems like there are two copies >to/from userspace there. It has the ability to do it via sendfile() and a few other mechanisms, but not as a normal part of typical read()/write(). -DG Da

Re: Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread Richard Sharpe
OK Matt, that last patch did the trick. I am now getting 68 and 69Mb/s between my Linux system and the FreeBSD system. I have also tried the loopback interface, and I am getting 371Mb/s for 1 process, dropping to about 320Mb/s for 5. This seems like it is close to the limit for the machine I

Patch #3 (TCP / Linux / Performance)

2001-12-02 Thread Matthew Dillon
I've fixed a couple of additional problems. * tbench() assumes that accept() propogates the NODELAY tcp option. It doesn't in FreeBSD. Er, it didn't in FreeBSD... my patch fixes this. * If the transwmitter sees a 0 window it stalls waiting for an ack. However, if