[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100426014112.GA19870@gondor.apana.org.au>
Date: Mon, 26 Apr 2010 09:41:12 +0800
From: Herbert Xu <herbert@...dor.apana.org.au>
To: David Miller <davem@...emloft.net>
Cc: netdev@...r.kernel.org
Subject: Re: GRO after RPS?
On Sun, Apr 25, 2010 at 06:17:57PM -0700, David Miller wrote:
>
> Either GRO walks the skb->rxhash values one by one, or GRO does, the
> cost is going to be roughly equivalent I think.
(I presume one of those GROs is meant to be RPS).
Right, in fact if we could combine the two it would be even better.
> And when the packets do match, you can't just trust the ->rxhash in
> the GRO code, since a hash match only indicates that the packets might
> have the same flow. So you're going to have to touch the packet
> headers in that case on the pre-RPS cpu.
Yes, if the rxhash matches then we need to examine the packet
header. However, in that case the packet will most likely turn
out to be a GRO candidate, meaning that you have to do one fewer
RPS lookup/redirection.
Besides, the place where you need GRO most is where the hardware
doesn't do it directly. That same hardware is probably not going
to give you a hash either. When if we have to touch the packet
header, it would be beneficial to do GRO while it's still hot.
> The goal is to eliminate all packet header references from the pre-RPS
> path, and let the post-RPS cpu do it.
So if we changed GRO to use hardware hashes, then the only case
where it would touch the packet header unnecessarily is when we
get a hash collision.
In all other cases the header would only be touched in case we
have a hash match, which will most likely result in a merging.
Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@...dor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists