svn commit: r280161 - head/sys/dev/sfxge

Andrew Rybchenko arybchik at FreeBSD.org
Tue Mar 17 08:16:38 UTC 2015


Author: arybchik
Date: Tue Mar 17 08:16:37 2015
New Revision: 280161
URL: https://svnweb.freebsd.org/changeset/base/280161

Log:
  sfxge: move deferred packet list statistics to dedicated node
  
  It is done to structure sysctl and do not mix with Tx queue statistics
  to be added.
  
  Sponsored by:   Solarflare Communications, Inc.
  Approved by:    gnn (mentor)

Modified:
  head/sys/dev/sfxge/sfxge_tx.c

Modified: head/sys/dev/sfxge/sfxge_tx.c
==============================================================================
--- head/sys/dev/sfxge/sfxge_tx.c	Tue Mar 17 08:14:46 2015	(r280160)
+++ head/sys/dev/sfxge/sfxge_tx.c	Tue Mar 17 08:16:37 2015	(r280161)
@@ -1380,11 +1380,13 @@ sfxge_tx_qinit(struct sfxge_softc *sc, u
     enum sfxge_txq_type type, unsigned int evq_index)
 {
 	char name[16];
+	struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(sc->dev);
 	struct sysctl_oid *txq_node;
 	struct sfxge_txq *txq;
 	struct sfxge_evq *evq;
 #ifdef SFXGE_HAVE_MQ
 	struct sfxge_tx_dpl *stdp;
+	struct sysctl_oid *dpl_node;
 #endif
 	efsys_mem_t *esmp;
 	unsigned int nmaps;
@@ -1433,10 +1435,8 @@ sfxge_tx_qinit(struct sfxge_softc *sc, u
 	}
 
 	snprintf(name, sizeof(name), "%u", txq_index);
-	txq_node = SYSCTL_ADD_NODE(
-		device_get_sysctl_ctx(sc->dev),
-		SYSCTL_CHILDREN(sc->txqs_node),
-		OID_AUTO, name, CTLFLAG_RD, NULL, "");
+	txq_node = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(sc->txqs_node),
+				   OID_AUTO, name, CTLFLAG_RD, NULL, "");
 	if (txq_node == NULL) {
 		rc = ENOMEM;
 		goto fail_txq_node;
@@ -1476,21 +1476,25 @@ sfxge_tx_qinit(struct sfxge_softc *sc, u
 
 	SFXGE_TXQ_LOCK_INIT(txq, device_get_nameunit(sc->dev), txq_index);
 
-	SYSCTL_ADD_UINT(device_get_sysctl_ctx(sc->dev),
-			SYSCTL_CHILDREN(txq_node), OID_AUTO,
-			"dpl_get_count", CTLFLAG_RD | CTLFLAG_STATS,
+	dpl_node = SYSCTL_ADD_NODE(ctx, SYSCTL_CHILDREN(txq_node), OID_AUTO,
+				   "dpl", CTLFLAG_RD, NULL,
+				   "Deferred packet list statistics");
+	if (dpl_node == NULL) {
+		rc = ENOMEM;
+		goto fail_dpl_node;
+	}
+
+	SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(dpl_node), OID_AUTO,
+			"get_count", CTLFLAG_RD | CTLFLAG_STATS,
 			&stdp->std_get_count, 0, "");
-	SYSCTL_ADD_UINT(device_get_sysctl_ctx(sc->dev),
-			SYSCTL_CHILDREN(txq_node), OID_AUTO,
-			"dpl_get_non_tcp_count", CTLFLAG_RD | CTLFLAG_STATS,
+	SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(dpl_node), OID_AUTO,
+			"get_non_tcp_count", CTLFLAG_RD | CTLFLAG_STATS,
 			&stdp->std_get_non_tcp_count, 0, "");
-	SYSCTL_ADD_UINT(device_get_sysctl_ctx(sc->dev),
-			SYSCTL_CHILDREN(txq_node), OID_AUTO,
-			"dpl_get_hiwat", CTLFLAG_RD | CTLFLAG_STATS,
+	SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(dpl_node), OID_AUTO,
+			"get_hiwat", CTLFLAG_RD | CTLFLAG_STATS,
 			&stdp->std_get_hiwat, 0, "");
-	SYSCTL_ADD_UINT(device_get_sysctl_ctx(sc->dev),
-			SYSCTL_CHILDREN(txq_node), OID_AUTO,
-			"dpl_put_hiwat", CTLFLAG_RD | CTLFLAG_STATS,
+	SYSCTL_ADD_UINT(ctx, SYSCTL_CHILDREN(dpl_node), OID_AUTO,
+			"put_hiwat", CTLFLAG_RD | CTLFLAG_STATS,
 			&stdp->std_put_hiwat, 0, "");
 #endif
 
@@ -1501,6 +1505,7 @@ sfxge_tx_qinit(struct sfxge_softc *sc, u
 
 	return (0);
 
+fail_dpl_node:
 fail_tx_dpl_put_max:
 fail_tx_dpl_get_max:
 fail3:


More information about the svn-src-head mailing list