Messages in this thread | | | Subject | Re: [PATCH v9] tilegx network driver: initial support | From | Eric Dumazet <> | Date | Wed, 06 Jun 2012 20:10:23 +0200 |
| |
On Mon, 2012-06-04 at 16:12 -0400, Chris Metcalf wrote: > This change adds support for the tilegx network driver based on the > GXIO IORPC support in the tilegx software stack, using the on-chip > mPIPE packet processing engine. >
> + > +/* Do "TSO" handling for egress. > + * > + * Normally drivers set NETIF_F_TSO only to support hardware TSO; > + * otherwise the stack uses scatter-gather to implement GSO in software. > + * On our testing, enabling GSO support (via NETIF_F_SG) drops network > + * performance down to around 7.5 Gbps on the 10G interfaces, although > + * also dropping cpu utilization way down, to under 8%. But > + * implementing "TSO" in the driver brings performance back up to line > + * rate, while dropping cpu usage even further, to less than 4%. In > + * practice, profiling of GSO shows that skb_segment() is what causes > + * the performance overheads; we benefit in the driver from using > + * preallocated memory to duplicate the TCP/IP headers. > + */
All this stuff cost about 300 lines of code in this driver, without IPv6 support.
I am pretty sure this performance problem should be solved in net/{core| ipv4|ipv6} instead
What TCP performance do you get with TSO/GSO and SG off ?
| |