Re: zero-copy TCP

From: Jes Sorensen (jes@linuxcare.com)
Date: Sat Sep 02 2000 - 16:59:38 EST


>>>>> "Jeff" == Jeff V Merkey <jmerkey@timpanogas.com> writes:

Jeff> all over the place that increases latency. Not to mention the
Jeff> overhead of the type of interrupt and trap gates that suck up
Jeff> about 50 clocks to fetch the IDT, PDE, and GDT tables for every
Jeff> interrupt. NetWare copies nothing in TCPIP except at the stream
Jeff> head. Why do you need to copy data anyway to checksum an IP
Jeff> packet anyway? I noticed you do the right thing and keep the
Jeff> headers and data as separate fragments during header
Jeff> construction, so why do you need to copy data for checksumming?

Because your hardware doesn't do scatter/gather DMA *and* TCP TX
checksumming - only very few cards do. You have to build every packet
in memory if the card doesn't do sct/gat since you can't really send
out data without IP headers in front of it. And if your card doesn't
do TX transmit then you have to run over all the data with the CPU to
calculate the checksum and once you do this you can just as well do
the full copy. Also note that many cards that do sct/gth also have a
bit of latency per descriptor so you do not want to use 10 descriptors
for a 1500 byte packet.

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



This archive was generated by hypermail 2b29 : Thu Sep 07 2000 - 21:00:14 EST