From owner-p4-projects@FreeBSD.ORG Mon Apr 8 17:49:24 2013 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 92AD2C86; Mon, 8 Apr 2013 17:49:24 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 53899C84 for ; Mon, 8 Apr 2013 17:49:24 +0000 (UTC) (envelope-from prw35@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:1900:2254:2068::682:0]) by mx1.freebsd.org (Postfix) with ESMTP id 358CDD90 for ; Mon, 8 Apr 2013 17:49:24 +0000 (UTC) Received: from skunkworks.freebsd.org ([127.0.1.74]) by skunkworks.freebsd.org (8.14.6/8.14.6) with ESMTP id r38HnOYE099337 for ; Mon, 8 Apr 2013 17:49:24 GMT (envelope-from prw35@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.6/8.14.6/Submit) id r38HnOoJ099334 for perforce@freebsd.org; Mon, 8 Apr 2013 17:49:24 GMT (envelope-from prw35@FreeBSD.org) Date: Mon, 8 Apr 2013 17:49:24 GMT Message-Id: <201304081749.r38HnOoJ099334@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to prw35@FreeBSD.org using -f From: Philip Withnall Subject: PERFORCE change 227510 for review To: Perforce Change Reviews Precedence: bulk X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.14 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Apr 2013 17:49:24 -0000 http://p4web.freebsd.org/@@227510?ac=10 Change 227510 by prw35@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