From: "Bjørn Mork" <bjorn@mork.no>
To: <netdev@vger.kernel.org>
Cc: linux-usb@vger.kernel.org,
"Alexey Orishko" <alexey.orishko@gmail.com>,
"Oliver Neukum" <oliver@neukum.org>,
"Enrico Mioso" <mrkiko.rs@gmail.com>,
"David Laight" <David.Laight@ACULAB.COM>,
"Bjørn Mork" <bjorn@mork.no>
Subject: [PATCH net-next 00/11] cdc_ncm: add buffer tuning and stats using ethtool
Date: Sat, 10 May 2014 17:41:38 +0200 [thread overview]
Message-ID: <1399736509-1159-1-git-send-email-bjorn@mork.no> (raw)
The first 9 patches of this set are unchanged from the RFC I
sent more than a week ago. The 2 last patches are leftover
minor cleanups, which I found laying around from last years
cleaning job.
David Laight was the only one commenting on the RFC, and I
have interpreted his comment as a wish for further work on
the usbnet framework, and not a request for any changes to
this patch set. Hence this submission of without changes to
patch 1-9, which I described like this for the RFC:
"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.
Patches 1 - 4 are mostly rearranging existing code, in preparing
for the dynamic buffer size changes.
Patch 5 adds userspace control (ab)using the ethtool coalescing
API. This isn't a perfect match, which is the main reason why I
post this series as a RFC.
Patch 6 is an unrelated framing optimization, reducing the
overhead quite a bit and allowing for better use of smaller
buffers.
Patch 7 changes the way we calculate frame padding cutoff. The
problem with big buffers is made much worse by the current padding
strategy where zero padding often can account for more than 90% of
the frames.
Patch 8 add some counters giving some insight into how well the
NCM/MBIM protocol works, supporting further tuning.
Patch 9 reduce the initial maximum buffer size from 32kB to 16kB
in an attempt to make the default better suit all. It is still
possible to tune this up again to the old fixed max, using the
new tuning knobs.
I must admit that I had higher hopes for this series before I
tested it on my own modems. One really unexpected result was
that one of the MBIM modems accepted the new rx buffer size we
set, but happily continued sending buffers of the same size as
before. Needless to say: This did not work very well...
So don't really expect to be able to use any values with any
given device. Firmware implementations are still... I don't
think I have words suitable for a public mailing list.
But I am hoping this will help the many users who have had success
rebuilding the driver with lower fixed limits.
Please test and/or comment!"
And a short description of the 2 new patches since the RFC:
Patch 10 is a follow-up to a comment Joe Perches made in November
2013. I don't always forget :-)
Patch 11 removes the redundant "connected" driver state, and the
associated .check_connect callbacks.
Bjørn Mork (11):
net: cdc_ncm: split out rx_max/tx_max update of setup
net: cdc_ncm: factor out one-time device initialization
net: cdc_ncm: split .bind device initialization
net: cdc_ncm: support rx_max/tx_max updates when running
net: cdc_ncm: use ethtool to tune coalescing settings
net: cdc_ncm: use true max dgram count for header estimates
net: cdc_ncm: set reasonable padding limits
net: cdc_ncm/cdc_mbim: adding NCM protocol statiscics
net: cdc_ncm: use sane defaults for rx/tx buffers
net: cdc_ncm: fix argument alignment
net: cdc_ncm: remove redundant "disconnected" flag
drivers/net/usb/cdc_mbim.c | 6 +
drivers/net/usb/cdc_ncm.c | 576 ++++++++++++++++++++++++++++-----------
drivers/net/usb/huawei_cdc_ncm.c | 13 -
include/linux/usb/cdc_ncm.h | 33 ++-
4 files changed, 442 insertions(+), 186 deletions(-)
--
2.0.0.rc2
next reply other threads:[~2014-05-10 15:42 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-10 15:41 Bjørn Mork [this message]
2014-05-10 15:41 ` [PATCH net-next 02/11] net: cdc_ncm: factor out one-time device initialization Bjørn Mork
2014-05-10 15:41 ` [PATCH net-next 03/11] net: cdc_ncm: split .bind " Bjørn Mork
[not found] ` <1399736509-1159-1-git-send-email-bjorn-yOkvZcmFvRU@public.gmane.org>
2014-05-10 15:41 ` [PATCH net-next 01/11] net: cdc_ncm: split out rx_max/tx_max update of setup Bjørn Mork
2014-05-13 8:09 ` Oliver Neukum
2014-05-13 8:49 ` Bjørn Mork
2014-05-13 9:09 ` Oliver Neukum
[not found] ` <1399972165.8278.11.camel-B2T3B9s34ElbnMAlSieJcQ@public.gmane.org>
2014-05-13 9:25 ` Bjørn Mork
2014-05-13 11:07 ` Oliver Neukum
2014-05-10 15:41 ` [PATCH net-next 04/11] net: cdc_ncm: support rx_max/tx_max updates when running Bjørn Mork
2014-05-10 15:41 ` [PATCH net-next 10/11] net: cdc_ncm: fix argument alignment Bjørn Mork
2014-05-10 15:41 ` [PATCH net-next 05/11] net: cdc_ncm: use ethtool to tune coalescing settings Bjørn Mork
2014-05-10 15:41 ` [PATCH net-next 06/11] net: cdc_ncm: use true max dgram count for header estimates Bjørn Mork
2014-05-10 15:41 ` [PATCH net-next 07/11] net: cdc_ncm: set reasonable padding limits Bjørn Mork
2014-05-10 15:41 ` [PATCH net-next 08/11] net: cdc_ncm/cdc_mbim: adding NCM protocol statiscics Bjørn Mork
2014-05-10 15:41 ` [PATCH net-next 09/11] net: cdc_ncm: use sane defaults for rx/tx buffers Bjørn Mork
2014-05-10 15:41 ` [PATCH net-next 11/11] net: cdc_ncm: remove redundant "disconnected" flag Bjørn Mork
2014-05-11 9:14 ` Enrico Mioso (@atlantide)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1399736509-1159-1-git-send-email-bjorn@mork.no \
--to=bjorn@mork.no \
--cc=David.Laight@ACULAB.COM \
--cc=alexey.orishko@gmail.com \
--cc=linux-usb@vger.kernel.org \
--cc=mrkiko.rs@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=oliver@neukum.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).