Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Mar 1999 10:01:20 -0500
From:      Dennis <dennis@etinc.com>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        hackers@freebsd.org
Subject:   Re: Gigabit ethernet revisited
Message-ID:  <199903211449.JAA15387@etinc.com>
In-Reply-To: <199903210730.XAA09427@apollo.backplane.com>
References:  <199903210718.CAA08119@skynet.ctr.columbia.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
At 11:30 PM 3/20/99 -0800, you wrote:
>:So, how long after the process is marked runable does the scheduler
>:actually transfer control to the process so that it can handle the 
>:received data? Can the process be prevented from running if there are
>:too many interrupts from the NIC? Is there some way to make the scheduler 
>:run the process more often (I tried using nice -20 on the receving 
>:instance of ttcp; that didn't seem to make a difference)? Has anybody 
>:else actually tried to receive data at 600 to 800Mbps speeds on FreeBSD 
>:and done it reliably? (Note: I mean actually transmitting UDP packets at, 
>:say 80MB/sec and actually receiving _all_ of the transmitted packets on 
>:the other side, in the application, at the same speed. No fudging.) 
>:Transmit speed doesn't seem to be an issue here, but somehow I get the 
>:feeling that the kernel is sabotaging itself on receive.
>:
>:-Bill
>
>    You need to do the test I suggested sinking the packets into the
>    bit bucket with ipfw.

I'd sink them before that. Drop them directly from the ring.

while (next_ring_entry_filled)
    clear_entry();

You should be able to process as many packets as you can 
throw at it. The send_socket overhead is higher then the 
latency of processing one ring entry (or it should be) so I've
noticed that the sending machine maxes out before the
receiver. Unless the overhead for the card's controller is high,
in which case you're in trouble.

The most I've done with freebsd is ~52,000pps on a 200Mhz box...
66Mb/s throughput, but thats also as high as I've tried. The CPU
doesnt even blink. Don't beat me up for this but you can send a 
LOT more packets from a Linux 2.2 box then you can from a
FreeBSD one.

One of the problems with using TCPs or UDPs TO the box is that
processing the protocols use a lot of resources that normal routers
dont have...so you are not getting a true indication of the forwarding
capability, which is what I assume you want. Also, you need to 
test THROUGH the box because DMA contention is where you will
find the biggest bottleneck.

Dennis



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199903211449.JAA15387>