Re: Extremely slow network with e1000 & ip_conntrack

Stephen Lee
2003-12-05T20:46:08Z

"David S. Miller" <davem@redhat.com> wrote:
> Stephen Lee <mukansai@emailplus.org> wrote:
> > Yes, turning off TSO with ethtool fixed it (tested on 2.6.0-test11). At
> > least we have a workaround now.
>
> This workaround explains everything. The TSO packets have to be
> "un-TSO'd" in order for netfilter to look at the packet and parse
> the contents. This means copying all the data around, allocating
> several networking buffers, etc.

Sorry if I am talking out of my ass, but can this be solved in one
of the following ways? (But it would seem 2, 3 or 4 are not 2.6
material).

(1) Turn off TSO altogether (Duh).

(2) Do what you suggest, but pass the original TSO packet to the
ethernet chip. Still have to copy around, but save us some interrupts?
(Could introduce subtle bugs if we un-TSO it differently from the
hardware).

(3) Just pass the original packet to netfilter with a special flag and
have netfilter "deduce" what the rest of the headers are.

(4) Similar idea, but totally separate the headers and the payload. (I
think this was suggested somewhere for some other problem... I read it
in one of the archives but can't find it now) Then we can just generate
a set of "un-TSO'd" headers (with appropriate pointers into the big
payload) for netfilter to look at, but leave the original for passing to
hardware eventually.

Stephen