Date: Fri, 3 Jan 2020 04:37:47 +0000 (UTC) From: Alexander Motin <mav@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356315 - head/sys/dev/md Message-ID: <202001030437.0034blv7033231@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202001030437.0034blv7033231>