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