Re: zero-copy TCP fileserving

Karl Kleinpaste (karl@justresearch.com)
24 Sep 1999 17:04:37 -0400


"David S. Miller" <davem@redhat.com> writes:
> Because the csum_partial_copy_from_user done in the TCP transmit path
> gets the checksum at zero cost. Just eliminating the checksum is
> going to buy little if anything (in fact on some cpus it's going to
> cost more to "avoid" the csum part of the copy), the real gain is
> avoiding the copy as well.

> You'd need to, in tcp sendmsg:
> 1) Lock down the data buffer
> 2) Add support to the skb's for iovecs
> 3) Put the TCP/IP/HW headers in the first iovec
> 4) Hook up the user data in subsequent iovecs

In the early '90s, this concept was very new, and we (at CMU) did a
lot of work on it. Our final paper (from SIGCOMM'95) is under
http://www.acm.org/sigcomm/sigcomm95/sigcpapers.html, or I have a copy
at http://www.cs.cmu.edu/~karl/general/95sigcomm.ps.

At the time, 100Mbps ether didn't exist, and the 80386 was
simultaneously new and boring (due to being slow). We worked with
DecStation 5000s and later early Alphas with a custom-built (by NSC)
HIPPI interface, off the DS5K & Alpha turbochannel. Manufacturing a
new mbuf type which contained iovecs was exactly what we did.

--karl

-
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/