mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-03 00:46:40 +07:00
mlx4_en: Added Ethtool support for TX Interrupt coalescing
Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
da882c1f2e
commit
a19a848a45
@ -359,8 +359,8 @@ static int mlx4_en_get_coalesce(struct net_device *dev,
|
||||
{
|
||||
struct mlx4_en_priv *priv = netdev_priv(dev);
|
||||
|
||||
coal->tx_coalesce_usecs = 0;
|
||||
coal->tx_max_coalesced_frames = 0;
|
||||
coal->tx_coalesce_usecs = priv->tx_usecs;
|
||||
coal->tx_max_coalesced_frames = priv->tx_frames;
|
||||
coal->rx_coalesce_usecs = priv->rx_usecs;
|
||||
coal->rx_max_coalesced_frames = priv->rx_frames;
|
||||
|
||||
@ -388,6 +388,21 @@ static int mlx4_en_set_coalesce(struct net_device *dev,
|
||||
MLX4_EN_RX_COAL_TIME :
|
||||
coal->rx_coalesce_usecs;
|
||||
|
||||
/* Setting TX coalescing parameters */
|
||||
if (coal->tx_coalesce_usecs != priv->tx_usecs ||
|
||||
coal->tx_max_coalesced_frames != priv->tx_frames) {
|
||||
priv->tx_usecs = coal->tx_coalesce_usecs;
|
||||
priv->tx_frames = coal->tx_max_coalesced_frames;
|
||||
for (i = 0; i < priv->tx_ring_num; i++) {
|
||||
priv->tx_cq[i].moder_cnt = priv->tx_frames;
|
||||
priv->tx_cq[i].moder_time = priv->tx_usecs;
|
||||
if (mlx4_en_set_cq_moder(priv, &priv->tx_cq[i])) {
|
||||
en_warn(priv, "Failed changing moderation "
|
||||
"for TX cq %d\n", i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Set adaptive coalescing params */
|
||||
priv->pkt_rate_low = coal->pkt_rate_low;
|
||||
priv->rx_usecs_low = coal->rx_coalesce_usecs_low;
|
||||
|
@ -429,6 +429,8 @@ static void mlx4_en_set_default_moderation(struct mlx4_en_priv *priv)
|
||||
*/
|
||||
priv->rx_frames = MLX4_EN_RX_COAL_TARGET;
|
||||
priv->rx_usecs = MLX4_EN_RX_COAL_TIME;
|
||||
priv->tx_frames = MLX4_EN_TX_COAL_PKTS;
|
||||
priv->tx_usecs = MLX4_EN_TX_COAL_TIME;
|
||||
en_dbg(INTR, priv, "Default coalesing params for mtu:%d - "
|
||||
"rx_frames:%d rx_usecs:%d\n",
|
||||
priv->dev->mtu, priv->rx_frames, priv->rx_usecs);
|
||||
@ -445,8 +447,8 @@ static void mlx4_en_set_default_moderation(struct mlx4_en_priv *priv)
|
||||
|
||||
for (i = 0; i < priv->tx_ring_num; i++) {
|
||||
cq = &priv->tx_cq[i];
|
||||
cq->moder_cnt = MLX4_EN_TX_COAL_PKTS;
|
||||
cq->moder_time = MLX4_EN_TX_COAL_TIME;
|
||||
cq->moder_cnt = priv->tx_frames;
|
||||
cq->moder_time = priv->tx_usecs;
|
||||
}
|
||||
|
||||
/* Reset auto-moderation params */
|
||||
|
Loading…
Reference in New Issue
Block a user