From: Claudiu Manoil <claudiu.manoil@nxp.com>
To: "David S . Miller" <davem@davemloft.net>
Cc: Jakub Kicinski <kuba@kernel.org>, netdev@vger.kernel.org
Subject: [PATCH net-next v2 0/6] Add adaptive interrupt coalescing
Date: Fri, 17 Jul 2020 18:36:58 +0300 [thread overview]
Message-ID: <1595000224-6883-1-git-send-email-claudiu.manoil@nxp.com> (raw)
Apart from some related cleanup patches, this set
introduces in a straightforward way the support needed
to enable and configure interrupt coalescing for ENETC.
Patch 5 introduces the support needed for configuring the
interrupt coalescing parameters and for switching between
moderated (int. coalescing) and per-packet interrupt modes.
When interrupt coalescing is enabled the Rx/Tx time
thresholds are configurable, packet thresholds are fixed.
To make this work reliably, patch 5 uses the traffic
pause procedure introduced in patch 2.
Patch 6 adds DIM (Dynamic Interrupt Moderation) to implement
adaptive coalescing based on time thresholds, for the Rx 'channel'.
On the Tx side a default optimal value is used instead, optimized for
TCP traffic over 1G and 2.5G links. This default 'optimal' value can
be overridden anytime via 'ethtool -C tx-usecs'.
netperf -t TCP_MAERTS measurements show a significant CPU load
reduction correlated w/ reduced interrupt rates. For the
measurement results refer to the comments in patch 6.
v2: Replaced Tx DIM with predefined optimal value, giving
better results. This was also suggested by Jakub (cc).
Switched order of patches 4 and 5, for better grouping.
Claudiu Manoil (6):
enetc: Refine buffer descriptor ring sizes
enetc: Factor out the traffic start/stop procedures
enetc: Fix interrupt coalescing register naming
enetc: Drop redundant ____cacheline_aligned_in_smp
enetc: Add interrupt coalescing support
enetc: Add adaptive interrupt coalescing
drivers/net/ethernet/freescale/enetc/Kconfig | 2 +
drivers/net/ethernet/freescale/enetc/enetc.c | 156 ++++++++++++++----
drivers/net/ethernet/freescale/enetc/enetc.h | 37 ++++-
.../ethernet/freescale/enetc/enetc_ethtool.c | 91 +++++++++-
.../net/ethernet/freescale/enetc/enetc_hw.h | 23 ++-
5 files changed, 265 insertions(+), 44 deletions(-)
--
2.17.1
next reply other threads:[~2020-07-17 15:37 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-17 15:36 Claudiu Manoil [this message]
2020-07-17 15:36 ` [PATCH net-next v2 1/6] enetc: Refine buffer descriptor ring sizes Claudiu Manoil
2020-07-17 15:37 ` [PATCH net-next v2 2/6] enetc: Factor out the traffic start/stop procedures Claudiu Manoil
2020-07-17 15:37 ` [PATCH net-next v2 3/6] enetc: Fix interrupt coalescing register naming Claudiu Manoil
2020-07-17 15:37 ` [PATCH net-next v2 4/6] enetc: Drop redundant ____cacheline_aligned_in_smp Claudiu Manoil
2020-07-17 15:37 ` [PATCH net-next v2 5/6] enetc: Add interrupt coalescing support Claudiu Manoil
2020-07-17 19:32 ` Jakub Kicinski
2020-07-18 17:20 ` Claudiu Manoil
2020-07-20 16:58 ` Jakub Kicinski
2020-07-21 8:00 ` Claudiu Manoil
2020-07-17 15:37 ` [PATCH net-next v2 6/6] enetc: Add adaptive interrupt coalescing Claudiu Manoil
2020-07-17 19:30 ` Jakub Kicinski
2020-07-18 17:20 ` Claudiu Manoil
2020-07-21 8:05 ` Claudiu Manoil
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=1595000224-6883-1-git-send-email-claudiu.manoil@nxp.com \
--to=claudiu.manoil@nxp.com \
--cc=davem@davemloft.net \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.