Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Jan 2020 04:11:17 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r356823 - stable/12/sys/dev/md
Message-ID:  <202001170411.00H4BHZ0088281@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Fri Jan 17 04:11:17 2020
New Revision: 356823
URL: https://svnweb.freebsd.org/changeset/base/356823

Log:
  MFC r356315: Avoid duplicate I/O statistics accounting.
  
  Alike to geom_disk free the provider statistics structure and point GEOM
  toward local statistics.  It allows to save some CPU time.

Modified:
  stable/12/sys/dev/md/md.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/dev/md/md.c
==============================================================================
--- stable/12/sys/dev/md/md.c	Fri Jan 17 03:44:04 2020	(r356822)
+++ stable/12/sys/dev/md/md.c	Fri Jan 17 04:11:17 2020	(r356823)
@@ -1310,6 +1310,8 @@ mdinit(struct md_s *sc)
 	gp = g_new_geomf(&g_md_class, "md%d", sc->unit);
 	gp->softc = sc;
 	pp = g_new_providerf(gp, "md%d", sc->unit);
+	devstat_remove_entry(pp->stat);
+	pp->stat = NULL;
 	pp->flags |= G_PF_DIRECT_SEND | G_PF_DIRECT_RECEIVE;
 	pp->mediasize = sc->mediasize;
 	pp->sectorsize = sc->sectorsize;
@@ -1325,10 +1327,11 @@ mdinit(struct md_s *sc)
 	}
 	sc->gp = gp;
 	sc->pp = pp;
-	g_error_provider(pp, 0);
-	g_topology_unlock();
 	sc->devstat = devstat_new_entry("md", sc->unit, sc->sectorsize,
 	    DEVSTAT_ALL_SUPPORTED, DEVSTAT_TYPE_DIRECT, DEVSTAT_PRIORITY_MAX);
+	sc->devstat->id = pp;
+	g_error_provider(pp, 0);
+	g_topology_unlock();
 }
 
 static int



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202001170411.00H4BHZ0088281>