Skip to content

Commit fe7aaff

Browse files
committed
Incorporate jemalloc_pool into libumf
Remove the separate static `jemalloc_pool` library. Make the `UMF_BUILD_LIBUMF_POOL_JEMALLOC` option turned ON by default. Incorporate jemalloc_pool into libumf. Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
1 parent e95d92e commit fe7aaff

28 files changed

+71
-88
lines changed

.github/workflows/coverity.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ jobs:
5050
-DUMF_DEVELOPER_MODE=OFF
5151
-DUMF_TESTS_FAIL_ON_SKIP=ON
5252
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
53-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
5453
5554
- name: Build
5655
run: |

.github/workflows/nightly.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ jobs:
7777
-DUMF_FORMAT_CODE_STYLE=OFF
7878
-DUMF_DEVELOPER_MODE=ON
7979
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
80-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
8180
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=OFF
8281
-DUMF_BUILD_CUDA_PROVIDER=OFF
8382
-DUMF_USE_VALGRIND=1
@@ -157,7 +156,6 @@ jobs:
157156
# -DUMF_FORMAT_CODE_STYLE=OFF ^
158157
# -DUMF_DEVELOPER_MODE=ON ^
159158
# -DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON ^
160-
# -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON ^
161159
# -DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON ^
162160
# -DUMF_BUILD_CUDA_PROVIDER=ON ^
163161
# -DUMF_TESTS_FAIL_ON_SKIP=ON

.github/workflows/performance.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ jobs:
7878
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON
7979
-DUMF_BUILD_CUDA_PROVIDER=ON
8080
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
81-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
8281
8382
- name: Build
8483
run: cmake --build ${{env.BUILD_DIR}} -j $(nproc)

