Subject: Re: But why?
To: David S. Miller <>
From: Zdenek Salvet <>
List: tech-kern
Date: 10/24/1996 09:28:41
> Indeed nice.  On the SS10 with Happy Meal ethernet cards the code path
> at each end works out to something like:
> write(sockfd, &buf, size)
> 	trap --> sys_write() --> sock_read()
> 		csum_copy_partial(skb)
> 			ip_header_csum()
> 				happy_meal_xmit(skb) --> the wire
> the wire --> happy_meal_rx() (the card dma's right into the networking
> 			      buffer and checksums for me)
> 	memcpy_tofs(skb->data, user_buf);
> 	trap --> sys_read() (in libc)
> I see the data _once_ at each end, and that is at the point in time
> you copy in/out of user space, and that is it.  I use no extraneous
> buffers for tx/rx as the card can directly dma into any buffer I give
> it.  Now picture this running full duplex 100mbit and it's pretty
> intense.

What is so special about single copy ? I have always thought it is
"normal" way to do the job if hardware permits.
(PS. My NetBSD/P100 can saturate its 155Mbps ATM connection,
     4cpu SparcCenter/Solaris on the other end is unable to keep up though.)

Zdenek Salvet                                     
           If God had meant for us to be in the Army,
         we would have been born with green, baggy skin.