Author: mav
Date: Fri Jan  3 04:37:47 2020
New Revision: 356315
URL: https://svnweb.freebsd.org/changeset/base/356315

Log:
  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.
  
  MFC after:    2 weeks

Modified:
  head/sys/dev/md/md.c

Modified: head/sys/dev/md/md.c
==============================================================================
--- head/sys/dev/md/md.c        Fri Jan  3 01:21:15 2020        (r356314)
+++ head/sys/dev/md/md.c        Fri Jan  3 04:37:47 2020        (r356315)
@@ -1295,6 +1295,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;
@@ -1310,10 +1312,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
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to