Subject: Re: But why?
To: David S. Miller <davem@caip.rutgers.edu>
From: Zdenek Salvet <salvet@horn.ics.muni.cz>
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 salvet@ics.muni.cz
----------------------------------------------------------------------------
If God had meant for us to be in the Army,
we would have been born with green, baggy skin.