mlx4_en: Coalescing target is equal for all mtu's
authorYevgeny Petrilin <yevgenyp@mellanox.co.il>
Mon, 1 Jun 2009 23:23:13 +0000 (23:23 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 2 Jun 2009 09:29:06 +0000 (02:29 -0700)
The interrupt moderation should not depend on number of incoming
bytes, but on number of incoming packets.
The previous scheme caused very high interrupts rate for small
messages when big MTU was configured.

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/mlx4/en_ethtool.c
drivers/net/mlx4/en_netdev.c
drivers/net/mlx4/mlx4_en.h

index 91d81169e04e5869d4d6841c4a9045f67afda996..091f99052c91673f4536004e885cdebca05f598c 100644 (file)
@@ -268,8 +268,7 @@ static int mlx4_en_set_coalesce(struct net_device *dev,
 
        priv->rx_frames = (coal->rx_max_coalesced_frames ==
                           MLX4_EN_AUTO_CONF) ?
-                               MLX4_EN_RX_COAL_TARGET /
-                               priv->dev->mtu + 1 :
+                               MLX4_EN_RX_COAL_TARGET :
                                coal->rx_max_coalesced_frames;
        priv->rx_usecs = (coal->rx_coalesce_usecs ==
                          MLX4_EN_AUTO_CONF) ?
index fea65e78d6de449941a662f716c0a4bfa0790f5d..16a634ffbcdf663dfa093b0b8362c58f419eac79 100644 (file)
@@ -372,7 +372,7 @@ static void mlx4_en_set_default_moderation(struct mlx4_en_priv *priv)
         *   satisfy our coelsing target.
         * - moder_time is set to a fixed value.
         */
-       priv->rx_frames = MLX4_EN_RX_COAL_TARGET / priv->dev->mtu + 1;
+       priv->rx_frames = MLX4_EN_RX_COAL_TARGET;
        priv->rx_usecs = MLX4_EN_RX_COAL_TIME;
        en_dbg(INTR, priv, "Default coalesing params for mtu:%d - "
                           "rx_frames:%d rx_usecs:%d\n",
index 174ae86e9523a796c7a64cdfec5796138632ba8b..fcbfcfc1156861c7233d126b4b017f5380d48cf2 100644 (file)
@@ -143,8 +143,8 @@ enum {
 #define MLX4_EN_DEF_TX_RING_SIZE       1024
 #define MLX4_EN_DEF_RX_RING_SIZE       1024
 
-/* Target number of bytes to coalesce with interrupt moderation */
-#define MLX4_EN_RX_COAL_TARGET 0x20000
+/* Target number of packets to coalesce with interrupt moderation */
+#define MLX4_EN_RX_COAL_TARGET 44
 #define MLX4_EN_RX_COAL_TIME   0x10
 
 #define MLX4_EN_TX_COAL_PKTS   5