.github/workflows/reusable_basic.yml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,6 @@ jobs:
164164
-DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
165165
-DUMF_FORMAT_CODE_STYLE=OFF
166166
-DUMF_DEVELOPER_MODE=ON
167-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
168167
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
169168
-DUMF_TESTS_FAIL_ON_SKIP=ON
170169
-DUMF_DISABLE_HWLOC=${{matrix.disable_hwloc}}
@@ -209,7 +208,6 @@ jobs:
209208
--install-dir ${{env.INSTL_DIR}}
210209
--build-type ${{matrix.build_type}}
211210
--disjoint-pool
212-
--jemalloc-pool
213211
${{ matrix.install_tbb == 'ON' && matrix.disable_hwloc != 'ON' && matrix.shared_library == 'ON' && '--proxy' || '' }}
214212
--umf-version ${{env.UMF_VERSION}}
215213
${{ matrix.shared_library == 'ON' && '--shared-library' || '' }}
@@ -280,7 +278,6 @@ jobs:
280278
-DUMF_FORMAT_CODE_STYLE=OFF
281279
-DUMF_DEVELOPER_MODE=ON
282280
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
283-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
284281
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=${{matrix.level_zero_provider}}
285282
-DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
286283
-DUMF_TESTS_FAIL_ON_SKIP=ON
@@ -300,7 +297,6 @@ jobs:
300297
--install-dir ${{env.INSTL_DIR}}
301298
--build-type ${{matrix.build_type}}
302299
--disjoint-pool
303-
--jemalloc-pool
304300
${{matrix.shared_library == 'ON' && '--proxy' || '' }}
305301
--umf-version ${{env.UMF_VERSION}}
306302
${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
@@ -339,7 +335,6 @@ jobs:
339335
-DUMF_FORMAT_CODE_STYLE=OFF
340336
-DUMF_DEVELOPER_MODE=ON
341337
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
342-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=OFF
343338
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON
344339
-DUMF_BUILD_CUDA_PROVIDER=ON
345340
-DUMF_TESTS_FAIL_ON_SKIP=ON
@@ -382,7 +377,6 @@ jobs:
382377
-DUMF_FORMAT_CODE_STYLE=OFF
383378
-DUMF_DEVELOPER_MODE=ON
384379
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
385-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=OFF
386380
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON
387381
-DUMF_BUILD_CUDA_PROVIDER=ON
388382
-DUMF_TESTS_FAIL_ON_SKIP=ON
@@ -481,7 +475,6 @@ jobs:
481475
-DUMF_DEVELOPER_MODE=ON
482476
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=OFF
483477
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
484-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
485478
-DUMF_BUILD_SHARED_LIBRARY=ON
486479
-DUMF_TESTS_FAIL_ON_SKIP=ON
487480
@@ -495,7 +488,6 @@ jobs:
495488
--install-dir ${{env.INSTL_DIR}}
496489
--build-type ${{env.BUILD_TYPE}}
497490
--disjoint-pool
498-
--jemalloc-pool
499491
--proxy
500492
--umf-version ${{env.UMF_VERSION}}
501493
--shared-library

.github/workflows/reusable_benchmarks.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ jobs:
6565
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON
6666
-DUMF_BUILD_CUDA_PROVIDER=ON
6767
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
68-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
6968
7069
- name: Build UMF on Linux
7170
if: matrix.os == 'ubuntu-latest'

.github/workflows/reusable_checks.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ jobs:
3939
-DUMF_BUILD_TESTS=OFF
4040
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=OFF
4141
-DUMF_BUILD_CUDA_PROVIDER=OFF
42-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=OFF
4342
4443
- name: Check C/C++ formatting
4544
run: cmake --build build --target clang-format-check

.github/workflows/reusable_codeql.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ jobs:
8282
-DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
8383
-DUMF_FORMAT_CODE_STYLE=OFF
8484
-DUMF_DEVELOPER_MODE=ON
85-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
8685
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON
8786
-DUMF_BUILD_CUDA_PROVIDER=ON
8887
-DUMF_TESTS_FAIL_ON_SKIP=ON

.github/workflows/reusable_dax.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ jobs:
8484
-DUMF_FORMAT_CODE_STYLE=OFF
8585
-DUMF_DEVELOPER_MODE=ON
8686
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
87-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
8887
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=OFF
8988
-DUMF_TESTS_FAIL_ON_SKIP=ON
9089
${{ matrix.build_type == 'Debug' && '-DUMF_USE_COVERAGE=ON' || '' }}

.github/workflows/reusable_fast.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ jobs:
102102
-DUMF_FORMAT_CODE_STYLE=OFF
103103
-DUMF_DEVELOPER_MODE=ON
104104
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=${{matrix.disjoint}}
105-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
106105
-DUMF_BUILD_TESTS=${{matrix.build_tests}}
107106
-DUMF_BUILD_EXAMPLES=ON
108107
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON

.github/workflows/reusable_gpu.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ jobs:
9393
-DUMF_BUILD_GPU_EXAMPLES=ON
9494
-DUMF_DEVELOPER_MODE=ON
9595
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
96-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
9796
-DUMF_BUILD_CUDA_PROVIDER=OFF
9897
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=OFF
9998
-DUMF_BUILD_${{inputs.name}}_PROVIDER=ON

.github/workflows/reusable_multi_numa.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ jobs:
4545
-DUMF_BUILD_TESTS=ON
4646
-DUMF_DEVELOPER_MODE=ON
4747
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
48-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=${{ matrix.os == 'rhel-9.1' && 'OFF' || 'ON' }}
4948
-DUMF_TESTS_FAIL_ON_SKIP=ON
5049
${{ matrix.build_type == 'Debug' && matrix.os == 'ubuntu-22.04' && '-DUMF_USE_COVERAGE=ON' || '' }}
5150

.github/workflows/reusable_proxy_lib.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ jobs:
5050
-DUMF_BUILD_TESTS=ON
5151
-DUMF_FORMAT_CODE_STYLE=OFF
5252
-DUMF_DEVELOPER_MODE=OFF
53-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
5453
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
5554
-DUMF_TESTS_FAIL_ON_SKIP=ON
5655
-DUMF_PROXY_LIB_BASED_ON_POOL=${{matrix.proxy_lib_pool}}

.github/workflows/reusable_sanitizers.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ jobs:
5858
-DUMF_BUILD_CUDA_PROVIDER=ON
5959
-DUMF_FORMAT_CODE_STYLE=OFF
6060
-DUMF_DEVELOPER_MODE=ON
61-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
6261
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
6362
-DUMF_USE_ASAN=${{matrix.sanitizers.asan}}
6463
-DUMF_USE_UBSAN=${{matrix.sanitizers.ubsan}}

.github/workflows/reusable_valgrind.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ jobs:
3030
-DUMF_FORMAT_CODE_STYLE=OFF
3131
-DUMF_DEVELOPER_MODE=ON
3232
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
33-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
3433
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=OFF
3534
-DUMF_BUILD_CUDA_PROVIDER=OFF
3635
-DUMF_USE_VALGRIND=1

CMakeLists.txt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ option(UMF_BUILD_CUDA_PROVIDER "Build CUDA memory provider" ON)
4040
option(UMF_BUILD_LIBUMF_POOL_DISJOINT
4141
"Build the libumf_pool_disjoint static library" OFF)
4242
option(UMF_BUILD_LIBUMF_POOL_JEMALLOC
43-
"Build the libumf_pool_jemalloc static library" OFF)
43+
"Build the libumf_pool_jemalloc static library" ON)
4444
option(UMF_BUILD_TESTS "Build UMF tests" ON)
4545
option(UMF_BUILD_GPU_TESTS "Build UMF GPU tests" OFF)
4646
option(UMF_BUILD_BENCHMARKS "Build UMF benchmarks" OFF)
@@ -113,6 +113,8 @@ endif()
113113

