PERFORCE change 227510 for review

Philip Withnall prw35 at FreeBSD.org
Mon Apr 8 17:49:24 UTC 2013


http://p4web.freebsd.org/@@227510?ac=10

Change 227510 by prw35 at pwithnall_zenith on 2013/04/08 17:48:40

	jemalloc: Increase allocation alignment to 32 bytes
	
	This is necessary because capability instructions require all
	capabilities to be 32-byte aligned. To allow execution of capability
	instructions on capabilities stored in allocated heap memory, all
	heap allocations must therefore be (at least) 32-byte aligned. This
	is as specified in the malloc() documentation:
	"The allocated space is suitably aligned...for storage of any type
	 of object."
	
	The changes to size_classes.h were generated using lg_qmax=5 in
	the size_classes.sh from upstream jemalloc.
	
	This hard-codes MIPS to use the new alignment for the time being
	(by unconditionally defining CHERI in
	lib/libc/stdlib/jemalloc/Makefile.inc). In future, this could be
	made conditional on a WITH_CHERI make option.

Affected files ...

.. //depot/projects/ctsrd/cheribsd/src/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal.h#3 edit
.. //depot/projects/ctsrd/cheribsd/src/contrib/jemalloc/include/jemalloc/internal/size_classes.h#2 edit
.. //depot/projects/ctsrd/cheribsd/src/lib/libc/stdlib/jemalloc/Makefile.inc#4 edit

Differences ...

==== //depot/projects/ctsrd/cheribsd/src/contrib/jemalloc/include/jemalloc/internal/jemalloc_internal.h#3 (text+ko) ====

@@ -282,7 +282,12 @@
 #    define LG_QUANTUM		4
 #  endif
 #  ifdef __mips__
-#    define LG_QUANTUM		3
+#    ifdef CHERI
+/* CHERI requires 32-byte alignment as capabilities must be aligned. */
+#      define LG_QUANTUM	5
+#    else
+#      define LG_QUANTUM	3
+#    endif
 #  endif
 #  ifdef __powerpc__
 #    define LG_QUANTUM		4

==== //depot/projects/ctsrd/cheribsd/src/contrib/jemalloc/include/jemalloc/internal/size_classes.h#2 (text+ko) ====

@@ -687,6 +687,621 @@
 #define	SMALL_MAXCLASS	57344
 #endif
 
