netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Łukasz Spintzyk" <lukasz.spintzyk@synaptics.com>
To: netdev@vger.kernel.org
Cc: linux-usb@vger.kernel.org, oliver@neukum.org, kuba@kernel.org,
	ppd-posix@synaptics.com, Bernice.Chen@synaptics.com
Subject: [PATCH v4 2/2] net/cdc_ncm: Increase NTB max RX/TX values to 64kb
Date: Tue, 19 Jul 2022 08:24:52 +0200	[thread overview]
Message-ID: <20220719062452.25507-2-lukasz.spintzyk@synaptics.com> (raw)
In-Reply-To: <20220719062452.25507-1-lukasz.spintzyk@synaptics.com>

DisplayLink ethernet devices require NTB buffers larger then 32kb
in order to run with highest performance.

This patch is changing upper limit of the rx and tx buffers.
Those buffers are initialized with CDC_NCM_NTB_DEF_SIZE_RX and
CDC_NCM_NTB_DEF_SIZE_TX which is 16kb so by default no device is
affected by increased limit.

Rx and tx buffer is increased under two conditions:
 - Device need to advertise that it supports higher buffer size in
   dwNtbMaxInMaxSize and dwNtbMaxOutMaxSize.
 - cdc_ncm/rx_max and cdc_ncm/tx_max driver parameters must be adjusted
   with udev rule or ethtool.

Summary of testing and performance results:
Tests were performed on following devices:
 - DisplayLink DL-3xxx family device
 - DisplayLink DL-6xxx family device
 - ASUS USB-C2500 2.5G USB3 ethernet adapter
 - Plugable USB3 1G USB3 ethernet adapter
 - EDIMAX EU-4307 USB-C ethernet adapter
 - Dell DBQBCBC064 USB-C ethernet adapter

Performance measurements were done with:
 - iperf3 between two linux boxes
 - http://openspeedtest.com/ instance running on local test machine

Insights from tests results:
 - All except one from third party usb adapters were not affected by
   increased buffer size to their advertised dwNtbOutMaxSize and
   dwNtbInMaxSize.
   Devices were generally reaching 912-940Mbps both download and upload.

   Only EDIMAX adapter experienced decreased download size from
   929Mbps to 827Mbps with iper3, with openspeedtest decrease was from
   968Mbps to 886Mbps.

 - DisplayLink DL-3xxx family devices experienced performance increase
   with iperf3 download from 300Mbps to 870Mbps and
   upload from 782Mbps to 844Mbps.
   With openspeedtest download increased from 556Mbps to 873Mbps
   and upload from 727Mbps to 973Mbps

 - DiplayLink DL-6xxx family devices are not affected by
   increased buffer size.

Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---

 v4: Added Acked-by from link
    https://lore.kernel.org/netdev/YtAKEyplVDC85EKV@kroah.com/#t

 Greg, Hopefully this is what you meant about missing "Reviewed-by".
 Many thanks for help!

 include/linux/usb/cdc_ncm.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/linux/usb/cdc_ncm.h b/include/linux/usb/cdc_ncm.h
index f7cb3ddce7fb..2d207cb4837d 100644
--- a/include/linux/usb/cdc_ncm.h
+++ b/include/linux/usb/cdc_ncm.h
@@ -53,8 +53,8 @@
 #define USB_CDC_NCM_NDP32_LENGTH_MIN		0x20
 
 /* Maximum NTB length */
-#define	CDC_NCM_NTB_MAX_SIZE_TX			32768	/* bytes */
-#define	CDC_NCM_NTB_MAX_SIZE_RX			32768	/* bytes */
+#define	CDC_NCM_NTB_MAX_SIZE_TX			65536	/* bytes */
+#define	CDC_NCM_NTB_MAX_SIZE_RX			65536	/* bytes */
 
 /* Initial NTB length */
 #define	CDC_NCM_NTB_DEF_SIZE_TX			16384	/* bytes */
-- 
2.36.1


  reply	other threads:[~2022-07-19  6:25 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-14 12:02 [PATCH v2 1/2] net/cdc_ncm: Enable ZLP for DisplayLink ethernet devices Łukasz Spintzyk
2022-07-14 12:02 ` [PATCH v2 2/2] net/cdc_ncm: Increase NTB max RX/TX values to 64kb Łukasz Spintzyk
2022-07-14 12:20   ` Greg KH
2022-07-14 12:19 ` [PATCH v2 1/2] net/cdc_ncm: Enable ZLP for DisplayLink ethernet devices Greg KH
2022-07-18 12:36   ` [PATCH v3 " Łukasz Spintzyk
2022-07-18 12:36     ` [PATCH v3 2/2] net/cdc_ncm: Increase NTB max RX/TX values to 64kb Łukasz Spintzyk
2022-07-18 14:40       ` Greg KH
2022-07-19  6:24         ` [PATCH v4 1/2] net/cdc_ncm: Enable ZLP for DisplayLink ethernet devices Łukasz Spintzyk
2022-07-19  6:24           ` Łukasz Spintzyk [this message]
2022-07-19 11:36             ` [PATCH v4 2/2] net/cdc_ncm: Increase NTB max RX/TX values to 64kb Greg KH
2022-07-19 11:36           ` [PATCH v4 1/2] net/cdc_ncm: Enable ZLP for DisplayLink ethernet devices Greg KH
2022-07-18 14:40     ` [PATCH v3 " Greg KH
2022-07-19  8:45 ` [PATCH v2 " Oliver Neukum
2022-07-20  6:05   ` [PATCH v5 " Łukasz Spintzyk
2022-07-20  6:05     ` [PATCH v5 2/2] net/cdc_ncm: Increase NTB max RX/TX values to 64kb Łukasz Spintzyk
2022-07-21 13:50     ` [PATCH v5 1/2] net/cdc_ncm: Enable ZLP for DisplayLink ethernet devices patchwork-bot+netdevbpf

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=20220719062452.25507-2-lukasz.spintzyk@synaptics.com \
    --to=lukasz.spintzyk@synaptics.com \
    --cc=Bernice.Chen@synaptics.com \
    --cc=kuba@kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=oliver@neukum.org \
    --cc=ppd-posix@synaptics.com \
    /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).