svn commit: r367532 - in head/sys: kern sys

Mateusz Guzik mjg at FreeBSD.org
Mon Nov 9 22:58:29 UTC 2020


Author: mjg
Date: Mon Nov  9 22:58:29 2020
New Revision: 367532
URL: https://svnweb.freebsd.org/changeset/base/367532

Log:
  malloc: retire mt_stats_zone in favor of pcpu_zone_64
  
  Reviewed by:	markj, imp
  Differential Revision:	https://reviews.freebsd.org/D27142

Modified:
  head/sys/kern/kern_malloc.c
  head/sys/sys/malloc.h

Modified: head/sys/kern/kern_malloc.c
==============================================================================
--- head/sys/kern/kern_malloc.c	Mon Nov  9 22:23:25 2020	(r367531)
+++ head/sys/kern/kern_malloc.c	Mon Nov  9 22:58:29 2020	(r367532)
@@ -174,11 +174,6 @@ struct {
 	{0, NULL},
 };
 
-/*
- * Zone to allocate per-CPU storage for statistics.
- */
-static uma_zone_t mt_stats_zone;
-
 u_long vm_kmem_size;
 SYSCTL_ULONG(_vm, OID_AUTO, kmem_size, CTLFLAG_RDTUN, &vm_kmem_size, 0,
     "Size of kernel memory");
@@ -1184,9 +1179,6 @@ mallocinit(void *dummy)
 	if (kmem_zmax < PAGE_SIZE || kmem_zmax > KMEM_ZMAX)
 		kmem_zmax = KMEM_ZMAX;
 
-	mt_stats_zone = uma_zcreate("mt_stats_zone",
-	    sizeof(struct malloc_type_stats), NULL, NULL, NULL, NULL,
-	    UMA_ALIGN_PTR, UMA_ZONE_PCPU);
 	for (i = 0, indx = 0; kmemzones[indx].kz_size != 0; indx++) {
 		int size = kmemzones[indx].kz_size;
 		const char *name = kmemzones[indx].kz_name;
@@ -1222,7 +1214,7 @@ malloc_init(void *data)
 		    mtp->ks_shortdesc, mtp->ks_version);
 
 	mtip = &mtp->ks_mti;
-	mtip->mti_stats = uma_zalloc_pcpu(mt_stats_zone, M_WAITOK | M_ZERO);
+	mtip->mti_stats = uma_zalloc_pcpu(pcpu_zone_64, M_WAITOK | M_ZERO);
 	mtp_set_subzone(mtp);
 
 	mtx_lock(&malloc_mtx);
@@ -1279,7 +1271,7 @@ malloc_uninit(void *data)
 		    temp_allocs, temp_bytes);
 	}
 
-	uma_zfree_pcpu(mt_stats_zone, mtip->mti_stats);
+	uma_zfree_pcpu(pcpu_zone_64, mtip->mti_stats);
 }
 
 struct malloc_type *

Modified: head/sys/sys/malloc.h
==============================================================================
--- head/sys/sys/malloc.h	Mon Nov  9 22:23:25 2020	(r367531)
+++ head/sys/sys/malloc.h	Mon Nov  9 22:58:29 2020	(r367532)
@@ -92,6 +92,9 @@ struct malloc_type_stats {
 	uint64_t	_mts_reserved3;	/* Reserved field. */
 };
 
+_Static_assert(sizeof(struct malloc_type_stats) == 64,
+    "allocations come from pcpu_zone_64");
+
 /*
  * Index definitions for the mti_probes[] array.
  */


More information about the svn-src-head mailing list