Re: [PATCH v9] tilegx network driver: initial support
From: Eric Dumazet <hidden>
Date: 2012-06-06 18:10:38
Also in:
lkml
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 ?