Commit Graph

725 Commits

Author SHA1 Message Date
daan
ff0d98883e update comments 2020-09-03 10:00:01 -07:00
daan
900c97664a merge from dev-atomic 2020-09-03 09:47:01 -07:00
daan
b4825372ab small compilation warning fixes (extra semicolon etc) 2020-08-29 19:30:38 -07:00
Tim Blechmann
1190e0c053 iOS compile fix
`crt_externs.h` is available only available with iOS-13 sdk. we
therefore add a `__has_include` check to see if it is actually available
2020-08-26 11:47:24 +08:00
daan
3f8ff12e66 avoid use of %z format specifier 2020-08-15 11:42:28 -07:00
daan
5805c39916 enable --std=c99 compilation; fix mingw compilation 2020-08-09 17:55:17 -07:00
daan
d88a7470a0 merge from master 2020-08-06 13:19:01 -07:00
Gal Ben David
1583a73c66
Adding conditional _DEFAULT_SOURCE definition
In order to avoid `_DEFAULT_SOURCE` redefinition warnings, I've wrapped the define statement with an `ifndef`.
2020-08-06 14:29:25 +03:00
daan
9e7322f900 collect memory on process exit for statically linked library (issue #281 2020-07-29 21:27:01 -07:00
daan
47572aceca improved NUMA node detection on Windows (for AMD Ryzen), issue #282 2020-07-29 14:36:21 -07:00
Daan
5da3ef4ca1
Merge pull request #280 from devnexen/haiku_stats
Haiku stats
2020-07-27 08:33:25 -07:00
Daan
3d0b91457e
Merge pull request #278 from devnexen/illumos_prevent_some_flags
some apis are available on Illumos which are not available on stock S…
2020-07-27 08:32:01 -07:00
daan
ef8e5d18a6 replace atomics with C11/C++ atomics with explicit memory order; passes tsan. Issue #130 2020-07-26 18:01:33 -07:00
daan
a468430772 strengthen memory order of bit operations; insert memory fences 2020-07-26 14:19:30 -07:00
daan
a9f46dc86f reduce memory order constraints for better efficiency on ARM etc 2020-07-26 11:58:02 -07:00
daan
116159cd40 use RtlGenRandom on windows to enable compilation as C++ even with dynamic override 2020-07-26 11:57:14 -07:00
David Carlier
d964be2caa getting resident mem at least 2020-07-26 18:56:10 +00:00
David Carlier
eb1188a1dd Enables subset of stats for haiku. 2020-07-26 17:00:54 +00:00
daan
28014ee2bc fix atomic access for MADV_FREE in os_reset 2020-07-26 00:16:17 -07:00
daan
95afd0509f make segment abandoned_next atomic; tsan passes without warnings now (issue #130) 2020-07-25 23:50:22 -07:00
daan
09ade02429 bring inline with C11 atomics; no volatile and cas order of expected/desired 2020-07-25 22:52:27 -07:00
daan
e27422adca switch to using C++ atomics in MSVC as well 2020-07-25 20:55:45 -07:00
daan
70be91d6b8 reduce tsan warning by ensuring a require edge; issue #130 2020-07-22 15:28:14 -07:00
daan
8aa18d3661 fix TSAN warning for statistics maximum, issue #130 2020-07-22 14:16:18 -07:00
daan
2e1b4f512d make max update in the stats atomic 2020-07-22 13:45:04 -07:00
daan
341048f61e avoid atomic operations on statistics if zero 2020-07-22 11:08:16 -07:00
David Carlier
2254e20d4c some apis are available on Illumos which are not available on stock Solaris
thus availability evelavated from cflags. discard some sporadically for large pages
support mainly.
2020-07-22 18:26:32 +01:00
Daan
532447fb33
Merge pull request #272 from devnexen/illumos_build
illumos support/build fix and large page support
2020-07-21 18:46:28 -07:00
Daan
e5ede9c723
Merge pull request #264 from DerVogel2020/dev
use stored pointer #257
2020-07-21 18:35:51 -07:00
Daan
56b58a8021
Merge pull request #267 from devnexen/haiku_support
haiku support.
2020-07-21 18:32:40 -07:00
daan
8769082d63 add pointer validity check in debug mode for mi_usable_size/mi_realloc/mi_expand. Issue #269 2020-07-20 14:33:03 -07:00
Daan
457fcbd9d5
Merge pull request #274 from Tyler-IN/agnostic-posix-musl-support
Posix / Musl Compatibility
2020-07-20 11:34:58 -07:00
daan
5f51c97fbd override aligned_alloc always if using C compilation (issue #276) 2020-07-20 11:27:42 -07:00
daan
892ec12611 Support Windows Vista and XP for NUMA aware alloction (issue #277) 2020-07-20 11:10:45 -07:00
David Carlier
0c550d1626 illumos support/build fix and large page support 2020-07-10 03:26:14 +01:00
Tyler Young
b9a7f5cfae
fix mman.h ref 2020-07-09 10:58:47 -04:00
David Carlier
7e48eb033c haiku support.
TLS unsupported thus disabled.
2020-06-28 13:53:45 +00:00
Wanja Vogel
2599512e8f use stored pointer #257 2020-06-18 18:20:26 +02:00
daan
4ecce78d66 Merge branch 'master' into dev 2020-06-17 19:28:15 -07:00
daan
5a6d9ba807 fix handling of failing to allocate heap metadata on thread creation, issue #257 2020-06-17 19:07:32 -07:00
daan
32b3608581 simplify initial main tld declaration 2020-06-17 13:12:05 -07:00
Wanja Vogel
d5475a58a1 fix: avoid warning
warning C26451: Arithmetic overflow: Using operator '+' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '+' to avoid overflow (io.2).
2020-06-10 07:47:50 +02:00
daan
66048cb6cc fix return value for page_unreset 2020-05-19 13:31:24 -07:00
daan
6f73cc8b1d Merge branch 'master' into dev 2020-05-19 10:41:08 -07:00
daan
a09a64e29b add extra check in mi_page_unreset to not unreset for huge OS pages 2020-05-19 10:40:46 -07:00
Daan
0ed478089e
Merge pull request #242 from devnexen/ios_build_fix
IOS build fix, large pages unsupported.
2020-05-19 10:21:32 -07:00
daan
a7d2bc8ad6 edit warning messages to be more consistent 2020-05-19 10:16:28 -07:00
daan
74986c1dd1 weaken aligmenment assertion (issue #245) 2020-05-19 09:56:37 -07:00
daan
a52b38342d Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2020-05-19 09:55:08 -07:00
Daan Leijen
c9ffe30513 weaken alignment requirement to not need to be a multiple of sizeof(void*); see #246 2020-05-18 10:17:58 -07:00
Daan Leijen
bf6b781e40 fix semicolon (#247) 2020-05-18 10:08:18 -07:00
David Carlier
0ea4e3f279 IOS build fix, large pages unsupported. 2020-05-07 20:09:16 +01:00
daan
967513d536 add extra checks if unreset (commit) succeeds 2020-05-06 11:35:35 -07:00
daan
4f020e5da4 put a bound on the environment search 2020-05-05 20:19:20 -07:00
daan
45974efdb7 use environ on posix systems to read environment variables before the C runtime is initialized (issue #241) 2020-05-05 19:37:50 -07:00
daan
29cb8f369a slight cleanup of f10ba4fa, #239 2020-05-05 10:24:16 -07:00
Daan
f10ba4fa44
Merge pull request #239 from asl/oom-collect
In OOM case try to force collect memory and retry the allocation
2020-05-05 10:16:28 -07:00
daan
a278db940b improve thread-id check for thread local FLS callbacks on Windows with static linking 2020-05-05 10:10:46 -07:00
daan
7c24edfeb0 add thread-id check for thread local FLS callbacks on Windows with static linking; found by @jasongibson 2020-05-04 14:31:32 -07:00
daan
9c0da9776d fix assertion for huge block size 2020-05-03 11:43:57 -07:00
daan
097c007ba3 reduce page retire cycles based on object size 2020-05-02 00:19:20 -07:00
Daan
81bd1b70b0
Merge pull request #238 from asl/gcc-6-aligned-dealloc
Fix override condition for sized dealloc with gcc 6
2020-05-01 14:16:20 -07:00
daan
5cfdc39ff1 remove on-demand page commit option 2020-04-30 18:23:33 -07:00
daan
0af9dd6fd2 fix initialization of union padding; issue found through valgrind by @jasongibson 2020-04-30 17:40:00 -07:00
Anton Korobeynikov
fdd1cd821a In OOM case try to force collect memory and retry the allocation. 2020-04-29 02:10:11 +03:00
daan
9a33f23b5f fix MI_SHOW_ERRORS on msvc 2020-04-28 11:11:23 -07:00
daan
8f5710abcc Merge branch 'master' into dev 2020-04-28 11:07:55 -07:00
Daan
07e80aebb7
Merge branch 'dev' into xmalloc 2020-04-28 10:53:34 -07:00
Daan
9ba16f2df9
Merge pull request #232 from asl/cmake-err-warn-default
Add cmake option to specify whether warnings / errors are enabled by default
2020-04-28 10:51:30 -07:00
Anton Korobeynikov
0b440d9543 Apparently gcc 6 defines __cpp_aligned_new in C++14 mode, however no std::align_val_t is available there
for obvious reasons
2020-04-28 19:09:54 +03:00
Anton Korobeynikov
079b886feb Add cmake option to specify whether warnings / errors are enabled by default.
Currently warnings / errors are enabled by default in debug build.
Otherwise they could be enabled only via environmental variable or
API option call. Add possibility to specify the default during the
build time. This simplifies e.g. integration of the library into
bigger projects as no source changes would be required.
2020-04-28 16:44:44 +03:00
Anton Korobeynikov
2f1fc1df5c Add xmalloc()-like functionality.
xmalloc is a non-standard extension forcing malloc() to
abort should the memory allocation failed instead of returning a
null pointer. Such functionality is quite useful as it provides one
single point of error handling if the caller of malloc() does not
check the result (as it often does!) and segfault is ocurring somewhere
else. If more fine-grained control is necessary one could register a custom
error handler, however, this might not be an option while interposing.
2020-04-28 16:38:47 +03:00
Nicolas
f40aaad876
Fix typo in comment
Usuelly->Usually
2020-04-24 23:20:28 -03:00
Daan Leijen
798cd6647d use line-buffered output for statistics (issue #235 2020-04-24 07:43:21 -07:00
daan
a5bf45cd1e add commit check on page reclaim 2020-04-23 21:01:06 -07:00
daan
74a01d05af check commit/protect if eager_commit is disabled 2020-04-23 20:48:55 -07:00
daan
7123efb397 pass full commit flag to free, possible fix for issue #218 2020-04-23 20:19:48 -07:00
daan
0d3c141243 add check for if commit fails in segment allocation 2020-04-23 17:28:44 -07:00
Anton Korobeynikov
fe976caaea Provide zone_size function: free() uses it to find the zone pointer belongs to in order to call the corresponding zone_free function 2020-04-21 15:10:49 +03:00
Anton Korobeynikov
07d72f4fba Do not forget to include malloc zone implementation in the static object 2020-04-21 15:08:27 +03:00
Anton Korobeynikov
4a0c53ba5a Fix the prototype of malloc_size. Otherwise we'll end with invalid
redeclaration if malloc/malloc.h is pulled on Darwin
2020-04-21 15:07:32 +03:00
daan
e31298bdc3 fix compiler warning in secure mode 2020-04-20 18:04:09 -07:00
daan
093db6af24 possible fix for memory instability on Win7 (#230) 2020-04-20 09:33:19 -07:00
daan
77acf5a868 more careful overriding of aligned_alloc for compilation on Conda (#219) 2020-04-20 09:27:43 -07:00
daan
211038c4e5 (possible) fix for overriding of aligned_alloc on systems that define it as static inline. issue #219 2020-04-15 11:55:54 -07:00
Daan
ea558cadba
Merge pull request #227 from devnexen/android_build_fix
Android build fix proposal.
2020-04-15 11:23:04 -07:00
daan
1116c0df2e fix strnlen do not search beyond n characters, issue #228 2020-04-14 17:42:30 -07:00
David Carlier
6c5039bad1 Android build fix proposal.
malloc_usable_size has different signature on this platform.
thread and real time apis are part of bionic.
2020-04-14 14:20:56 +01:00
daan
69a0846478 add MI_PADDING flag to cmake to supress use of padding in debug mode 2020-04-07 10:01:18 -07:00
daan
afc4f79a69 fix for ensuring heap initialization with static linking on windows on huge allocations (issues #221) 2020-04-06 12:15:12 -07:00
daan
84b9b8878e possible fix for issue #221 2020-04-06 11:49:32 -07:00
daan
34d3b8c47f add version check for mingw compilation and add FlsAlloc definitions if required 2020-04-06 11:25:25 -07:00
daan
0a3e5bb699 further fixes to compile on mingw without warnings (issue #217) 2020-04-06 10:56:53 -07:00
daan
0f3bd05fd5 fix mingw compilation for numa awareness (issue #217) 2020-04-06 10:03:30 -07:00
Daan
64e8cfa942
Merge pull request #216 from devnexen/dev_32bits_warning_fixes
32 bits build fix proposal.
2020-04-06 08:09:06 -07:00
Daan
1ece3ff6aa
Merge pull request #220 from cormacrelf/usable_size
Don't call mi_page_usable_size_of with an aligned pointer
2020-04-06 08:05:34 -07:00
Cormac Relf
0047b271f7 Call mi_page_usable_size_of with unaligned block rather than start of aligned memory 2020-04-06 22:50:21 +10:00
David Carlier
c0b06949cb 32 bits build fix proposal. 2020-03-20 17:38:14 +00:00
daan
7745dde8d2 allow retirement for all object sizes (issue #212) 2020-03-16 15:31:37 -07:00
daan
72f758c433 fix issue #210 where multiple static instances of mimalloc in DLL's compete for the same virtual memory area 2020-03-06 16:43:39 -08:00