114114
if(NOT UMF_BUILD_LIBUMF_POOL_JEMALLOC)
115115
set(UMF_POOL_JEMALLOC_ENABLED FALSE)
116+
set(JEMALLOC_FOUND FALSE)
117+
set(JEMALLOC_LIBRARIES FALSE)
116118
elseif(WINDOWS)
117119
pkg_check_modules(JEMALLOC jemalloc)
118120
if(NOT JEMALLOC_FOUND)
@@ -190,6 +192,12 @@ if(JEMALLOC_FOUND OR JEMALLOC_LIBRARIES)
190192
message(STATUS " JEMALLOC_LIBRARIES = ${JEMALLOC_LIBRARIES}")
191193
message(STATUS " JEMALLOC_INCLUDE_DIRS = ${JEMALLOC_INCLUDE_DIRS}")
192194
message(STATUS " JEMALLOC_LIBRARY_DIRS = ${JEMALLOC_LIBRARY_DIRS}")
195+
else()
196+
set(UMF_POOL_JEMALLOC_ENABLED FALSE)
197+
message(
198+
STATUS
199+
"Disabling the Jemalloc Pool and tests and benchmarks that use it because jemalloc was not built/found."
200+
)
193201
endif()
194202

195203
if(UMF_DISABLE_HWLOC)
@@ -523,14 +531,14 @@ elseif(UMF_PROXY_LIB_BASED_ON_POOL STREQUAL SCALABLE)
523531
)
524532
endif()
525533
elseif(UMF_PROXY_LIB_BASED_ON_POOL STREQUAL JEMALLOC)
526-
if(UMF_BUILD_LIBUMF_POOL_JEMALLOC)
534+
if(UMF_POOL_JEMALLOC_ENABLED)
527535
set(UMF_PROXY_LIB_ENABLED ON)
528536
set(PROXY_LIB_USES_JEMALLOC_POOL ON)
529-
set(PROXY_LIBS jemalloc_pool umf)
537+
set(PROXY_LIBS umf)
530538
else()
531539
message(
532540
STATUS
533-
"Disabling the proxy library, because UMF_PROXY_LIB_BASED_ON_POOL==JEMALLOC but UMF_BUILD_LIBUMF_POOL_JEMALLOC is OFF"
541+
"Disabling the proxy library, because UMF_PROXY_LIB_BASED_ON_POOL==JEMALLOC but JEMALLOC was not found"
534542
)
535543
endif()
536544
else()

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ List of options provided by CMake:
101101
| UMF_BUILD_LEVEL_ZERO_PROVIDER | Build Level Zero memory provider | ON/OFF | ON |
102102
| UMF_BUILD_CUDA_PROVIDER | Build CUDA memory provider | ON/OFF | ON |
103103
| UMF_BUILD_LIBUMF_POOL_DISJOINT | Build the libumf_pool_disjoint static library | ON/OFF | OFF |
104-
| UMF_BUILD_LIBUMF_POOL_JEMALLOC | Build the libumf_pool_jemalloc static library | ON/OFF | OFF |
104+
| UMF_BUILD_LIBUMF_POOL_JEMALLOC | Build the libumf_pool_jemalloc static library | ON/OFF | ON |
105105
| UMF_BUILD_TESTS | Build UMF tests | ON/OFF | ON |
106106
| UMF_BUILD_GPU_TESTS | Build UMF GPU tests | ON/OFF | OFF |
107107
| UMF_BUILD_BENCHMARKS | Build UMF benchmarks | ON/OFF | OFF |
@@ -279,7 +279,7 @@ To enable this feature, the `UMF_BUILD_LIBUMF_POOL_DISJOINT` option needs to be
279279
Jemalloc pool is a [jemalloc](https://github.com/jemalloc/jemalloc)-based memory
280280
pool manager built as a separate static library: libjemalloc_pool.a on Linux and
281281
jemalloc_pool.lib on Windows.
282-
The `UMF_BUILD_LIBUMF_POOL_JEMALLOC` option has to be turned `ON` to build this library.
282+
The `UMF_BUILD_LIBUMF_POOL_JEMALLOC` option has to be turned `ON` to build this library (it is turned `ON` by default).
283283

284284
[jemalloc](https://github.com/jemalloc/jemalloc) is required to build the jemalloc pool.
285285

@@ -298,8 +298,9 @@ The default jemalloc package is required on Windows.
298298
##### Requirements
299299

300300
1) The `UMF_BUILD_LIBUMF_POOL_JEMALLOC` option turned `ON`
301-
2) Required packages:
302-
- jemalloc (Windows only)
301+
2) jemalloc is required:
302+
- on Linux and MacOS: jemalloc is fetched and built from sources (a custom build),
303+
- on Windows: the default jemalloc package is required
303304

