svn commit: r367503 - in head/sys: kern vm

Mateusz Guzik mjg at FreeBSD.org
Mon Nov 9 00:34:24 UTC 2020


Author: mjg
Date: Mon Nov  9 00:34:23 2020
New Revision: 367503
URL: https://svnweb.freebsd.org/changeset/base/367503

Log:
  Add more per-cpu zones.
  
  This covers powers of 2 up to 64.
  
  Example pending user is ZFS.

Modified:
  head/sys/kern/subr_pcpu.c
  head/sys/vm/uma.h

Modified: head/sys/kern/subr_pcpu.c
==============================================================================
--- head/sys/kern/subr_pcpu.c	Mon Nov  9 00:08:35 2020	(r367502)
+++ head/sys/kern/subr_pcpu.c	Mon Nov  9 00:34:23 2020	(r367503)
@@ -133,17 +133,25 @@ SYSINIT(dpcpu, SI_SUB_KLD, SI_ORDER_FIRST, dpcpu_start
 /*
  * UMA_ZONE_PCPU zones for general kernel use.
  */
-
 uma_zone_t pcpu_zone_4;
 uma_zone_t pcpu_zone_8;
+uma_zone_t pcpu_zone_16;
+uma_zone_t pcpu_zone_32;
+uma_zone_t pcpu_zone_64;
 
 static void
 pcpu_zones_startup(void)
 {
 
-	pcpu_zone_4 = uma_zcreate("pcpu-4", sizeof(uint32_t),
+	pcpu_zone_4 = uma_zcreate("pcpu-4", 4,
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_PCPU);
-	pcpu_zone_8 = uma_zcreate("pcpu-8", sizeof(uint64_t),
+	pcpu_zone_8 = uma_zcreate("pcpu-8", 8,
+	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_PCPU);
+	pcpu_zone_16 = uma_zcreate("pcpu-16", 16,
+	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_PCPU);
+	pcpu_zone_32 = uma_zcreate("pcpu-32", 32,
+	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_PCPU);
+	pcpu_zone_64 = uma_zcreate("pcpu-64", 64,
 	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_PCPU);
 }
 SYSINIT(pcpu_zones, SI_SUB_COUNTER, SI_ORDER_FIRST, pcpu_zones_startup, NULL);

Modified: head/sys/vm/uma.h
==============================================================================
--- head/sys/vm/uma.h	Mon Nov  9 00:08:35 2020	(r367502)
+++ head/sys/vm/uma.h	Mon Nov  9 00:34:23 2020	(r367503)
@@ -668,6 +668,9 @@ size_t uma_zone_memory(uma_zone_t zone);
  */
 extern uma_zone_t pcpu_zone_4;
 extern uma_zone_t pcpu_zone_8;
+extern uma_zone_t pcpu_zone_16;
+extern uma_zone_t pcpu_zone_32;
+extern uma_zone_t pcpu_zone_64;
 
 /*
  * Exported statistics structures to be used by user space monitoring tools.


More information about the svn-src-all mailing list