[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1384877400.8604.107.camel@edumazet-glaptop2.roam.corp.google.com>
Date: Tue, 19 Nov 2013 08:10:00 -0800
From: Eric Dumazet <eric.dumazet@...il.com>
To: David Laight <David.Laight@...LAB.COM>
Cc: Mark Lord <mlord@...ox.com>, Ming Lei <ming.lei@...onical.com>,
davem@...emloft.net, netdev@...r.kernel.org,
Linux Kernel <linux-kernel@...r.kernel.org>,
stable@...r.kernel.org
Subject: RE: net/usb/ax88179_178a driver broken in linux-3.12
On Tue, 2013-11-19 at 14:43 +0000, David Laight wrote:
> It isn't directly a TSO problem.
> There has always been a bug in the xhci driver for fragmented buffers.
> TSO just means it is given a lot of fragmented buffers.
>
> As well as user-supplied fragmented buffers, the bug affects
> internal fragmentation that happens whenever a buffer crosses a 64k
> byte boundary (please hw engineers - stop doing this!)
TCP stack uses order-3 allocations.
This means 32KB for x86 (PAGE_SIZE=4096)
What is PAGE_SIZE for your arches ?
If there is a 6KB limit, we might adapt TCP to make sure we do not cross
a 64KB boundary.
Other strategy would be to detect this case in the driver and split a
problematic segment into two parts.
>
> I'm not sure whether usbnet would ever pass buffers that cross 64k
> boundaries. I've not seen one - even with TSO. But the rx buffers
> are 20k (doesn't seem ideal!) and could also be problematical.
>
> USB mass storage has used SG for ages, the buffers must all be
> adequately aligned for the hardware - they won't meet the constraint
> for USB3 itself, but the documented restriction may be more severe
> than the actual one.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists