Re: [PATCH v2 net-next] tcp: avoid expensive pskb_expand_head() calls

Eric Dumazet
2012-04-19T13:52:13Z

On Thu, 2012-04-19 at 15:18 +0200, Eric Dumazet wrote:
> On Thu, 2012-04-19 at 13:30 +0200, Eric Dumazet wrote:
>
> > I'll provide a v3 anyway with more performance data, I setup two cards
> > in PCI x8 slots to get full bandwidth.
>
> Incidentally, using PCI x8 slots dont anymore trigger the slow path on
> unpatched kernel and a single flow (~9410 Mbits)
>
> It seems we are lucky enough to TX complete sent clones before trying to
> tcp_trim_head() when processing ACK
>
> Sounds like a timing issue, and fact that drivers batches TX completions
> and RX completions.
>
> Also BQL might have changed things a bit here (ixgbe is BQL enabled)
>
> Only if I start several concurrent flows I see the pskb_expand_head()
> overhead.
>
>

And disabling GRO on receiver definitely demonstrates the problem, even
with a single flow. (and performance drops from 9410 Mbit to 6050 Mbit)