304305
#### Scalable Pool (part of libumf)
305306

benchmark/CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ function(add_umf_benchmark)
5151

5252
set(BENCH_NAME umf-${ARG_NAME})
5353

54-
set(BENCH_LIBS ${ARG_LIBS} umf)
54+
set(BENCH_LIBS ${ARG_LIBS} umf umf_utils)
5555

5656
add_umf_executable(
5757
NAME ${BENCH_NAME}
@@ -121,8 +121,7 @@ set(LIB_DIRS ${LIBHWLOC_LIBRARY_DIRS})
121121
if(UMF_BUILD_LIBUMF_POOL_DISJOINT)
122122
set(LIBS_OPTIONAL ${LIBS_OPTIONAL} disjoint_pool)
123123
endif()
124-
if(UMF_BUILD_LIBUMF_POOL_JEMALLOC)
125-
set(LIBS_OPTIONAL ${LIBS_OPTIONAL} jemalloc_pool ${JEMALLOC_LIBRARIES})
124+
if(UMF_POOL_JEMALLOC_ENABLED)
126125
set(LIB_DIRS ${LIB_DIRS} ${JEMALLOC_LIBRARY_DIRS})
127126
endif()
128127
if(LINUX)

benchmark/multithread.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,13 @@ int main() {
139139
// ctest looks for "PASSED" in the output
140140
std::cout << "PASSED" << std::endl;
141141

142+
#if defined(UMF_BUILD_LIBUMF_POOL_DISJOINT)
142143
ret = umfDisjointPoolParamsDestroy(hDisjointParams);
143144
if (ret != UMF_RESULT_SUCCESS) {
144145
std::cerr << "disjoint pool params destroy failed" << std::endl;
145146
return -1;
146147
}
148+
#endif
147149

148150
return 0;
149151
}

examples/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ if(LINUX)
282282
add_umf_executable(
283283
NAME ${EXAMPLE_NAME}
284284
SRCS dram_and_fsdax/dram_and_fsdax.c
285-
LIBS umf jemalloc_pool)
285+
LIBS umf)
286286

287287
target_link_options(${EXAMPLE_NAME} PRIVATE "-Wl,--no-as-needed,-ldl")
288288

examples/dram_and_fsdax/CMakeLists.txt

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,15 @@ if(NOT LIBHWLOC_FOUND)
2121
find_package(LIBHWLOC 2.3.0 REQUIRED hwloc)
2222
endif()
2323

24-
# find the custom jemalloc pointed by CMAKE_PREFIX_PATH
25-
find_package(JEMALLOC REQUIRED jemalloc)
26-
2724
# build the example
2825
set(EXAMPLE_NAME umf_example_dram_and_fsdax)
2926
add_executable(${EXAMPLE_NAME} dram_and_fsdax.c)
3027
target_include_directories(${EXAMPLE_NAME} PRIVATE ${LIBUMF_INCLUDE_DIRS})
3128

32-
target_link_directories(
33-
${EXAMPLE_NAME}
34-
PRIVATE
35-
${LIBUMF_LIBRARY_DIRS}
36-
${LIBHWLOC_LIBRARY_DIRS}
37-
${JEMALLOC_LIBRARY_DIRS})
29+
target_link_directories(${EXAMPLE_NAME} PRIVATE ${LIBUMF_LIBRARY_DIRS}
30+
${LIBHWLOC_LIBRARY_DIRS})
3831

39-
target_link_libraries(
40-
${EXAMPLE_NAME} PRIVATE hwloc jemalloc_pool ${JEMALLOC_LIBRARIES}
41-
${LIBUMF_LIBRARIES})
32+
target_link_libraries(${EXAMPLE_NAME} PRIVATE hwloc ${LIBUMF_LIBRARIES})
4233

