svn commit: r272060 - head/sys/ofed/drivers/net/mlx4

Hans Petter Selasky hselasky at FreeBSD.org
Wed Sep 24 08:28:36 UTC 2014


Author: hselasky
Date: Wed Sep 24 08:28:34 2014
New Revision: 272060
URL: http://svnweb.freebsd.org/changeset/base/272060

Log:
  Update code to use new network counter API.
  Fix some minor compile warnings while at it.
  
  Sponsored by:	Mellanox Technologies
  Suggested by:	glebius@
  MFC after:	1 week

Modified:
  head/sys/ofed/drivers/net/mlx4/en_port.c
  head/sys/ofed/drivers/net/mlx4/en_tx.c
  head/sys/ofed/drivers/net/mlx4/fw.h
  head/sys/ofed/drivers/net/mlx4/mlx4_en.h
  head/sys/ofed/drivers/net/mlx4/resource_tracker.c

Modified: head/sys/ofed/drivers/net/mlx4/en_port.c
==============================================================================
--- head/sys/ofed/drivers/net/mlx4/en_port.c	Wed Sep 24 08:18:11 2014	(r272059)
+++ head/sys/ofed/drivers/net/mlx4/en_port.c	Wed Sep 24 08:28:34 2014	(r272060)
@@ -546,17 +546,27 @@ int mlx4_en_DUMP_ETH_STATS(struct mlx4_e
 	}
 
 	if (!mlx4_is_mfunc(mdev->dev)) {
-		/* netdevice stats format */
-                dev                     = mdev->pndev[port];
-		dev->if_ipackets        = priv->pkstats.rx_packets;
-		dev->if_opackets        = priv->pkstats.tx_packets;
-		dev->if_ibytes          = priv->pkstats.rx_bytes;
-		dev->if_obytes          = priv->pkstats.tx_bytes;
-		dev->if_ierrors         = priv->pkstats.rx_errors;
-		dev->if_iqdrops         = priv->pkstats.rx_dropped;
-		dev->if_imcasts         = priv->pkstats.rx_multicast_packets;
-                dev->if_omcasts         = priv->pkstats.tx_multicast_packets;
-                dev->if_collisions      = 0;
+		if (reset == 0) {
+			/* netdevice stats format */
+			dev                     = mdev->pndev[port];
+			if_inc_counter(dev, IFCOUNTER_IPACKETS,
+			    priv->pkstats.rx_packets - priv->pkstats_last.rx_packets);
+			if_inc_counter(dev, IFCOUNTER_OPACKETS,
+			    priv->pkstats.tx_packets - priv->pkstats_last.tx_packets);
+			if_inc_counter(dev, IFCOUNTER_IBYTES,
+			    priv->pkstats.rx_bytes - priv->pkstats_last.rx_bytes);
+			if_inc_counter(dev, IFCOUNTER_OBYTES,
+			    priv->pkstats.tx_bytes - priv->pkstats_last.tx_bytes);
+			if_inc_counter(dev, IFCOUNTER_IERRORS,
+			    priv->pkstats.rx_errors - priv->pkstats_last.rx_errors);
+			if_inc_counter(dev, IFCOUNTER_IQDROPS,
+			    priv->pkstats.rx_dropped - priv->pkstats_last.rx_dropped);
+			if_inc_counter(dev, IFCOUNTER_IMCASTS,
+			    priv->pkstats.rx_multicast_packets - priv->pkstats_last.rx_multicast_packets);
+			if_inc_counter(dev, IFCOUNTER_OMCASTS,
+			    priv->pkstats.tx_multicast_packets - priv->pkstats_last.tx_multicast_packets);
+		}
+		priv->pkstats_last = priv->pkstats;
 	}
 
 	spin_unlock(&priv->stats_lock);

Modified: head/sys/ofed/drivers/net/mlx4/en_tx.c
==============================================================================
--- head/sys/ofed/drivers/net/mlx4/en_tx.c	Wed Sep 24 08:18:11 2014	(r272059)
+++ head/sys/ofed/drivers/net/mlx4/en_tx.c	Wed Sep 24 08:28:34 2014	(r272060)
@@ -1028,9 +1028,6 @@ mlx4_en_transmit_locked(struct ifnet *de
 		}
 		drbr_advance(dev, ring->br);
 		enqueued++;
-		dev->if_obytes += next->m_pkthdr.len;
-		if (next->m_flags & M_MCAST)
-			if_inc_counter(dev, IFCOUNTER_OMCASTS, 1);
 		if ((dev->if_drv_flags & IFF_DRV_RUNNING) == 0)
 			break;
 	}

Modified: head/sys/ofed/drivers/net/mlx4/fw.h
==============================================================================
--- head/sys/ofed/drivers/net/mlx4/fw.h	Wed Sep 24 08:18:11 2014	(r272059)
+++ head/sys/ofed/drivers/net/mlx4/fw.h	Wed Sep 24 08:28:34 2014	(r272060)
@@ -223,8 +223,6 @@ int mlx4_QUERY_HCA(struct mlx4_dev *dev,
 int mlx4_CLOSE_HCA(struct mlx4_dev *dev, int panic);
 int mlx4_map_cmd(struct mlx4_dev *dev, u16 op, struct mlx4_icm *icm, u64 virt);
 int mlx4_SET_ICM_SIZE(struct mlx4_dev *dev, u64 icm_size, u64 *aux_pages);
-int mlx4_MAP_ICM_AUX(struct mlx4_dev *dev, struct mlx4_icm *icm);
-int mlx4_UNMAP_ICM_AUX(struct mlx4_dev *dev);
 int mlx4_NOP(struct mlx4_dev *dev);
 int mlx4_MOD_STAT_CFG(struct mlx4_dev *dev, struct mlx4_mod_stat_cfg *cfg);
 void mlx4_opreq_action(struct work_struct *work);

Modified: head/sys/ofed/drivers/net/mlx4/mlx4_en.h
==============================================================================
--- head/sys/ofed/drivers/net/mlx4/mlx4_en.h	Wed Sep 24 08:18:11 2014	(r272059)
+++ head/sys/ofed/drivers/net/mlx4/mlx4_en.h	Wed Sep 24 08:28:34 2014	(r272060)
@@ -605,6 +605,7 @@ struct mlx4_en_priv {
 	struct delayed_work service_task;
 	struct mlx4_en_perf_stats pstats;
 	struct mlx4_en_pkt_stats pkstats;
+	struct mlx4_en_pkt_stats pkstats_last;
 	struct mlx4_en_flow_stats flowstats[MLX4_NUM_PRIORITIES];
 	struct mlx4_en_port_stats port_stats;
 	struct mlx4_en_vport_stats vport_stats;

Modified: head/sys/ofed/drivers/net/mlx4/resource_tracker.c
==============================================================================
--- head/sys/ofed/drivers/net/mlx4/resource_tracker.c	Wed Sep 24 08:18:11 2014	(r272059)
+++ head/sys/ofed/drivers/net/mlx4/resource_tracker.c	Wed Sep 24 08:28:34 2014	(r272060)
@@ -1843,7 +1843,7 @@ static int mac_alloc_res(struct mlx4_dev
 	int err = -EINVAL;
 	int port;
 	u64 mac;
-	u8 smac_index;
+	u8 smac_index = 0;
 
 	if (op != RES_OP_RESERVE_AND_MAP)
 		return err;


More information about the svn-src-all mailing list