Johannes Schindelin
948a0c44df
Lazy-load psapi.dll
...
Let's load the `GetProcessMemoryInfo()` function dynamically. When
needed. If needed.
This is necessary because the start-up cost spent on loading dynamic
libraries is non-negligible.
Note: In contrast to how `os.c` loads libraries and obtains function
addresses, we cannot call `FreeLibrary(hDll)` here because that would
unload the `bcrypt` library before we want to use it.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-12-03 01:12:59 +01:00
Johannes Schindelin
11cab6a0c0
Avoid %z
format
...
This format is not supported by MSVC runtimes targeted by the mingw-64
toolchain.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-12-03 00:24:43 +01:00
Johannes Schindelin
2c40e0d02f
Allow running in Windows Nano Server containers
...
The `GetNumaProcessorNode()` symbol is not defined in Nano Server's DLLs
(because that function is long deprecated). This causes problems with
any executable that uses mimalloc when trying to run on Nano Server.
Instead of importing this function statically, try to import it
dynamically, and fall back gracefully if it cannot be loaded.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-12-03 00:24:43 +01:00
Johannes Schindelin
745a34f475
Fix whitespace
...
This mostly deletes trailing spaces.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-12-03 00:24:20 +01:00
Daan Leijen
ddc9841019
fix parameters for mi_track_free
2022-11-28 11:12:35 -08:00
Daan Leijen
10981ab122
add initial support for using mimalloc with address sanitizer support; use -DMI_ASAN=ON
2022-11-28 10:55:19 -08:00
Daan Leijen
76db72814c
fix unused parameter warning in clang
2022-11-28 10:54:45 -08:00
Daan Leijen
e42a22c9ca
fix warnings
2022-11-28 09:59:48 -08:00
Daan Leijen
be2bc9e7ca
better attributes on new/delete overrides for Microsoft visual C++
2022-11-28 09:15:16 -08:00
Vadim Markovtsev
7da4a34dc1
Make "destroy" a compile-time constant + fix const allocator comparisons
2022-11-28 12:04:12 +01:00
Daan Leijen
c1299484de
refactor C++ STL allocator definitions (pr #651 )
2022-11-27 13:00:15 -08:00
Daan
4295b9cc5f
Merge pull request #651 from vmarkovtsev/dry
...
Refactor C++ allocators to be DRY and protected
2022-11-27 12:12:11 -08:00
Daan
8098040c23
add pointer validity check on malloc_size when overriding on macOSX; issue #638
2022-11-25 16:38:20 -08:00
Daan
2d79ae7ecf
Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev
2022-11-25 15:44:31 -08:00
Daan
81b261e657
add test for #587
2022-11-25 15:44:24 -08:00
Daan Leijen
604d4b259b
fix assertion failure (issue #650 )
2022-11-25 14:27:48 -08:00
Daan
78af17e3b3
add extra alignment test
2022-11-25 14:03:00 -08:00
Vadim Markovtsev
4cdfc18888
Refactor C++ allocators to be DRY and protected
2022-11-24 15:13:19 +01:00
Daan Leijen
4b56af178e
remove ,not all freed, messag
...
e from reserved and committed stats (as that is expected at normal process exit)
2022-11-23 10:06:35 -08:00
Daan Leijen
a7bd9c08c8
fix decommit of huge pages
2022-11-23 09:58:45 -08:00
Daan Leijen
e7dac7c405
prevent retiring pages in the huge queue (which may have a small size but huge alignment)
2022-11-22 21:02:05 -08:00
Daan Leijen
db0a69b482
remove comment
2022-11-22 20:57:31 -08:00
Daan Leijen
969d8bc5fe
make huge pages part of the regular page queues again
2022-11-22 20:56:35 -08:00
Daan Leijen
fed883c81f
refactor mi_segment_init fix
2022-11-22 18:44:27 -08:00
Daan Leijen
00a42bf379
refactor mi_segment_init
2022-11-22 18:42:05 -08:00
Daan Leijen
78690fbec2
fix proteced status in stl allocator (pr #625 )#
2022-11-22 18:41:51 -08:00
Daan Leijen
7dce31f743
reenable decommitting of a huge aligned prefix
2022-11-22 18:13:27 -08:00
Daan Leijen
061bbe25b0
update readme
2022-11-22 17:17:14 -08:00
Daan Leijen
9617f16df9
add STL allocators that use a specific heap and can destroy at the end; see original PR #625 by @vmarkovtsev
2022-11-22 16:58:32 -08:00
Daan Leijen
6e2b077b35
rename to heap_alloc_new and heap_alloc_new_n
2022-11-22 14:48:26 -08:00
Daan Leijen
34910664f1
add mi_heap_new_ and mi_heap_new_n
2022-11-22 14:46:23 -08:00
Daan
fe300ca141
fix extern inline definition (issue #643 )
2022-11-22 10:58:02 -08:00
Daan
631f22fbda
change library linkage to PRIVATE (issue #646 )
2022-11-22 10:54:40 -08:00
Daan Leijen
e6ab602ca1
add comment
2022-11-21 10:24:02 -08:00
Daan Leijen
35d332141d
experimental destroy_on_exit option for statically linked mimalloc in a dynamically unloaded DLL
2022-11-18 11:00:23 -08:00
Daan Leijen
18cf94dff6
move keys field in the page struct to keep offsets in the fast path the same for different build variants
2022-11-18 10:14:37 -08:00
Daan Leijen
8834e128e8
improve mi_free codegen
2022-11-18 10:13:51 -08:00
daan
2479d168ad
decommit unused prefix of large aligned blocks
2022-11-07 16:41:40 -08:00
daan
27fc2cf17e
fix random initializer
2022-11-07 14:57:07 -08:00
daan
56ab9ee06a
update azure pipeline to ubuntu 22.04
2022-11-07 14:55:36 -08:00
daan
841172bd7d
fix link error on windows
2022-11-07 14:51:07 -08:00
daan
3e1d800e9b
potential fix for windows static linking with thread creation in dll's
2022-11-07 14:47:53 -08:00
daan
312ce6f916
bump version to v1.7.8 for further development
2022-11-07 11:36:44 -08:00
daan
2daec6c72f
add more comments
2022-11-07 11:23:04 -08:00
daan
1f12c3dd12
remove MI_ALIGNMENT_MAX and add comments
2022-11-07 11:13:42 -08:00
daan
711aad7a75
refactor arena allocation
2022-11-07 11:13:29 -08:00
Daan
d1ae630dec
Merge branch 'dev-align' of https://github.com/microsoft/mimalloc into dev-align
2022-11-06 14:51:37 -08:00
Daan
3eb616f2bf
fix bug in secure mode where adjustment would make the page size less than the blocksize on the first page of a segment
2022-11-06 14:51:06 -08:00
daan
f788e3c9a3
add comment
2022-11-06 14:18:52 -08:00
Daan
d3715132d1
move null ptr check
2022-11-06 09:52:54 -08:00
Daan
f54e64365f
fix assertions with incorrect block size for large alignments
2022-11-06 09:44:12 -08:00
daan
a200291ae5
further progress on removing aligned limit
2022-11-06 08:26:17 -08:00
daan
4b91ff760d
initial working large alignment
2022-11-05 16:40:42 -07:00
daan
6a80fa3ac1
initial progress on removing alignment limit
2022-11-05 14:46:52 -07:00
daan
fe61be80bf
update to v1.7.7
v1.7.7
2022-11-03 17:03:57 -07:00
daan
3bf299cd2b
add comment on crash on Windows server 2019
2022-11-02 10:56:13 -07:00
daan
6e0f10dfd8
potential fix for link error with clang-cl (issue #631 )
2022-11-02 10:25:46 -07:00
daan
5ad06f9997
fix compiler warning on unused parameter (issues #251 )
2022-11-02 09:50:49 -07:00
daan
2d3f0e5b7a
fix align5 test
2022-11-01 16:34:17 -07:00
daan
ad1da7cfc8
fix warnings
2022-11-01 16:29:10 -07:00
daan
e6bd41ba3f
update arena_id api
2022-11-01 16:26:17 -07:00
daan
0a691ca68e
fix off by one in arena id
2022-11-01 14:05:04 -07:00
daan
fe2d5aa8ff
initial work on heaps restricted to specific arena's
2022-11-01 14:00:20 -07:00
daan
65eb5c65ec
relax restriction of size to be an integral multiple of the alignment in 'alloc_aligned' as too many programs need this; see PR #584
2022-10-31 16:07:29 -07:00
daan
3ad4639aea
fix atomic lib reference, see PR #586
2022-10-31 15:53:36 -07:00
daan
7cb1fdc44e
nicer style for pc_libraries
2022-10-31 15:49:04 -07:00
daan
4dcd7e6842
fix version number in pc-config
2022-10-31 15:47:00 -07:00
Daan
907d04c27c
Merge pull request #595 from eli-schwartz/pkg-config
...
cmake: add pkg-config file
2022-10-31 15:42:08 -07:00
Daan
4c241139e9
Merge pull request #588 from TApplencourt/dev
...
Add support for IntelLLVM
2022-10-31 15:32:31 -07:00
daan
d8dd297974
add cmake option MI_WIN_REDIRECT to be able to explicitly disable linking with mimalloc-redirect on windows; always OFF on ARM, fixes issue #591 and #590
2022-10-31 15:26:21 -07:00
daan
c4663463d1
add mi_cdecl to functions to avoid errors when compiling with a different calling convention, see PR #592
2022-10-31 12:16:34 -07:00
daan
698bb2cae7
split out _mi_page_try_use_delayed_free for contention reduction (issue #630 )
2022-10-31 11:01:01 -07:00
daan
7bef5f5f5b
reduce contention on the delayed_free lock; see issue #630
2022-10-31 10:34:55 -07:00
daan
bdc9dc3e4e
update vs project for valgrind
2022-10-31 10:12:13 -07:00
daan
751e456767
possible fix for warning in issue #635
2022-10-31 08:34:20 -07:00
daan
0a8d7d98d8
fix valgrind link
2022-10-30 19:18:02 -07:00
daan
74117d329d
fix realloc memory tracking in valgrind
2022-10-30 19:00:54 -07:00
daan
0ea5235cd1
update readme for valgrind
2022-10-30 14:55:32 -07:00
daan
72c4f0d2ab
update readme
2022-10-30 14:53:11 -07:00
daan
640376a500
update readme
2022-10-30 14:52:26 -07:00
daan
74d002b61c
better cmake process for MI_VALGRIND
2022-10-30 14:20:35 -07:00
daan
05a75758dd
fix tests
2022-10-30 14:07:41 -07:00
daan
886fd7d1b8
add cmakefile MI_VALGRIND option
2022-10-30 12:49:29 -07:00
daan
b48040e20a
set pages to noaccess explicitly for valgrind precision
2022-10-30 12:23:11 -07:00
daan
6e11a054a4
further improve precision of malloc/free tracking in valgrind
2022-10-30 12:03:14 -07:00
daan
84c706508c
fix false positives from valgrind in rptest
2022-10-30 10:45:51 -07:00
daan
a1f5a5d962
fix various false positives in test-stress from valgrind
2022-10-29 14:37:55 -07:00
daan
c61b365e76
valgrind works on test-stress
2022-10-29 11:51:04 -07:00
daan
eee7c40da5
updates to run valgrind on test-api
2022-10-29 11:43:09 -07:00
daan
bc8f23aa0d
rename track macros to lowercase
2022-10-29 10:44:10 -07:00
daan
093724bdef
add test file for valgrind integration
2022-10-28 20:07:31 -07:00
daan
6eeb81ee05
initial progress on valgrind integration
2022-10-28 19:54:56 -07:00
Eli Schwartz
eb97236652
cmake: add pkg-config file
...
pkg-config allows using the library in build systems that are not cmake,
by exporting the same information from the cmake -config files in a
buildsystem-neutral format.
Fixes #16
2022-06-19 14:45:44 -04:00
Thomas Applencourt
8cb6ba2221
add support for IntelLLVM
2022-06-06 16:18:33 +00:00
Daan Leijen
eb29d6b06f
fix warning on windows
2022-05-21 10:21:38 -07:00
Daan Leijen
864e4be5ce
add is_aligned check
2022-04-20 17:33:31 -07:00
Daan Leijen
d9f6ab58c5
comments
2022-04-19 20:16:49 -07:00
Daan Leijen
f76a678c04
fix mi_likely macro in debug build
2022-04-19 19:59:45 -07:00
Daan Leijen
cea47b8560
compile with /Zc:__cplusplus in vs2022
2022-04-19 19:56:53 -07:00
Daan Leijen
7bc602ebb4
redefine mi_likely/mi_unlikely to work with C++ 20 [[likely]] attributes
2022-04-19 19:50:06 -07:00