On 6/26/2019 12:57 AM, Sagi Grimberg wrote:
> Question, do any other nics use or plan to use this?
Yes, see the changed files list under drivers/net for existing usage.
>
> Reviewed-by: Sagi Grimberg
Renamed macros in use by external drivers.
Signed-off-by: Tal Gilboa
---
drivers/net/ethernet/broadcom/bcmsysport.c | 4 ++--
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_dim.c | 2 +-
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4
In order to avoid confusion between the function and the similarly
named struct.
In preparation for removing the 'net' prefix from dim members.
Signed-off-by: Tal Gilboa
---
drivers/net/ethernet/broadcom/bcmsysport.c| 4 ++--
drivers/net/ethernet/broadcom/bnxt/bnxt.c
From: Yamin Friedman
Added a measurement of completions per/msec to allow for completion based dim
algorithms.
Signed-off-by: Yamin Friedman
Signed-off-by: Tal Gilboa
---
drivers/net/ethernet/broadcom/bcmsysport.c| 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 1
changes in such a way as to no longer require high moderation in order to avoid
long latencies.
blk_dim.h will be called from the ib_core module.
Signed-off-by: Yamin Friedman
Signed-off-by: Tal Gilboa
---
MAINTAINERS | 1 +
include/linux/blk_dim.h | 56
lib
Moved all logic from dim.h and net_dim.h to dim.c and net_dim.c.
Signed-off-by: Tal Gilboa
---
MAINTAINERS | 2 +
include/linux/dim.h | 86 +++---
include/linux/net_dim.h | 182 ++---
lib/Kconfig | 7 ++
lib/Makefile
Removed 'net' prefix from functions and structs used by external drivers.
Signed-off-by: Tal Gilboa
---
drivers/net/ethernet/broadcom/bcmsysport.c| 16 +-
drivers/net/ethernet/broadcom/bcmsysport.h| 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 10 +++
d
Only renaming functions and structs which aren't used by an external code.
Signed-off-by: Tal Gilboa
---
include/linux/dim.h | 86 -
include/linux/net_dim.h | 86 -
2 files changed, 86 insertions(+
two separate solutions)
- Readiness for future implementations
Tal Gilboa (6):
linux/dim: Move logic to dim.h
linux/dim: Remove "net" prefix from internal DIM members
linux/dim: Rename externally exposed macros
linux/dim: Rename net_dim_sample() to net_dim_create_sample()
linux
In preparation for supporting more implementations of the DIM
algorithm, I'm moving what would become common logic to a common
library. Downstream DIM implementations will use the common lib
for their implementation.
Signed-off-by: Tal Gilboa
---
include/linux/dim.h
degredation of other flow parameters.
The blk_dim algorithm was designed to measure the effectiveness of moderation
on the flow in a general way and thus should be appropriate for all RDMA storage
protocols.
Signed-off-by: Yamin Friedman
Signed-off-by: Tal Gilboa
---
drivers/infiniband/core/cq.c
t;net/dim: use struct net_dim_sample as arg to net_dim")
Signed-off-by: Tal Gilboa
Reviewed-by: Tariq Toukan
---
include/linux/net_dim.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/linux/net_dim.h b/include/linux/net_dim.h
index c79e859..fd45838 100644
--- a/include/linux
On 9/10/2018 10:22 PM, Florian Fainelli wrote:
On 09/10/2018 02:14 AM, Jose Abreu wrote:
This follows David Miller advice and tries to fix coalesce timer in
multi-queue scenarios.
We are now using per-queue coalesce values and per-queue TX timer.
Coalesce timer default values was changed to 1m
wouldn't increase for these scenarios. There might be a slight
degradation in bandwidth for single stream with large message sizes, since
net.ipv4.tcp_limit_output_bytes is limiting the allowed TX traffic, but
with many streams performance is always improved.
Signed-off-by: Tal Gilboa
Review
t; field from struct net_dim and applied mlx5e structural
suggestions (suggested by SaeedM).
v2: Rebase over proper tree.
v1: Fix compilation issues due to missed function renaming.
Tal Gilboa (3):
net/dim: Rename *_get_profile() functions to *_get_rx_moderation()
net/dim: Support adaptive TX mo
47Gb/s).
Signed-off-by: Tal Gilboa
Reviewed-by: Tariq Toukan
Acked-by: Saeed Mahameed
---
drivers/net/ethernet/mellanox/mlx5/core/en.h | 4 ++
drivers/net/ethernet/mellanox/mlx5/core/en_dim.c | 24 +--
.../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 35 +++---
driver
Preparation for introducing adaptive TX to net DIM.
Signed-off-by: Tal Gilboa
Reviewed-by: Tariq Toukan
---
drivers/net/ethernet/broadcom/bcmsysport.c| 6 +++---
drivers/net/ethernet/broadcom/bnxt/bnxt_dim.c | 8
drivers/net/ethernet/broadcom/genet/bcmgenet.c| 6
On 4/5/2018 4:13 PM, Geert Uytterhoeven wrote:
Hi Tal,
With gcc-4.1.2:
drivers/net/ethernet/broadcom/bcmsysport.c: In function ‘bcm_sysport_poll’:
include/linux/net_dim.h:354: warning: ‘curr_stats.ppms’ may be
used uninitialized in this function
include/linux/net_dim.h:354: warni
On 4/2/2018 11:25 PM, Keller, Jacob E wrote:
-Original Message-
From: Bjorn Helgaas [mailto:helg...@kernel.org]
Sent: Monday, April 02, 2018 12:58 PM
To: Keller, Jacob E
Cc: Tal Gilboa ; Tariq Toukan ; Ariel
Elior ; Ganesh Goudar ;
Kirsher, Jeffrey T ; everest-linux...@cavium.com
On 4/2/2018 5:27 PM, David Miller wrote:
From: Tal Gilboa
Date: Mon, 2 Apr 2018 16:59:30 +0300
Net DIM is a library designed for dynamic interrupt moderation. It was
implemented and optimized with receive side interrupts in mind, since these
are usually the CPU expensive ones. This patch-set
On 4/2/2018 5:05 PM, Bjorn Helgaas wrote:
On Mon, Apr 02, 2018 at 10:34:58AM +0300, Tal Gilboa wrote:
On 4/2/2018 3:40 AM, Bjorn Helgaas wrote:
On Sun, Apr 01, 2018 at 11:38:53PM +0300, Tal Gilboa wrote:
On 3/31/2018 12:05 AM, Bjorn Helgaas wrote:
From: Tal Gilboa
Add
Preparation for introducing adaptive TX to net DIM.
Signed-off-by: Tal Gilboa
---
drivers/net/ethernet/broadcom/bcmsysport.c| 6 +++---
drivers/net/ethernet/broadcom/bnxt/bnxt_dim.c | 8
drivers/net/ethernet/broadcom/genet/bcmgenet.c| 6 +++---
drivers/net/ethernet
Preparation for introducing adaptive TX to net DIM.
Signed-off-by: Tal Gilboa
---
drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 -
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 10 +++---
drivers/net/ethernet/mellanox/mlx5/core/en_main.c| 6 +++---
drivers/net
moderation enabled.
Signed-off-by: Tal Gilboa
---
include/linux/net_dim.h | 64 +++--
1 file changed, 51 insertions(+), 13 deletions(-)
diff --git a/include/linux/net_dim.h b/include/linux/net_dim.h
index e6623cf..95a7a2f 100644
--- a/include/linux/net_d
20-70%.
Performance improvement (ConnectX-5 100GbE, x86)
Bandwidth: increased up to 40% (1024B with 10s of streams).
Interrupt rate: reduced up to 50% (1024B with 1000s of streams).
Signed-off-by: Tal Gilboa
---
drivers/net/ethernet/mellanox/mlx5/core/en.h | 4 +++
drivers/net/ethernet/mellanox/mlx5
driver.
Using adaptive TX behavior would reduce interrupt rate for multiple scenarios.
Furthermore, it is essential for increasing bandwidth on cases where payload
aggregation is required.
v2: Rebased over proper tree.
v1: Fix compilation issues due to missed function renaming.
Tal Gilboa (4):
net
On 4/2/2018 3:40 AM, Bjorn Helgaas wrote:
On Sun, Apr 01, 2018 at 11:38:53PM +0300, Tal Gilboa wrote:
On 3/31/2018 12:05 AM, Bjorn Helgaas wrote:
From: Tal Gilboa
Add pcie_bandwidth_capable() to compute the max link bandwidth supported by
a device, based on the max link speed and width
On 3/31/2018 12:05 AM, Bjorn Helgaas wrote:
From: Tal Gilboa
Add pcie_bandwidth_available() to compute the bandwidth available to a
device. This may be limited by the device itself or by a slower upstream
link leading to the device.
The available bandwidth at each link along the path is
On 3/31/2018 12:05 AM, Bjorn Helgaas wrote:
From: Tal Gilboa
Add pcie_bandwidth_capable() to compute the max link bandwidth supported by
a device, based on the max link speed and width, adjusted by the encoding
overhead.
The maximum bandwidth of the link is computed as:
max_link_speed
On 4/1/2018 7:33 PM, Florian Fainelli wrote:
Le 03/31/18 à 23:48, Tal Gilboa a écrit :
Fixes: 8c6d6895bebb ("net/dim: Rename *_get_profile() functions to
*_get_rx_moderation()")
Signed-off-by: Tal Gilboa
I think David just backed out your entire patch series adding TX DIM so
you
Preparation for introducing adaptive TX to net DIM.
Signed-off-by: Tal Gilboa
---
drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 -
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 10 +++---
drivers/net/ethernet/mellanox/mlx5/core/en_main.c| 6 +++---
drivers/net
20-70%.
Performance improvement (ConnectX-5 100GbE, x86)
Bandwidth: increased up to 40% (1024B with 10s of streams).
Interrupt rate: reduced up to 50% (1024B with 1000s of streams).
Signed-off-by: Tal Gilboa
---
drivers/net/ethernet/mellanox/mlx5/core/en.h | 4 +++
drivers/net/ethernet/mellanox/mlx5
Preparation for introducing adaptive TX to net DIM.
Signed-off-by: Tal Gilboa
---
drivers/net/ethernet/broadcom/bcmsysport.c| 6 +++---
drivers/net/ethernet/broadcom/bnxt/bnxt_dim.c | 8
drivers/net/ethernet/broadcom/genet/bcmgenet.c| 6 +++---
drivers/net/ethernet
2 3/3] net: bcmgenet: Fix coalescing settings handling" patch.
v1: Fix compilation issues due to missed function renaming.
Tal Gilboa (4):
net/dim: Rename *_get_profile() functions to *_get_rx_moderation()
net/dim: Add "enabled" field to net_dim struct
net/dim: Support adaptive
moderation enabled.
Signed-off-by: Tal Gilboa
---
include/linux/net_dim.h | 64 +++--
1 file changed, 51 insertions(+), 13 deletions(-)
diff --git a/include/linux/net_dim.h b/include/linux/net_dim.h
index d34fbfe..9449a61 100644
--- a/include/linux/net_d
On 4/1/2018 6:19 AM, David Miller wrote:
From: David Miller
Date: Sat, 31 Mar 2018 22:02:55 -0400 (EDT)
From: Tal Gilboa
Date: Fri, 30 Mar 2018 09:37:29 +0300
Net DIM is a library designed for dynamic interrupt moderation. It was
implemented and optimized with receive side interrupts in
Fixes: 8c6d6895bebb ("net/dim: Rename *_get_profile() functions to
*_get_rx_moderation()")
Signed-off-by: Tal Gilboa
---
drivers/net/ethernet/broadcom/bcmsysport.c | 4 ++--
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
On 3/30/2018 9:37 AM, Tal Gilboa wrote:
Net DIM is a library designed for dynamic interrupt moderation. It was
implemented and optimized with receive side interrupts in mind, since these
are usually the CPU expensive ones. This patch-set introduces adaptive transmit
interrupt moderation to net
Preparation for introducing adaptive TX to net DIM.
Signed-off-by: Tal Gilboa
---
drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 -
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 10 +++---
drivers/net/ethernet/mellanox/mlx5/core/en_main.c| 6 +++---
drivers/net
moderation enabled.
Signed-off-by: Tal Gilboa
---
include/linux/net_dim.h | 64 +++--
1 file changed, 51 insertions(+), 13 deletions(-)
diff --git a/include/linux/net_dim.h b/include/linux/net_dim.h
index d34fbfe..9449a61 100644
--- a/include/linux/net_d
20-70%.
Performance improvement (ConnectX-5 100GbE, x86)
Bandwidth: increased up to 40% (1024B with 10s of streams).
Interrupt rate: reduced up to 50% (1024B with 1000s of streams).
Signed-off-by: Tal Gilboa
---
drivers/net/ethernet/mellanox/mlx5/core/en.h | 4 +++
drivers/net/ethernet/mellanox/mlx5
driver.
Using adaptive TX behavior would reduce interrupt rate for multiple scenarios.
Furthermore, it is essential for increasing bandwidth on cases where payload
aggregation is required.
Tal Gilboa (4):
net/dim: Rename *_get_profile() functions to *_get_rx_moderation()
net/dim: Add "en
Preparation for introducing adaptive TX to net DIM.
Signed-off-by: Tal Gilboa
---
drivers/net/ethernet/broadcom/bcmsysport.c| 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_dim.c | 8
drivers/net/ethernet/broadcom/genet/bcmgenet.c| 2 +-
drivers/net/ethernet/mellanox
clude/linux")
Signed-off-by: Tal Gilboa
---
include/linux/net_dim.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/net_dim.h b/include/linux/net_dim.h
index bebeaad..29ed8fd 100644
--- a/include/linux/net_dim.h
+++ b/include/linux/net_dim.h
@@ -231,7 +231,7
g packets;
unsigned long bytes;
- u32 coal_usecs;
- u32 coal_pkts;
struct net_dim dim;
};
@@ -755,6 +753,8 @@ struct bcm_sysport_priv {
unsigned intrx_c_index;
struct bcm_sysport_net_dim dim;
+ u32 rx_max_coalesced_frames;
+ u32 rx_coalesce_usecs;
/* PHY device */
struct device_node *phy_dn;
Reviewed-by: Tal Gilboa
- u32 coal_pkts;
struct net_dim dim;
};
@@ -598,6 +596,8 @@ struct bcmgenet_rx_ring {
unsigned intend_ptr;/* Rx ring end CB ptr */
unsigned intold_discards;
struct bcmgenet_net_dim dim;
+ u32 rx_max_coalesced_frames;
+ u32 rx_coalesce_usecs;
void (*int_enable)(struct bcmgenet_rx_ring *);
void (*int_disable)(struct bcmgenet_rx_ring *);
struct bcmgenet_priv *priv;
Reviewed-by: Tal Gilboa
On 3/27/2018 10:47 PM, Florian Fainelli wrote:
There were a number of issues with setting the RX coalescing parameters:
- we would not be preserving values that would have been configured
across close/open calls, instead we would always reset to no timeout
and 1 interrupt per packet, this
On 3/27/2018 10:47 PM, Florian Fainelli wrote:
There were a number of issues with setting the RX coalescing parameters:
- we would not be preserving values that would have been configured
across close/open calls, instead we would always reset to no timeout
and 1 interrupt per packet, this
unsigned long packets;/* packets statistics */
unsigned long bytes; /* bytes statistics */
- struct bcm_sysport_net_dim dim; /* Net DIM context */
unsigned intswitch_queue; /* switch port queue number */
unsigned intswitch_port;/* switch port queue number */
boolinspect;/* inspect switch port and queue */
Reviewed-by: Tal Gilboa
On 3/22/2018 8:51 PM, David Miller wrote:
From: Tal Gilboa
Date: Wed, 21 Mar 2018 20:33:45 +0200
Net DIM is a generic algorithm, purposed for dynamically
optimizing network devices interrupt moderation. This
document describes how it works and how to use it.
Signed-off-by: Tal Gilboa
On 3/27/2018 1:29 AM, Florian Fainelli wrote:
On 03/26/2018 03:04 PM, Florian Fainelli wrote:
On 03/26/2018 02:16 PM, Tal Gilboa wrote:
On 3/23/2018 4:19 AM, Florian Fainelli wrote:
Hi all,
This patch series adds adaptive interrupt coalescing for the Gigabit
Ethernet
drivers SYSTEMPORT and
On 3/27/2018 12:36 AM, Florian Fainelli wrote:
On 03/26/2018 02:22 PM, Tal Gilboa wrote:
On 3/23/2018 4:19 AM, Florian Fainelli wrote:
Implement support for adaptive RX and TX interrupt coalescing using
net_dim. We have each of our TX ring and our single RX ring implement a
bcm_sysport_net_dim
On 3/23/2018 4:19 AM, Florian Fainelli wrote:
Unlike the moder modern SYSTEMPORT hardware, we do not have a
configurable TDMA timeout, which limits us to implement adaptive RX
interrupt coalescing only. We have each of our RX rings implement a
bcmgenet_net_dim structure which holds an interrupt c
On 3/23/2018 4:19 AM, Florian Fainelli wrote:
Implement support for adaptive RX and TX interrupt coalescing using
net_dim. We have each of our TX ring and our single RX ring implement a
bcm_sysport_net_dim structure which holds an interrupt counter, number
of packets, bytes, and a container for a
On 3/23/2018 4:19 AM, Florian Fainelli wrote:
Hi all,
This patch series adds adaptive interrupt coalescing for the Gigabit Ethernet
drivers SYSTEMPORT and GENET.
This really helps lower the interrupt count and system load, as measured by
vmstat for a Gigabit TCP RX session:
I don't see an imp
On 3/21/2018 8:33 PM, Randy Dunlap wrote:
On 03/21/2018 11:20 AM, Marcelo Ricardo Leitner wrote:
On Wed, Mar 21, 2018 at 11:30:29AM +0200, Tal Gilboa wrote:
...
+Dynamic Interrupt Moderation (DIM) (in networking) refers to changing the
interrupt
+moderation configuration of a channel in order
Net DIM is a generic algorithm, purposed for dynamically
optimizing network devices interrupt moderation. This
document describes how it works and how to use it.
Signed-off-by: Tal Gilboa
---
Documentation/networking/net_dim.txt | 174 +++
1 file changed, 174
Net DIM is a generic algorithm, purposed for dynamically
optimizing network devices interrupt moderation. This
document describes how it works and how to use it.
Signed-off-by: Tal Gilboa
---
Documentation/networking/net_dim.txt | 174 +++
1 file changed, 174
Net DIM is a generic algorithm, purposed for dynamically
optimizing network devices interrupt moderation. This
document describes how it works and how to use it.
Signed-off-by: Tal Gilboa
---
Documentation/networking/net_dim.txt | 174 +++
1 file changed, 174
On 2/6/2018 5:52 PM, Eric Dumazet wrote:
On Tue, 2018-02-06 at 15:22 +, David Laight wrote:
From: Eric Dumazet
Sent: 06 February 2018 14:20
...
Please give exact details.
Sending 64, 128, 256 or 512 bytes at a time on TCP_STREAM makes little sense.
We are not optimizing stack for patholo
On 1/24/2018 5:09 PM, Eric Dumazet wrote:
On Wed, 2018-01-24 at 16:42 +0200, Tal Gilboa wrote:
Hi Eric,
My choice of words in my comment was misplaced, and I apologies. It
completely missed the point. I understand, of course, the importance of
optimizing real-life scenarios.
We are currently
suggestion below.
We will contact you if and when we have a real concern.
Thanks.
On 1/22/2018 1:47 AM, Eric Dumazet wrote:
On Sun, Jan 21, 2018 at 12:52 PM, Tal Gilboa wrote:
Hi Eric,
We have noticed a degradation on both of our drivers (mlx4 and mlx5) when
running TCP. Exact scenario is single
Hi Eric,
We have noticed a degradation on both of our drivers (mlx4 and mlx5)
when running TCP. Exact scenario is single stream TCP with 1KB packets.
The degradation is a steady 50% drop.
We tracked the offending commit to be:
75c119a ("tcp: implement rb-tree based retransmit queue")
Since mlx
prevent this division for both ppms and epms.
Fixes: c3164d2fc48f ("net/mlx5e: Added BW check for DIM decision mechanism")
Fixes: 4c4dbb4a7363 ("net/mlx5e: Move dynamic interrupt coalescing code to
include/linux")
Reported-by: Helmut Grauer
Signed-off-by: Talat Batheesh
Signe
actually set coalesce settings
for the driver
Credit to Rob Rice and Lee Reed for doing some of the initial proof of
concept and testing for this patch and Tal Gilboa and Or Gerlitz for
their comments, etc on this set.
v4: Fix build breakage for VF representers noticed by kbuild test robot
Rob Rice and Lee Reed for doing some of the initial proof of
concept and testing for this patch and Tal Gilboa and Or Gerlitz for
their comments, etc on this set.
v4: Fix build breakage for VF representers noticed by kbuild test robot.
Thanks for being so courteous, kbuild test robot!
v3: bnxt_en
handles dynamic interrupt
moderation. Also change all references from 'am' to 'dim' when used as
local variables and add generic profile references.
Signed-off-by: Andy Gospodarek
Acked-by: Tal Gilboa
Acked-by: Saeed Mahameed
---
drivers/net/ethernet/mellanox/mlx5/c
On 1/9/2018 8:13 AM, Andy Gospodarek wrote:
From: Andy Gospodarek
This converts the dynamic interrupt moderation library from the mlx5e
driver into a library so it can be used by any driver. The penultimate
patch in this set adds support for thiw new dynamic interrupt moderation
library in the
d as
local variables.
Signed-off-by: Andy Gospodarek
Acked-by: Tal Gilboa
Acked-by: Saeed Mahameed
---
drivers/net/ethernet/mellanox/mlx5/core/en.h | 12 +-
drivers/net/ethernet/mellanox/mlx5/core/en_dim.c | 14 +-
.../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 12 +-
drivers/n
needed by this library
- create function that can be called to actually set coalesce settings
for the driver
Credit to Rob Rice and Lee Reed for doing some of the initial proof of
concept and testing for this patch and Tal Gilboa and Or Gerlitz for their
comments, etc on this set.
Andy Gospodarek (10
Thanks for doing this, would make future changes easier.
On 1/4/2018 10:21 PM, Andy Gospodarek wrote:
From: Andy Gospodarek
Simplify the arguments net_dim() by formatting them into a struct
net_dim_sample before calling the function.
On 1/4/2018 10:21 PM, Andy Gospodarek wrote:
From: Andy Gospodarek
Change all mlx5_am* and MLX_AM* references to net_dim and NET_DIM,
MLX_AM->MLX5_AM
cq_period_mode = enable ?
- MLX5_CQ_PERIOD_MODE_START_FROM_CQE :
- MLX5_CQ_PERIOD_MODE_START_FROM_EQE;
+
72 matches
Mail list logo