Re: Regression associated with commit c8628155ece3 - "tcp: reduceout_of_order memory use"
From: Larry Finger
Date: Wed Aug 22 2012 - 12:00:14 EST
On 08/22/2012 12:15 AM, Eric Dumazet wrote:
This particular commit is the start of a patches batch that ended in the
generic TCP coalescing mechanism.
It is known to have problem on drivers doing skb_clone() in their rx
path.
Current kernels should be ok, because coalescing doesnt happen if the
destination skb is cloned (skb_cloned(to) in skb_try_coalesce())
For 3.4 kernel, I guess I need to backport this skb_cloned(to) check fo
stable 3.4 kernel
But these skb_clone() in various USB drivers should be killed for good,
they really can kill the box because of skb->truesize lies.
Applying your patch to 3.4 does not fix the problem. In addition, all of the
problems I noted happen with 3.6-rc2 - current kernels are not OK.
Of the drivers I reported, only r8712u in staging/rtl8712/rtl8712_recv.c has a
direct call to skb_clone(). As its symptoms are different, the cloning is likely
the source of the problems there. In addition, the problem is intermittent. The
driver normally allocates a new buffer and copies to it, and the clone only
occurs when that skb allocation fails. I will try to fix that. My skb skills are
minimal and I will have to do some studying.
Thanks,
Larry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/