lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Tue, 6 May 2014 11:23:11 +0000
From:	David Laight <David.Laight@...LAB.COM>
To:	'Bjørn Mork' <bjorn@...k.no>,
	"netdev@...r.kernel.org" <netdev@...r.kernel.org>
CC:	"linux-usb@...r.kernel.org" <linux-usb@...r.kernel.org>,
	Alexey Orishko <alexey.orishko@...il.com>,
	Oliver Neukum <oliver@...kum.org>
Subject: RE: [RFC 0/9] cdc_ncm: add buffer tuning and stats using ethtool

From: Bjørn Mork
> I have got quite a few reports from frustrated users of OpenWRT
> hosts trying to use some powerful LTE modem, but not achieving
> full speed.  This is typically caused by a combination of
> big buffers and little memory, giving in allocation errors and
> bad performance as a result.
> 
> This series is an attempt to let users adjust the size of these
> buffers without having to rebuild the driver.

I think that the usbnet rx framework needs some TLC.

There is no reason to pass large rx URB to the usb device.
Because the end of a USB bulk 'message' is indicated by a non-maximal
fragment (possibly zero length) it is sufficient to provide multiple
rx URB provided the URB are each a multiple of the packet size of the
underlying USB link (512 bytes for USB2 and 1k for USB3).

The usb driver might then have to split and merge data from
multiple URB to generate the data skbs.
I'd guess that for sub-Ge speeds a data copy in the rx path
won't matter - simplifying many of the drivers.

Some of the drivers allocate 16k skb, then set true_size small!

	David

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