+#if (LG_TINY_MIN == 3 && LG_QUANTUM == 5 && LG_PAGE == 12)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	8,	8)					\
+    SIZE_CLASS(1,	8,	16)					\
+    SIZE_CLASS(2,	16,	32)					\
+    SIZE_CLASS(3,	32,	64)					\
+    SIZE_CLASS(4,	32,	96)					\
+    SIZE_CLASS(5,	32,	128)					\
+    SIZE_CLASS(6,	32,	160)					\
+    SIZE_CLASS(7,	32,	192)					\
+    SIZE_CLASS(8,	32,	224)					\
+    SIZE_CLASS(9,	32,	256)					\
+    SIZE_CLASS(10,	64,	320)					\
+    SIZE_CLASS(11,	64,	384)					\
+    SIZE_CLASS(12,	64,	448)					\
+    SIZE_CLASS(13,	64,	512)					\
+    SIZE_CLASS(14,	128,	640)					\
+    SIZE_CLASS(15,	128,	768)					\
+    SIZE_CLASS(16,	128,	896)					\
+    SIZE_CLASS(17,	128,	1024)					\
+    SIZE_CLASS(18,	256,	1280)					\
+    SIZE_CLASS(19,	256,	1536)					\
+    SIZE_CLASS(20,	256,	1792)					\
+    SIZE_CLASS(21,	256,	2048)					\
+    SIZE_CLASS(22,	512,	2560)					\
+    SIZE_CLASS(23,	512,	3072)					\
+    SIZE_CLASS(24,	512,	3584)					\
+
+#define	NBINS		25
+#define	SMALL_MAXCLASS	3584
+#endif
+
+#if (LG_TINY_MIN == 3 && LG_QUANTUM == 5 && LG_PAGE == 13)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	8,	8)					\
+    SIZE_CLASS(1,	8,	16)					\
+    SIZE_CLASS(2,	16,	32)					\
+    SIZE_CLASS(3,	32,	64)					\
+    SIZE_CLASS(4,	32,	96)					\
+    SIZE_CLASS(5,	32,	128)					\
+    SIZE_CLASS(6,	32,	160)					\
+    SIZE_CLASS(7,	32,	192)					\
+    SIZE_CLASS(8,	32,	224)					\
+    SIZE_CLASS(9,	32,	256)					\
+    SIZE_CLASS(10,	64,	320)					\
+    SIZE_CLASS(11,	64,	384)					\
+    SIZE_CLASS(12,	64,	448)					\
+    SIZE_CLASS(13,	64,	512)					\
+    SIZE_CLASS(14,	128,	640)					\
+    SIZE_CLASS(15,	128,	768)					\
+    SIZE_CLASS(16,	128,	896)					\
+    SIZE_CLASS(17,	128,	1024)					\
+    SIZE_CLASS(18,	256,	1280)					\
+    SIZE_CLASS(19,	256,	1536)					\
+    SIZE_CLASS(20,	256,	1792)					\
+    SIZE_CLASS(21,	256,	2048)					\
+    SIZE_CLASS(22,	512,	2560)					\
+    SIZE_CLASS(23,	512,	3072)					\
+    SIZE_CLASS(24,	512,	3584)					\
+    SIZE_CLASS(25,	512,	4096)					\
+    SIZE_CLASS(26,	1024,	5120)					\
+    SIZE_CLASS(27,	1024,	6144)					\
+    SIZE_CLASS(28,	1024,	7168)					\
+
+#define	NBINS		29
+#define	SMALL_MAXCLASS	7168
+#endif
+
+#if (LG_TINY_MIN == 3 && LG_QUANTUM == 5 && LG_PAGE == 14)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	8,	8)					\
+    SIZE_CLASS(1,	8,	16)					\
+    SIZE_CLASS(2,	16,	32)					\
+    SIZE_CLASS(3,	32,	64)					\
+    SIZE_CLASS(4,	32,	96)					\
+    SIZE_CLASS(5,	32,	128)					\
+    SIZE_CLASS(6,	32,	160)					\
+    SIZE_CLASS(7,	32,	192)					\
+    SIZE_CLASS(8,	32,	224)					\
+    SIZE_CLASS(9,	32,	256)					\
+    SIZE_CLASS(10,	64,	320)					\
+    SIZE_CLASS(11,	64,	384)					\
+    SIZE_CLASS(12,	64,	448)					\
+    SIZE_CLASS(13,	64,	512)					\
+    SIZE_CLASS(14,	128,	640)					\
+    SIZE_CLASS(15,	128,	768)					\
+    SIZE_CLASS(16,	128,	896)					\
+    SIZE_CLASS(17,	128,	1024)					\
+    SIZE_CLASS(18,	256,	1280)					\
+    SIZE_CLASS(19,	256,	1536)					\
+    SIZE_CLASS(20,	256,	1792)					\
+    SIZE_CLASS(21,	256,	2048)					\
+    SIZE_CLASS(22,	512,	2560)					\
+    SIZE_CLASS(23,	512,	3072)					\
+    SIZE_CLASS(24,	512,	3584)					\
+    SIZE_CLASS(25,	512,	4096)					\
+    SIZE_CLASS(26,	1024,	5120)					\
+    SIZE_CLASS(27,	1024,	6144)					\
+    SIZE_CLASS(28,	1024,	7168)					\
+    SIZE_CLASS(29,	1024,	8192)					\
+    SIZE_CLASS(30,	2048,	10240)					\
+    SIZE_CLASS(31,	2048,	12288)					\
+    SIZE_CLASS(32,	2048,	14336)					\
+
+#define	NBINS		33
+#define	SMALL_MAXCLASS	14336
+#endif
+
+#if (LG_TINY_MIN == 3 && LG_QUANTUM == 5 && LG_PAGE == 15)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	8,	8)					\
+    SIZE_CLASS(1,	8,	16)					\
+    SIZE_CLASS(2,	16,	32)					\
+    SIZE_CLASS(3,	32,	64)					\
+    SIZE_CLASS(4,	32,	96)					\
+    SIZE_CLASS(5,	32,	128)					\
+    SIZE_CLASS(6,	32,	160)					\
+    SIZE_CLASS(7,	32,	192)					\
+    SIZE_CLASS(8,	32,	224)					\
+    SIZE_CLASS(9,	32,	256)					\
+    SIZE_CLASS(10,	64,	320)					\
+    SIZE_CLASS(11,	64,	384)					\
+    SIZE_CLASS(12,	64,	448)					\
+    SIZE_CLASS(13,	64,	512)					\
+    SIZE_CLASS(14,	128,	640)					\
+    SIZE_CLASS(15,	128,	768)					\
+    SIZE_CLASS(16,	128,	896)					\
+    SIZE_CLASS(17,	128,	1024)					\
+    SIZE_CLASS(18,	256,	1280)					\
+    SIZE_CLASS(19,	256,	1536)					\
+    SIZE_CLASS(20,	256,	1792)					\
+    SIZE_CLASS(21,	256,	2048)					\
+    SIZE_CLASS(22,	512,	2560)					\
+    SIZE_CLASS(23,	512,	3072)					\
+    SIZE_CLASS(24,	512,	3584)					\
+    SIZE_CLASS(25,	512,	4096)					\
+    SIZE_CLASS(26,	1024,	5120)					\
+    SIZE_CLASS(27,	1024,	6144)					\
+    SIZE_CLASS(28,	1024,	7168)					\
+    SIZE_CLASS(29,	1024,	8192)					\
+    SIZE_CLASS(30,	2048,	10240)					\
+    SIZE_CLASS(31,	2048,	12288)					\
+    SIZE_CLASS(32,	2048,	14336)					\
+    SIZE_CLASS(33,	2048,	16384)					\
+    SIZE_CLASS(34,	4096,	20480)					\
+    SIZE_CLASS(35,	4096,	24576)					\
+    SIZE_CLASS(36,	4096,	28672)					\
+
+#define	NBINS		37
+#define	SMALL_MAXCLASS	28672
+#endif
+
+#if (LG_TINY_MIN == 3 && LG_QUANTUM == 5 && LG_PAGE == 16)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	8,	8)					\
+    SIZE_CLASS(1,	8,	16)					\
+    SIZE_CLASS(2,	16,	32)					\
+    SIZE_CLASS(3,	32,	64)					\
+    SIZE_CLASS(4,	32,	96)					\
+    SIZE_CLASS(5,	32,	128)					\
+    SIZE_CLASS(6,	32,	160)					\
+    SIZE_CLASS(7,	32,	192)					\
+    SIZE_CLASS(8,	32,	224)					\
+    SIZE_CLASS(9,	32,	256)					\
+    SIZE_CLASS(10,	64,	320)					\
+    SIZE_CLASS(11,	64,	384)					\
+    SIZE_CLASS(12,	64,	448)					\
+    SIZE_CLASS(13,	64,	512)					\
+    SIZE_CLASS(14,	128,	640)					\
+    SIZE_CLASS(15,	128,	768)					\
+    SIZE_CLASS(16,	128,	896)					\
+    SIZE_CLASS(17,	128,	1024)					\
+    SIZE_CLASS(18,	256,	1280)					\
+    SIZE_CLASS(19,	256,	1536)					\
+    SIZE_CLASS(20,	256,	1792)					\
+    SIZE_CLASS(21,	256,	2048)					\
+    SIZE_CLASS(22,	512,	2560)					\
+    SIZE_CLASS(23,	512,	3072)					\
+    SIZE_CLASS(24,	512,	3584)					\
+    SIZE_CLASS(25,	512,	4096)					\
+    SIZE_CLASS(26,	1024,	5120)					\
+    SIZE_CLASS(27,	1024,	6144)					\
+    SIZE_CLASS(28,	1024,	7168)					\
+    SIZE_CLASS(29,	1024,	8192)					\
+    SIZE_CLASS(30,	2048,	10240)					\
+    SIZE_CLASS(31,	2048,	12288)					\
+    SIZE_CLASS(32,	2048,	14336)					\
+    SIZE_CLASS(33,	2048,	16384)					\
+    SIZE_CLASS(34,	4096,	20480)					\
+    SIZE_CLASS(35,	4096,	24576)					\
+    SIZE_CLASS(36,	4096,	28672)					\
+    SIZE_CLASS(37,	4096,	32768)					\
+    SIZE_CLASS(38,	8192,	40960)					\
+    SIZE_CLASS(39,	8192,	49152)					\
+    SIZE_CLASS(40,	8192,	57344)					\
+
+#define	NBINS		41
+#define	SMALL_MAXCLASS	57344
+#endif
+
+#if (LG_TINY_MIN == 4 && LG_QUANTUM == 5 && LG_PAGE == 12)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	16,	16)					\
+    SIZE_CLASS(1,	16,	32)					\
+    SIZE_CLASS(2,	32,	64)					\
+    SIZE_CLASS(3,	32,	96)					\
+    SIZE_CLASS(4,	32,	128)					\
+    SIZE_CLASS(5,	32,	160)					\
+    SIZE_CLASS(6,	32,	192)					\
+    SIZE_CLASS(7,	32,	224)					\
+    SIZE_CLASS(8,	32,	256)					\
+    SIZE_CLASS(9,	64,	320)					\
+    SIZE_CLASS(10,	64,	384)					\
+    SIZE_CLASS(11,	64,	448)					\
+    SIZE_CLASS(12,	64,	512)					\
+    SIZE_CLASS(13,	128,	640)					\
+    SIZE_CLASS(14,	128,	768)					\
+    SIZE_CLASS(15,	128,	896)					\
+    SIZE_CLASS(16,	128,	1024)					\
+    SIZE_CLASS(17,	256,	1280)					\
+    SIZE_CLASS(18,	256,	1536)					\
+    SIZE_CLASS(19,	256,	1792)					\
+    SIZE_CLASS(20,	256,	2048)					\
+    SIZE_CLASS(21,	512,	2560)					\
+    SIZE_CLASS(22,	512,	3072)					\
+    SIZE_CLASS(23,	512,	3584)					\
+
+#define	NBINS		24
+#define	SMALL_MAXCLASS	3584
+#endif
+
+#if (LG_TINY_MIN == 4 && LG_QUANTUM == 5 && LG_PAGE == 13)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	16,	16)					\
+    SIZE_CLASS(1,	16,	32)					\
+    SIZE_CLASS(2,	32,	64)					\
+    SIZE_CLASS(3,	32,	96)					\
+    SIZE_CLASS(4,	32,	128)					\
+    SIZE_CLASS(5,	32,	160)					\
+    SIZE_CLASS(6,	32,	192)					\
+    SIZE_CLASS(7,	32,	224)					\
+    SIZE_CLASS(8,	32,	256)					\
+    SIZE_CLASS(9,	64,	320)					\
+    SIZE_CLASS(10,	64,	384)					\
+    SIZE_CLASS(11,	64,	448)					\
+    SIZE_CLASS(12,	64,	512)					\
+    SIZE_CLASS(13,	128,	640)					\
+    SIZE_CLASS(14,	128,	768)					\
+    SIZE_CLASS(15,	128,	896)					\
+    SIZE_CLASS(16,	128,	1024)					\
+    SIZE_CLASS(17,	256,	1280)					\
+    SIZE_CLASS(18,	256,	1536)					\
+    SIZE_CLASS(19,	256,	1792)					\
+    SIZE_CLASS(20,	256,	2048)					\
+    SIZE_CLASS(21,	512,	2560)					\
+    SIZE_CLASS(22,	512,	3072)					\
+    SIZE_CLASS(23,	512,	3584)					\
+    SIZE_CLASS(24,	512,	4096)					\
+    SIZE_CLASS(25,	1024,	5120)					\
+    SIZE_CLASS(26,	1024,	6144)					\
+    SIZE_CLASS(27,	1024,	7168)					\
+
+#define	NBINS		28
+#define	SMALL_MAXCLASS	7168
+#endif
+
+#if (LG_TINY_MIN == 4 && LG_QUANTUM == 5 && LG_PAGE == 14)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	16,	16)					\
+    SIZE_CLASS(1,	16,	32)					\
+    SIZE_CLASS(2,	32,	64)					\
+    SIZE_CLASS(3,	32,	96)					\
+    SIZE_CLASS(4,	32,	128)					\
+    SIZE_CLASS(5,	32,	160)					\
+    SIZE_CLASS(6,	32,	192)					\
+    SIZE_CLASS(7,	32,	224)					\
+    SIZE_CLASS(8,	32,	256)					\
+    SIZE_CLASS(9,	64,	320)					\
+    SIZE_CLASS(10,	64,	384)					\
+    SIZE_CLASS(11,	64,	448)					\
+    SIZE_CLASS(12,	64,	512)					\
+    SIZE_CLASS(13,	128,	640)					\
+    SIZE_CLASS(14,	128,	768)					\
+    SIZE_CLASS(15,	128,	896)					\
+    SIZE_CLASS(16,	128,	1024)					\
+    SIZE_CLASS(17,	256,	1280)					\
+    SIZE_CLASS(18,	256,	1536)					\
+    SIZE_CLASS(19,	256,	1792)					\
+    SIZE_CLASS(20,	256,	2048)					\
+    SIZE_CLASS(21,	512,	2560)					\
+    SIZE_CLASS(22,	512,	3072)					\
+    SIZE_CLASS(23,	512,	3584)					\
+    SIZE_CLASS(24,	512,	4096)					\
+    SIZE_CLASS(25,	1024,	5120)					\
+    SIZE_CLASS(26,	1024,	6144)					\
+    SIZE_CLASS(27,	1024,	7168)					\
+    SIZE_CLASS(28,	1024,	8192)					\
+    SIZE_CLASS(29,	2048,	10240)					\
+    SIZE_CLASS(30,	2048,	12288)					\
+    SIZE_CLASS(31,	2048,	14336)					\
+
+#define	NBINS		32
+#define	SMALL_MAXCLASS	14336
+#endif
+
+#if (LG_TINY_MIN == 4 && LG_QUANTUM == 5 && LG_PAGE == 15)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	16,	16)					\
+    SIZE_CLASS(1,	16,	32)					\
+    SIZE_CLASS(2,	32,	64)					\
+    SIZE_CLASS(3,	32,	96)					\
+    SIZE_CLASS(4,	32,	128)					\
+    SIZE_CLASS(5,	32,	160)					\
+    SIZE_CLASS(6,	32,	192)					\
+    SIZE_CLASS(7,	32,	224)					\
+    SIZE_CLASS(8,	32,	256)					\
+    SIZE_CLASS(9,	64,	320)					\
+    SIZE_CLASS(10,	64,	384)					\
+    SIZE_CLASS(11,	64,	448)					\
+    SIZE_CLASS(12,	64,	512)					\
+    SIZE_CLASS(13,	128,	640)					\
+    SIZE_CLASS(14,	128,	768)					\
+    SIZE_CLASS(15,	128,	896)					\
+    SIZE_CLASS(16,	128,	1024)					\
+    SIZE_CLASS(17,	256,	1280)					\
+    SIZE_CLASS(18,	256,	1536)					\
+    SIZE_CLASS(19,	256,	1792)					\
+    SIZE_CLASS(20,	256,	2048)					\
+    SIZE_CLASS(21,	512,	2560)					\
+    SIZE_CLASS(22,	512,	3072)					\
+    SIZE_CLASS(23,	512,	3584)					\
+    SIZE_CLASS(24,	512,	4096)					\
+    SIZE_CLASS(25,	1024,	5120)					\
+    SIZE_CLASS(26,	1024,	6144)					\
+    SIZE_CLASS(27,	1024,	7168)					\
+    SIZE_CLASS(28,	1024,	8192)					\
+    SIZE_CLASS(29,	2048,	10240)					\
+    SIZE_CLASS(30,	2048,	12288)					\
+    SIZE_CLASS(31,	2048,	14336)					\
+    SIZE_CLASS(32,	2048,	16384)					\
+    SIZE_CLASS(33,	4096,	20480)					\
+    SIZE_CLASS(34,	4096,	24576)					\
+    SIZE_CLASS(35,	4096,	28672)					\
+
+#define	NBINS		36
+#define	SMALL_MAXCLASS	28672
+#endif
+
+#if (LG_TINY_MIN == 4 && LG_QUANTUM == 5 && LG_PAGE == 16)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	16,	16)					\
+    SIZE_CLASS(1,	16,	32)					\
+    SIZE_CLASS(2,	32,	64)					\
+    SIZE_CLASS(3,	32,	96)					\
+    SIZE_CLASS(4,	32,	128)					\
+    SIZE_CLASS(5,	32,	160)					\
+    SIZE_CLASS(6,	32,	192)					\
+    SIZE_CLASS(7,	32,	224)					\
+    SIZE_CLASS(8,	32,	256)					\
+    SIZE_CLASS(9,	64,	320)					\
+    SIZE_CLASS(10,	64,	384)					\
+    SIZE_CLASS(11,	64,	448)					\
+    SIZE_CLASS(12,	64,	512)					\
+    SIZE_CLASS(13,	128,	640)					\
+    SIZE_CLASS(14,	128,	768)					\
+    SIZE_CLASS(15,	128,	896)					\
+    SIZE_CLASS(16,	128,	1024)					\
+    SIZE_CLASS(17,	256,	1280)					\
+    SIZE_CLASS(18,	256,	1536)					\
+    SIZE_CLASS(19,	256,	1792)					\
+    SIZE_CLASS(20,	256,	2048)					\
+    SIZE_CLASS(21,	512,	2560)					\
+    SIZE_CLASS(22,	512,	3072)					\
+    SIZE_CLASS(23,	512,	3584)					\
+    SIZE_CLASS(24,	512,	4096)					\
+    SIZE_CLASS(25,	1024,	5120)					\
+    SIZE_CLASS(26,	1024,	6144)					\
+    SIZE_CLASS(27,	1024,	7168)					\
+    SIZE_CLASS(28,	1024,	8192)					\
+    SIZE_CLASS(29,	2048,	10240)					\
+    SIZE_CLASS(30,	2048,	12288)					\
+    SIZE_CLASS(31,	2048,	14336)					\
+    SIZE_CLASS(32,	2048,	16384)					\
+    SIZE_CLASS(33,	4096,	20480)					\
+    SIZE_CLASS(34,	4096,	24576)					\
+    SIZE_CLASS(35,	4096,	28672)					\
+    SIZE_CLASS(36,	4096,	32768)					\
+    SIZE_CLASS(37,	8192,	40960)					\
+    SIZE_CLASS(38,	8192,	49152)					\
+    SIZE_CLASS(39,	8192,	57344)					\
+
+#define	NBINS		40
+#define	SMALL_MAXCLASS	57344
+#endif
+
+#if (LG_TINY_MIN == 5 && LG_QUANTUM == 5 && LG_PAGE == 12)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	32,	32)					\
+    SIZE_CLASS(1,	32,	64)					\
+    SIZE_CLASS(2,	32,	96)					\
+    SIZE_CLASS(3,	32,	128)					\
+    SIZE_CLASS(4,	32,	160)					\
+    SIZE_CLASS(5,	32,	192)					\
+    SIZE_CLASS(6,	32,	224)					\
+    SIZE_CLASS(7,	32,	256)					\
+    SIZE_CLASS(8,	64,	320)					\
+    SIZE_CLASS(9,	64,	384)					\
+    SIZE_CLASS(10,	64,	448)					\
+    SIZE_CLASS(11,	64,	512)					\
+    SIZE_CLASS(12,	128,	640)					\
+    SIZE_CLASS(13,	128,	768)					\
+    SIZE_CLASS(14,	128,	896)					\
+    SIZE_CLASS(15,	128,	1024)					\
+    SIZE_CLASS(16,	256,	1280)					\
+    SIZE_CLASS(17,	256,	1536)					\
+    SIZE_CLASS(18,	256,	1792)					\
+    SIZE_CLASS(19,	256,	2048)					\
+    SIZE_CLASS(20,	512,	2560)					\
+    SIZE_CLASS(21,	512,	3072)					\
+    SIZE_CLASS(22,	512,	3584)					\
+
+#define	NBINS		23
+#define	SMALL_MAXCLASS	3584
+#endif
+
+#if (LG_TINY_MIN == 5 && LG_QUANTUM == 5 && LG_PAGE == 13)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	32,	32)					\
+    SIZE_CLASS(1,	32,	64)					\
+    SIZE_CLASS(2,	32,	96)					\
+    SIZE_CLASS(3,	32,	128)					\
+    SIZE_CLASS(4,	32,	160)					\
+    SIZE_CLASS(5,	32,	192)					\
+    SIZE_CLASS(6,	32,	224)					\
+    SIZE_CLASS(7,	32,	256)					\
+    SIZE_CLASS(8,	64,	320)					\
+    SIZE_CLASS(9,	64,	384)					\
+    SIZE_CLASS(10,	64,	448)					\
+    SIZE_CLASS(11,	64,	512)					\
+    SIZE_CLASS(12,	128,	640)					\
+    SIZE_CLASS(13,	128,	768)					\
+    SIZE_CLASS(14,	128,	896)					\
+    SIZE_CLASS(15,	128,	1024)					\
+    SIZE_CLASS(16,	256,	1280)					\
+    SIZE_CLASS(17,	256,	1536)					\
+    SIZE_CLASS(18,	256,	1792)					\
+    SIZE_CLASS(19,	256,	2048)					\
+    SIZE_CLASS(20,	512,	2560)					\
+    SIZE_CLASS(21,	512,	3072)					\
+    SIZE_CLASS(22,	512,	3584)					\
+    SIZE_CLASS(23,	512,	4096)					\
+    SIZE_CLASS(24,	1024,	5120)					\
+    SIZE_CLASS(25,	1024,	6144)					\
+    SIZE_CLASS(26,	1024,	7168)					\
+
+#define	NBINS		27
+#define	SMALL_MAXCLASS	7168
+#endif
+
+#if (LG_TINY_MIN == 5 && LG_QUANTUM == 5 && LG_PAGE == 14)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	32,	32)					\
+    SIZE_CLASS(1,	32,	64)					\
+    SIZE_CLASS(2,	32,	96)					\
+    SIZE_CLASS(3,	32,	128)					\
+    SIZE_CLASS(4,	32,	160)					\
+    SIZE_CLASS(5,	32,	192)					\
+    SIZE_CLASS(6,	32,	224)					\
+    SIZE_CLASS(7,	32,	256)					\
+    SIZE_CLASS(8,	64,	320)					\
+    SIZE_CLASS(9,	64,	384)					\
+    SIZE_CLASS(10,	64,	448)					\
+    SIZE_CLASS(11,	64,	512)					\
+    SIZE_CLASS(12,	128,	640)					\
+    SIZE_CLASS(13,	128,	768)					\
+    SIZE_CLASS(14,	128,	896)					\
+    SIZE_CLASS(15,	128,	1024)					\
+    SIZE_CLASS(16,	256,	1280)					\
+    SIZE_CLASS(17,	256,	1536)					\
+    SIZE_CLASS(18,	256,	1792)					\
+    SIZE_CLASS(19,	256,	2048)					\
+    SIZE_CLASS(20,	512,	2560)					\
+    SIZE_CLASS(21,	512,	3072)					\
+    SIZE_CLASS(22,	512,	3584)					\
+    SIZE_CLASS(23,	512,	4096)					\
+    SIZE_CLASS(24,	1024,	5120)					\
+    SIZE_CLASS(25,	1024,	6144)					\
+    SIZE_CLASS(26,	1024,	7168)					\
+    SIZE_CLASS(27,	1024,	8192)					\
+    SIZE_CLASS(28,	2048,	10240)					\
+    SIZE_CLASS(29,	2048,	12288)					\
+    SIZE_CLASS(30,	2048,	14336)					\
+
+#define	NBINS		31
+#define	SMALL_MAXCLASS	14336
+#endif
+
+#if (LG_TINY_MIN == 5 && LG_QUANTUM == 5 && LG_PAGE == 15)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	32,	32)					\
+    SIZE_CLASS(1,	32,	64)					\
+    SIZE_CLASS(2,	32,	96)					\
+    SIZE_CLASS(3,	32,	128)					\
+    SIZE_CLASS(4,	32,	160)					\
+    SIZE_CLASS(5,	32,	192)					\
+    SIZE_CLASS(6,	32,	224)					\
+    SIZE_CLASS(7,	32,	256)					\
+    SIZE_CLASS(8,	64,	320)					\
+    SIZE_CLASS(9,	64,	384)					\
+    SIZE_CLASS(10,	64,	448)					\
+    SIZE_CLASS(11,	64,	512)					\
+    SIZE_CLASS(12,	128,	640)					\
+    SIZE_CLASS(13,	128,	768)					\
+    SIZE_CLASS(14,	128,	896)					\
+    SIZE_CLASS(15,	128,	1024)					\
+    SIZE_CLASS(16,	256,	1280)					\
+    SIZE_CLASS(17,	256,	1536)					\
+    SIZE_CLASS(18,	256,	1792)					\
+    SIZE_CLASS(19,	256,	2048)					\
+    SIZE_CLASS(20,	512,	2560)					\
+    SIZE_CLASS(21,	512,	3072)					\
+    SIZE_CLASS(22,	512,	3584)					\
+    SIZE_CLASS(23,	512,	4096)					\
+    SIZE_CLASS(24,	1024,	5120)					\
+    SIZE_CLASS(25,	1024,	6144)					\
+    SIZE_CLASS(26,	1024,	7168)					\
+    SIZE_CLASS(27,	1024,	8192)					\
+    SIZE_CLASS(28,	2048,	10240)					\
+    SIZE_CLASS(29,	2048,	12288)					\
+    SIZE_CLASS(30,	2048,	14336)					\
+    SIZE_CLASS(31,	2048,	16384)					\
+    SIZE_CLASS(32,	4096,	20480)					\
+    SIZE_CLASS(33,	4096,	24576)					\
+    SIZE_CLASS(34,	4096,	28672)					\
+
+#define	NBINS		35
+#define	SMALL_MAXCLASS	28672
+#endif
+
+#if (LG_TINY_MIN == 5 && LG_QUANTUM == 5 && LG_PAGE == 16)
+#define	SIZE_CLASSES_DEFINED
+/*  SIZE_CLASS(bin,	delta,	sz) */
+#define	SIZE_CLASSES							\
+    SIZE_CLASS(0,	32,	32)					\
+    SIZE_CLASS(1,	32,	64)					\
+    SIZE_CLASS(2,	32,	96)					\
+    SIZE_CLASS(3,	32,	128)					\
+    SIZE_CLASS(4,	32,	160)					\
+    SIZE_CLASS(5,	32,	192)					\
+    SIZE_CLASS(6,	32,	224)					\
+    SIZE_CLASS(7,	32,	256)					\
+    SIZE_CLASS(8,	64,	320)					\
+    SIZE_CLASS(9,	64,	384)					\
+    SIZE_CLASS(10,	64,	448)					\
+    SIZE_CLASS(11,	64,	512)					\
+    SIZE_CLASS(12,	128,	640)					\
+    SIZE_CLASS(13,	128,	768)					\
+    SIZE_CLASS(14,	128,	896)					\
+    SIZE_CLASS(15,	128,	1024)					\
+    SIZE_CLASS(16,	256,	1280)					\
+    SIZE_CLASS(17,	256,	1536)					\
+    SIZE_CLASS(18,	256,	1792)					\
+    SIZE_CLASS(19,	256,	2048)					\
+    SIZE_CLASS(20,	512,	2560)					\
+    SIZE_CLASS(21,	512,	3072)					\
+    SIZE_CLASS(22,	512,	3584)					\
+    SIZE_CLASS(23,	512,	4096)					\
+    SIZE_CLASS(24,	1024,	5120)					\
+    SIZE_CLASS(25,	1024,	6144)					\
+    SIZE_CLASS(26,	1024,	7168)					\
+    SIZE_CLASS(27,	1024,	8192)					\
+    SIZE_CLASS(28,	2048,	10240)					\
+    SIZE_CLASS(29,	2048,	12288)					\
+    SIZE_CLASS(30,	2048,	14336)					\
+    SIZE_CLASS(31,	2048,	16384)					\
+    SIZE_CLASS(32,	4096,	20480)					\
+    SIZE_CLASS(33,	4096,	24576)					\
+    SIZE_CLASS(34,	4096,	28672)					\
+    SIZE_CLASS(35,	4096,	32768)					\
+    SIZE_CLASS(36,	8192,	40960)					\
+    SIZE_CLASS(37,	8192,	49152)					\
+    SIZE_CLASS(38,	8192,	57344)					\
+
+#define	NBINS		39
+#define	SMALL_MAXCLASS	57344
+#endif
+
 #ifndef SIZE_CLASSES_DEFINED
 #  error "No size class definitions match configuration"
 #endif

==== //depot/projects/ctsrd/cheribsd/src/lib/libc/stdlib/jemalloc/Makefile.inc#4 (text+ko) ====

@@ -41,4 +41,5 @@
 	jemalloc.3 nallocm.3 \
 	jemalloc.3 malloc.conf.5
 
-CFLAGS+=	-DMALLOC_PRODUCTION
+# In future, this -DCHERI might become conditional on a WITH_CHERI make option
+CFLAGS+=	-DMALLOC_PRODUCTION -DCHERI


More information about the p4-projects mailing list