diff --git a/cmake/Jemalloc.cmake b/cmake/Jemalloc.cmake index aedb834808..bfdd2f5898 100644 --- a/cmake/Jemalloc.cmake +++ b/cmake/Jemalloc.cmake @@ -9,12 +9,11 @@ add_library(im_jemalloc STATIC IMPORTED) include(ExternalProject) set(JEMALLOC_DIR "${CMAKE_BINARY_DIR}/jemalloc") ExternalProject_add(Jemalloc_project - URL "https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2" - URL_HASH SHA256=34330e5ce276099e2e8950d9335db5a875689a4c6a56751ef3b1d8c537f887f6 + URL "https://github.com/jemalloc/jemalloc/releases/download/5.3.0/jemalloc-5.3.0.tar.bz2" + URL_HASH SHA256=2db82d1e7119df3e71b7640219b6dfe84789bc0537983c3b7ac4f7189aecfeaa BUILD_BYPRODUCTS "${JEMALLOC_DIR}/include/jemalloc/jemalloc.h" "${JEMALLOC_DIR}/lib/libjemalloc.a" "${JEMALLOC_DIR}/lib/libjemalloc_pic.a" - PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/cmake/jemalloc.patch CONFIGURE_COMMAND ./configure --prefix=${JEMALLOC_DIR} --enable-static --disable-cxx --enable-prof BUILD_IN_SOURCE ON BUILD_COMMAND make diff --git a/cmake/jemalloc.patch b/cmake/jemalloc.patch deleted file mode 100644 index 660849041c..0000000000 --- a/cmake/jemalloc.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/include/jemalloc/internal/sz.h b/include/jemalloc/internal/sz.h -index 68e558ab..87bb2280 100644 ---- a/include/jemalloc/internal/sz.h -+++ b/include/jemalloc/internal/sz.h -@@ -266,7 +266,7 @@ sz_sa2u(size_t size, size_t alignment) { - assert(alignment != 0 && ((alignment - 1) & alignment) == 0); - - /* Try for a small size class. */ -- if (size <= SC_SMALL_MAXCLASS && alignment < PAGE) { -+ if (size <= SC_SMALL_MAXCLASS && alignment <= PAGE) { - /* - * Round size up to the nearest multiple of alignment. - * -diff --git a/src/arena.c b/src/arena.c -index ba50e410..dc7646e6 100644 ---- a/src/arena.c -+++ b/src/arena.c -@@ -1533,10 +1533,17 @@ arena_palloc(tsdn_t *tsdn, arena_t *arena, size_t usize, size_t alignment, - bool zero, tcache_t *tcache) { - void *ret; - -- if (usize <= SC_SMALL_MAXCLASS -- && (alignment < PAGE -- || (alignment == PAGE && (usize & PAGE_MASK) == 0))) { -+ if (usize <= SC_SMALL_MAXCLASS) { - /* Small; alignment doesn't require special slab placement. */ -+ -+ /* usize should be a result of sz_sa2u() */ -+ assert((usize & (alignment - 1)) == 0); -+ -+ /* -+ * Small usize can't come from an alignment larger than a page. -+ */ -+ assert(alignment <= PAGE); -+ - ret = arena_malloc(tsdn, arena, usize, sz_size2index(usize), - zero, tcache, true); - } else {