All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jesse Pollard <jesse@cats-chateau.net>
To: MP M <mageshmp2003@yahoo.com>,
	linux-kernel@vger.kernel.org, linux-net@vger.kernel.org
Subject: Re: help in TCP checksum offload , TSO and zero copy
Date: Fri, 27 Feb 2004 09:46:11 -0600	[thread overview]
Message-ID: <04022709461100.11154@tabby> (raw)
In-Reply-To: <20040226185219.70474.qmail@web21407.mail.yahoo.com>

On Thursday 26 February 2004 12:52, MP M wrote:
> Hello ,
>
> I am working on TCP checksum offload , TSO and zero
> copy with linux 2.6.1 kernel .
>
> IMHO I find that the code for TCP checksum offload and
> TSO are already supported by the linux 2.6 kernel . I
> arrived at this conclusion on seeing the presence of
> flag CHECKSUM_HW and the #defines for NETIF_F_IP_CSUM
> , NETIF_F_NO_CSUM and
> NETIF_F_HW_CSUM . By default , it seems that
> CHECKSUM_HW is enabled by default so that the TSO
> supported driver will do the processing on the
> ethernet card.
>
> Please correct me if I am wrong .
>
> In the driver for e1000 and tg3 , support for TSO is
> already seen .
>
> But when I was testing the performance using ttcp
> utility , I found some weird results.
> I just want to share to obtain some feedback from some
> experienced guys in this area who has already worked
> in TSO ,TCP checksum offload .
>
> On the server machine I had my linux 2.6 kernel
> running and it had e1000 Intel pro ethercard
> support.Initially with ethtool utility I ensured that
> the Tx and Rx checksum setting on e1000 is set to on .
> I started ttcp utiltity in receive mode on the server
> machine listening on my specified port .
>
> Next I pumped in data from my client machine using
> ttcp utility in transmit mode to the server .
>
> I measured the time duration for data transfer to
> happen . say x milliseconds.
>
> Next I set the tx and rx checksum on e1000 card using
> ethtool , and repeated the above test with ttcp
> utility .Since the content size is same and with tx/rx
> checksum off on e1000 , I expected the time duaration
> of data transfer from server to client to be x+some
> delta . But surprisingly I am noticing the data
> transfer at lesser time than x .(ie faster than before
> with tx/rx checksum off on e1000 ) .
>
> I would appreciate if anyone could shed some light on
> this odd behaviour .

Not that odd - the local CPU is better at computing checksums
than the interface.

Note - there are some optimizations in the network stack
that reduce the effort of actually computing checksums. In
some cases, all that is done is to subtract/add those values
that are changed in making replies/ACKs. This eliminates
having to make a complete checksum evaluation. In others,
the checksum is done during some other operation that requires
a pass through the packet - making the checksum cost negligable.

I'm not the person for a detailed, low level explaination, but
I think this is what you are seeing. The hardware cannot take
advantage of global optimizations - and what you are seeing is
that difference.

      parent reply	other threads:[~2004-02-27 15:52 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-26 18:52 help in TCP checksum offload , TSO and zero copy MP M
2004-02-27  5:00 ` Stuart Young
2004-02-27  6:12 ` Willy Tarreau
2004-02-27 15:46 ` Jesse Pollard [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=04022709461100.11154@tabby \
    --to=jesse@cats-chateau.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-net@vger.kernel.org \
    --cc=mageshmp2003@yahoo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.