On Fri, 2012-10-19 at 23:25 -0700, Jeff Kirsher wrote:
From: Alexander Duyck <redacted>
This change adds support for IPv6 and UDP to ixgbe_get_headlen. The
advantage to this is that we can now handle ipv4/UDP, ipv6/TCP, and
ipv6/UDP with a single memcpy instead of having to do them in multiple
pskb_may_pull calls.
A quick bit of testing shows that we increase throughput for a single
session of netperf from 8800Mpbs to about 9300Mpbs in the case of ipv6/TCP.
As such overall ipv6 performance should improve with this change.
Signed-off-by: Alexander Duyck <redacted>
Tested-by: Stephen Ko <redacted>
Signed-off-by: Jeff Kirsher <redacted>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
Thats pretty interesting.
Why this work is not done generically, so that all drivers can have
benefit of it ?
Even a driver not using fragments could have benefit, because we could
prefetch() so that GRO stack is faster (no stall to get the last 2 bytes
of a TCP header when timestamps are used)
Thanks