Messages in this thread | | | Date | Tue, 19 Aug 2008 14:27:35 -0700 (PDT) | Subject | Re: [GIT]: Networking | From | David Miller <> |
| |
From: Linus Torvalds <torvalds@linux-foundation.org> Date: Tue, 19 Aug 2008 14:21:57 -0700 (PDT)
> > > On Tue, 19 Aug 2008, David Miller wrote: > > > > Those fix a performance regression reported by a real user. > > Since when?
Check the regression list entry you were pointed to in another reply.
But I'll save you some time and I'll explain the problem for you.
We enabled GSO segmentation offload, which is a software variant of TSO we've had in the tree for ages, when a card can do scatter-gather and checksumming offloading in HW. We do this because Lennert Buytenhek validated with many tests that this consistently decreases cpu utilization.
However, a user reported that if they NAT'd a remote destination port using netfilter to a loopback addr:port, then there was a performance degradation.
Herbert discovered the cause, which was multi-fold. And smashing the SKB checksum and not indicating TSO capability in loopback was the end cause.
Loopback should enable TSO for other reasons, not just to fix this bug. If loopback says it can do TSO then the TSO packet gets passed straight through to the receive side, and our entire stack has been able to handle that for years.
| |