Re: Linux Jobs: Update

From: David S. Miller (davem@redhat.com)
Date: Mon Mar 13 2000 - 05:04:38 EST


   Date: Mon, 13 Mar 2000 22:54:43 +1300
   From: Chris Wedgwood <cw@f00f.org>

   I think 2.3.51 is ok for bw_tcp (I've been playing with this and
   comparing results with Alexey about just such a thing over the last
   couple of days). We are about 10% slow that FreeBSD if it matters.

It could be due to ip_csum and/or memcpy tweaking.

   I think bw_pipe is hosed though. At least FreeBSD (3.4) is twice as
   fast on my PPro200 and 2.3.51 (almost 200M/s vs 107M/s!). Ouch.

FreeBSD's pipe code plays vm tricks to not even copy the
data from one process to another.

Modify the bw_pipe benchmark to actually write some dummy value
into the read() side buffer in each page of data read during
that read() call. Perhaps something like replacing bw_pipe.c:reader()
with the following (untested):

bw_tcp.c:

void
reader(int control[2], int pipes[2], int bytes)
{
        int todo = XFER, done = 0, n;

        write(control[1], &bytes, sizeof(bytes));
        while ((done < todo) && ((n = read(pipes[0], buf, XFERSIZE)) > 0)) {
                /* Avoid vm tricks giving bogus results. -DaveM */
                buf[0] = 0;

                done += n;
        }
}

I bet their numbers go into shitter and ours stay the same
when you make this change.

Anyways please let me know the results of the above experiment
on FreeBSD. Their memcpy() is not twice as fast as ours :-)

Later,
David S. Miller
davem@redhat.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Mar 15 2000 - 21:00:23 EST