diff --git a/include/mimalloc/types.h b/include/mimalloc/types.h index 6ed17f09..29d6fde9 100644 --- a/include/mimalloc/types.h +++ b/include/mimalloc/types.h @@ -99,7 +99,7 @@ terms of the MIT license. A copy of the license can be found in the file #define MI_ENCODE_FREELIST 1 #endif -// Enable large pages for objects between 64KiB and 256KiB. +// Enable large pages for objects between 64KiB and 512KiB. // Disabled by default as for many workloads the block sizes above 64 KiB are quite random which can lead to too many partially used large pages. #ifndef MI_ENABLE_LARGE_PAGES #define MI_ENABLE_LARGE_PAGES 0 @@ -342,7 +342,7 @@ typedef struct mi_page_s { #define MI_SMALL_MAX_OBJ_SIZE ((MI_SMALL_PAGE_SIZE-MI_PAGE_INFO_SIZE)/8) // < 8 KiB #if MI_ENABLE_LARGE_PAGES #define MI_MEDIUM_MAX_OBJ_SIZE ((MI_MEDIUM_PAGE_SIZE-MI_PAGE_INFO_SIZE)/8) // < 64 KiB -#define MI_LARGE_MAX_OBJ_SIZE (MI_LARGE_PAGE_SIZE/8) // <= 256 KiB // note: this must be a nice power of 2 or we get rounding issues with `_mi_bin` +#define MI_LARGE_MAX_OBJ_SIZE (MI_LARGE_PAGE_SIZE/8) // <= 512KiB // note: this must be a nice power of 2 or we get rounding issues with `_mi_bin` #else #define MI_MEDIUM_MAX_OBJ_SIZE (MI_MEDIUM_PAGE_SIZE/8) // <= 64 KiB #define MI_LARGE_MAX_OBJ_SIZE MI_MEDIUM_MAX_OBJ_SIZE // <= 64 KiB // note: this must be a nice power of 2 or we get rounding issues with `_mi_bin` diff --git a/src/bitmap.c b/src/bitmap.c index 623f921d..b458d5e8 100644 --- a/src/bitmap.c +++ b/src/bitmap.c @@ -184,7 +184,7 @@ static inline bool mi_bfield_atomic_try_clear_mask(_Atomic(mi_bfield_t)* b, mi_b return mi_bfield_atomic_try_clear_mask_of(b, mask, expect, all_clear); } - +/* // Tries to clear a bit atomically. Returns `true` if the bit transitioned from 1 to 0 // and `false` otherwise leaving the bfield `b` as-is. // `all_clear` is set to true if the new bfield became zero (and false otherwise) @@ -203,6 +203,7 @@ static inline bool mi_bfield_atomic_try_clear8(_Atomic(mi_bfield_t)*b, size_t id const mi_bfield_t mask = ((mi_bfield_t)0xFF)<