Subject: Re: [PATCH net-2.6] net_sched: always clone skbs

From: Jarek Poplawski <[email-masked]>
Date: Tue, 21 Dec 2010 00:52:09 +0100

On Tue, Dec 21, 2010 at 12:28:09AM +0100, Eric Dumazet wrote:
> Le mardi 21 décembre 2010 ?? 00:20 +0100, Jarek Poplawski a écrit :
> > On Mon, Dec 20, 2010 at 10:35:30PM +0800, Changli Gao wrote:
> > > Pawel reported a panic related to handling shared skbs in ixgbe
> > > incorrectly. So we need to revert my previous patch to work around
> > > this bug. Instead of reverting the patch completely, I just revert
> > > the essential lines, so we can add the previous optimization
> > > back more easily in future.
> > > 
> > >     commit 3511c9132f8b1e1b5634e41a3331c44b0c13be70
> > >     Author: Changli Gao <[email-masked]>
> > >     Date:   Sat Oct 16 13:04:08 2010 +0000
> > >     
> > >         net_sched: remove the unused parameter of qdisc_create_dflt()
> > > 
> > 
> > Isn't there some mistake in the commit number? IMHO this changelog is
> > mostly wrong. The bug happens outside of ixgbe, probably in
> > dev_hard_start_xmit() ->  __skb_linearize(), and even if not, it can,
> > without any driver's fault. The only question is why it didn't triger
> > with 2.6.36.
> > 
> 
> Indeed, commit number is wrong. It was :
> 
> commit 210d6de78c5d7c785fc532556cea340e517955e1
> Author: Changli Gao <[email-masked]>
> Date:   Thu Jun 24 16:25:12 2010 +0000
> 
>     act_mirred: don't clone skb when skb isn't shared
> 
> It triggers now because GRO might be default to on now.
> 
> commit 6a08d194ee40806e0ccd5f36ed768e64cbfc979f
> e1000: use GRO for receive 
> 
> (or other various GRO patches)

Well, still some doubt after re-reading Pawel's 1st. message:

host1 (kernel 2.6.36.2)
netperf client -> eth3 (82598EB 10-Gigabit AT CX4) - directly connected to eth2 of host2
ethtool -k eth3
Offload parameters for eth3:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on 
...

Of course, I know this was another box.

Jarek P.