4334
# an optional part - adds a test of this example
4435
add_test(
@@ -54,6 +45,6 @@ if(LINUX)
5445
TEST ${EXAMPLE_NAME}
5546
PROPERTY
5647
ENVIRONMENT_MODIFICATION
57-
"LD_LIBRARY_PATH=path_list_append:${LIBUMF_LIBRARY_DIRS};LD_LIBRARY_PATH=path_list_append:${LIBHWLOC_LIBRARY_DIRS};LD_LIBRARY_PATH=path_list_append:${JEMALLOC_LIBRARY_DIRS}"
48+
"LD_LIBRARY_PATH=path_list_append:${LIBUMF_LIBRARY_DIRS};LD_LIBRARY_PATH=path_list_append:${LIBHWLOC_LIBRARY_DIRS}"
5849
)
5950
endif()

scripts/qemu/run-build.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ cmake .. \
2626
-DUMF_FORMAT_CODE_STYLE=OFF \
2727
-DUMF_DEVELOPER_MODE=ON \
2828
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON \
29-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON \
3029
-DUMF_BUILD_EXAMPLES=ON \
3130
-DUMF_USE_COVERAGE=${COVERAGE} \
3231
-DUMF_TESTS_FAIL_ON_SKIP=ON

src/CMakeLists.txt

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,19 @@ set(UMF_SOURCES
6969
critnib/critnib.c
7070
ravl/ravl.c
7171
pool/pool_proxy.c
72+
pool/pool_jemalloc.c
7273
pool/pool_scalable.c)
7374

75+
if(UMF_POOL_JEMALLOC_ENABLED)
76+
set(UMF_LIBS ${UMF_LIBS} ${JEMALLOC_LIBRARIES})
77+
set(UMF_PRIVATE_LIBRARY_DIRS ${UMF_PRIVATE_LIBRARY_DIRS}
78+
${JEMALLOC_LIBRARY_DIRS})
79+
set(UMF_PRIVATE_INCLUDE_DIRS ${UMF_PRIVATE_INCLUDE_DIRS}
80+
${JEMALLOC_INCLUDE_DIRS})
81+
set(UMF_COMMON_COMPILE_DEFINITIONS ${UMF_COMMON_COMPILE_DEFINITIONS}
82+
"UMF_POOL_JEMALLOC_ENABLED=1")
83+
endif()
84+
7485
if(NOT UMF_DISABLE_HWLOC)
7586
set(UMF_SOURCES ${UMF_SOURCES} ${HWLOC_DEPENDENT_SOURCES}
7687
memtargets/memtarget_numa.c)
@@ -146,15 +157,19 @@ else()
146157
LIBS ${UMF_LIBS})
147158
endif()
148159

160+
target_include_directories(umf PRIVATE ${UMF_PRIVATE_INCLUDE_DIRS})
161+
target_link_directories(umf PRIVATE ${UMF_PRIVATE_LIBRARY_DIRS})
162+
target_compile_definitions(umf PRIVATE ${UMF_COMMON_COMPILE_DEFINITIONS})
163+
149164
add_dependencies(umf coarse)
150165

151166
if(UMF_LINK_HWLOC_STATICALLY)
152167
add_dependencies(umf ${UMF_HWLOC_NAME})
153168
endif()
154169

155-
target_link_directories(umf PRIVATE ${UMF_PRIVATE_LIBRARY_DIRS})
156-
157-
target_compile_definitions(umf PRIVATE ${UMF_COMMON_COMPILE_DEFINITIONS})
170+
if(NOT WINDOWS AND UMF_POOL_JEMALLOC_ENABLED)
171+
add_dependencies(umf jemalloc)
172+
endif()
158173

159174
if(UMF_BUILD_LEVEL_ZERO_PROVIDER)
160175
if(LINUX)

src/libumf.def

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ EXPORTS
3636
umfFileMemoryProviderParamsSetVisibility
3737
umfGetIPCHandle
3838
umfGetLastFailedMemoryProvider
39+
umfJemallocPoolOps
40+
umfJemallocPoolParamsCreate
41+
umfJemallocPoolParamsDestroy
42+
umfJemallocPoolParamsSetKeepAllMemory
3943
umfLevelZeroMemoryProviderOps
4044
umfLevelZeroMemoryProviderParamsCreate
4145
umfLevelZeroMemoryProviderParamsDestroy

0 commit comments

Comments
 (0)