From 864838d832d8d9b32e1907e3885bdc8257c640f7 Mon Sep 17 00:00:00 2001 From: Vladimir 'virtul' Ivannikov Date: Tue, 23 May 2023 22:02:37 +0300 Subject: [PATCH] allow configure page & segment sizes from build args i.e. compiler's commandline. This improves maintanability since one do not have to modify upstream sources (which cause additional maintability burden on updates) --- include/mimalloc/types.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/mimalloc/types.h b/include/mimalloc/types.h index 2005238a..e2e49e2d 100644 --- a/include/mimalloc/types.h +++ b/include/mimalloc/types.h @@ -157,13 +157,17 @@ typedef int32_t mi_ssize_t; // Main tuning parameters for segment and page sizes // Sizes for 64-bit (usually divide by two for 32-bit) +#ifndef MI_SEGMENT_SLICE_SHIFT #define MI_SEGMENT_SLICE_SHIFT (13 + MI_INTPTR_SHIFT) // 64KiB (32KiB on 32-bit) +#endif +#ifndef MI_SEGMENT_SHIFT #if MI_INTPTR_SIZE > 4 #define MI_SEGMENT_SHIFT ( 9 + MI_SEGMENT_SLICE_SHIFT) // 32MiB #else #define MI_SEGMENT_SHIFT ( 7 + MI_SEGMENT_SLICE_SHIFT) // 4MiB on 32-bit #endif +#endif #define MI_SMALL_PAGE_SHIFT (MI_SEGMENT_SLICE_SHIFT) // 64KiB #define MI_MEDIUM_PAGE_SHIFT ( 3 + MI_SMALL_PAGE_SHIFT) // 512KiB