mirror of
https://github.com/apple/foundationdb.git
synced 2025-05-14 01:42:37 +08:00
Update to the latest jemalloc release (#7362)
Also remove our patch, since the fix is already present in the new release.
This commit is contained in:
parent
90bb3a7f8c
commit
849b1cd29a
@ -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
|
||||
|
@ -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 {
|
Loading…
x
Reference in New Issue
Block a user