git: e0c4ed73f3a6 - stable/12 - Modernize geom_stats_snapshot_get

Alan Somers asomers at FreeBSD.org
Thu Apr 8 21:34:36 UTC 2021


The branch stable/12 has been updated by asomers:

URL: https://cgit.FreeBSD.org/src/commit/?id=e0c4ed73f3a6a83f24d9a0bfe89f288ff1b93463

commit e0c4ed73f3a6a83f24d9a0bfe89f288ff1b93463
Author:     Alan Somers <asomers at FreeBSD.org>
AuthorDate: 2021-03-03 20:06:38 +0000
Commit:     Alan Somers <asomers at FreeBSD.org>
CommitDate: 2021-04-08 21:33:22 +0000

    Modernize geom_stats_snapshot_get
    
    * A logically useless memset() is used to fault in some memory pages.
      Change it to explicit_bzero so the compiler won't eliminate it.
    
    * Eliminate the second memset.  It made sense in the days of the Big
      Kernel Lock, but not in the days of fine-grained SMP and especially
      not in the days of VDSO.
    
    Sponsored by:   Axcient
    Reviewed by:    phk
    Differential Revision:  https://reviews.freebsd.org/D29047
    
    (cherry picked from commit f05b724ecb310fb91da1947ae6c68647f58f5f12)
---
 lib/libgeom/geom_stats.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/libgeom/geom_stats.c b/lib/libgeom/geom_stats.c
index 450ee491ea1c..7c9191e29686 100644
--- a/lib/libgeom/geom_stats.c
+++ b/lib/libgeom/geom_stats.c
@@ -136,9 +136,8 @@ geom_stats_snapshot_get(void)
 		free(sp);
 		return (NULL);
 	}
-	memset(sp->ptr, 0, pagesize * npages); 	/* page in, cache */
+	explicit_bzero(sp->ptr, pagesize * npages); 	/* page in, cache */
 	clock_gettime(CLOCK_REALTIME, &sp->time);
-	memset(sp->ptr, 0, pagesize * npages); 	/* page in, cache */
 	memcpy(sp->ptr, statp, pagesize * npages);
 	sp->pages = npages;
 	sp->perpage = spp;


More information about the dev-commits-src-all mailing list