[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1403327597.16682.14.camel@edumazet-glaptop2.roam.corp.google.com>
Date: Fri, 20 Jun 2014 22:13:17 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Tom Herbert <therbert@...gle.com>
Cc: davem@...emloft.net, netdev@...r.kernel.org
Subject: Re: [PATCH 0/5] net: Checksum offload changes - Part V
On Fri, 2014-06-20 at 16:37 -0700, Tom Herbert wrote:
> I am working on overhauling RX checksum offload. Goals of this effort
> are:
>
> - Specify what exactly it means when driver returns CHECKSUM_UNNECESSARY
> - Preserve CHECKSUM_COMPLETE through encapsulation layers
> - Don't do skb_checksum more than once per packet
> - Unify GRO and non-GRO csum verification as much as possible
> - Unify the checksum functions (checksum_init)
> - Simplify code
>
> What is in this fifth patch set:
>
> - Added GRO checksum validation functions
> - Call the GRO validations functions from TCP and GRE gro_receive
> - Perform checksum verification in the UDP gro_receive path using
> GRO functions and add support for gro_receive in UDP6
What kind of speed regression / code bloat comes from all these
changes ?
I see a lot of added complexity / code in GRO layer, but no performance
numbers...
__skb_gro_checksum_complete() for example calls skb_checksum() twice,
and we know this is expensive, particularly for IPv4 case where we know
the header checksum has to be 0.
GRO performance is already not very good, lot of people just disable GRO
because of it being very slow. I'd like to not give them more
incentives...
Without proper RFS support from the NIC, all encapsulated traffic tend
to land on a single RX queue, so performance of GRO layer is critical.
--
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