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
Haneef Mubarak
429025634e
resolve #201 with a platform-selective REP MOVSB implementation
2020-05-26 16:04:28 -07: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
daan
5bc276c23b
fix issue #208 : dynamic unloading of DLL with statically linked mimalloc
2020-03-06 16:24:51 -08:00
daan
ab202fbe73
never free the main heap structures; issues #207
2020-03-06 15:53:07 -08:00
daan
ec61224db0
fix padding issue with zero sized allocation (issue #209 )
2020-02-18 20:05:30 -08:00
daan
baf08e8d54
fix size check on overflow when padding is enabled in debug mode
2020-02-17 09:59:34 -08:00
daan
f2ac272baa
strengthen alignment check for memalign and aligned_alloc
2020-02-17 09:59:11 -08:00
daan
16ebb70e4c
strengthen aligment guarantee (issue #206 ) (reverse commit 4531367)
2020-02-17 09:15:48 -08:00
daan
3e198cc87d
fix too strict assertion (issue #204 )
2020-02-14 11:11:57 -08:00
daan
e981e9227e
ensure thread delayed freeing is correct during heap_absorb; #204
2020-02-13 13:12:19 -08:00
daan
af37302e83
add assertions
2020-02-13 12:27:06 -08:00
daan
8a2a52843d
delete all thread owned heaps when a thread is terminated (issue #202 )
2020-02-13 12:15:23 -08:00
daan
946a71c4a9
fix issue #204 (and #205 ) by doing thread delayed free after absorbing the pages
2020-02-13 11:37:48 -08:00
daan
f42b8526d0
fix wrong __declspec(restrict) and __attribute__((malloc)) attributes on reallocation functions
2020-02-13 10:36:39 -08:00
daan
9749c83ca0
fix build with debug and secure both enabled, issue #203
2020-02-13 09:16:41 -08:00
daan
afe434463a
add comments on overriding in macOSX
2020-02-09 18:26:50 -08:00
daan
9062f39764
enable interpose separate from zones on macOS
2020-02-08 20:08:52 -08:00
daan
e676062103
update mac zone code
2020-02-05 17:40:13 -08:00
daan
d516c9f99c
Merge branch 'dev-exp' into dev-exp-tls
2020-02-02 22:02:16 -08:00
daan
feb0699bcb
fix aligment check when padding is enabled
2020-02-02 22:01:04 -08:00
daan
f3c47c7c91
improved malloc zone handling on macOSX (not working yet)
2020-02-02 21:03:09 -08:00
daan
757dcc8411
extend interpose for macOSX
2020-02-02 19:07:26 -08:00
daan
f0dc6e7e42
add extra alignment test
2020-02-02 16:21:06 -08:00
daan
ff75c32d27
Merge branch 'dev-exp' into dev-exp-tls
2020-02-02 15:54:51 -08:00
daan
7d3d37e4dd
Merge branch 'dev' into dev-exp
2020-02-02 15:54:41 -08:00
daan
865965b8c0
fix warnings under clang-cl
2020-02-02 15:43:13 -08:00
daan
07fbe4f80f
fixes for dragonfly
2020-02-02 14:31:28 -08:00
daan
8bc20631e4
fixes for freeBSD
2020-02-02 13:25:26 -08:00
daan
2e56bf55c4
Merge branch 'dev' into dev-exp-tls
2020-02-02 13:12:26 -08:00
daan
d2db9f1fc2
update thread local storage
2020-02-02 13:12:22 -08:00
daan
4a5f3592c0
fix build warning on FreeBSD
2020-02-02 09:25:39 -08:00
daan
bb64634e4e
Merge branch 'dev-exp' into dev-exp-tls
2020-02-01 17:48:57 -08:00
daan
3f17ac287c
add 'nodiscard' attribute to mimalloc interface
2020-02-01 17:29:30 -08:00
daan
0989562c2d
add initial fast tls for macOSX
2020-02-01 16:57:00 -08:00
daan
10009490b8
Merge branch 'dev-exp' into dev-exp-tls
2020-02-01 14:30:34 -08:00
daan
60cfc623be
fix zero initialization of blocks under 8 bytes when padding check is active
2020-02-01 14:29:12 -08:00
daan
a169cf0e3f
merge dev-exp; add pthread TLS support for macOSX
2020-02-01 14:10:10 -08:00
daan
edff9d4fbb
merge from dev-win (padding)
2020-02-01 12:32:59 -08:00
daan
aa68b8cbc7
improve encoding of padding canary and buffer overflow detection
2020-02-01 12:16:37 -08:00
daan
40f1e1e07b
byte-precise heap block overflow checking with encoded padding
2020-01-31 23:39:51 -08:00
daan
68112a2751
better padding implementation, more precise statistics
2020-01-31 20:34:24 -08:00
daan
8422ab125d
improve messages; fix reset size calculation on large pages
2020-01-31 17:28:26 -08:00
daan
724602b78b
enable page-reset by default
2020-01-31 17:27:45 -08:00
daan
4531367de2
fix padding check for aligned allocation; improve perf for small aligned allocations
2020-01-31 13:20:02 -08:00
daan
f820fae858
merge from dev; add retired collect on abandon
2020-01-30 07:24:35 -08:00
daan
a7c69ccbea
fix stat accounting of segments with huge blocks
2020-01-30 06:25:42 -08:00
daan
ed1c8a203a
improve performance with tls recursion counter
2020-01-29 23:08:52 -08:00
daan
03b363a1c2
first working tls on macOS using interpose; still slow
2020-01-29 22:46:44 -08:00
daan
7ff3ec2bf7
use EFAULT for buffer overflow and call abort in debug mode (as well as secure mode)
2020-01-29 17:25:40 -08:00
daan
5d212d688f
add MI_PADDING build option to add padding to each block to detect heap block overflows
2020-01-29 17:10:57 -08:00
daan
b3dae128de
Merge branch 'dev' into dev-exp
2020-01-27 23:15:37 -08:00
daan
9c166d88f0
increase retire page size
2020-01-27 23:15:24 -08:00
daan
42586de104
fix is_zero setting in regions
2020-01-27 23:13:57 -08:00
daan
e628fc7067
cleanup reclaim logic
2020-01-26 12:39:11 -08:00
daan
d4927adddc
add extra assertion that all segments are free on thread termination
2020-01-25 14:30:02 -08:00
daan
394b796ea0
fix over-eager page reset in segment reclamation
2020-01-25 13:43:56 -08:00
daan
4faf412f53
move 'memory.c' to 'region.c'
2020-01-25 13:28:49 -08:00
daan
7785139201
fix warning on gcc on attribute ignore in templates
2020-01-25 13:28:24 -08:00
daan
62b8fb26b1
fix freeing of segments on forced reclaim
2020-01-25 13:27:47 -08:00
daan
cb433d272a
Merge branch 'dev' into dev-exp-abandon
2020-01-25 13:03:06 -08:00
daan
f4630d43a7
allow reset on large pages; check commit status before reset
2020-01-25 12:49:14 -08:00
daan
5e32d00aab
add visit count to abandoned to limit list length
2020-01-25 12:26:08 -08:00
daan
3ec691cfb4
Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev
2020-01-25 11:20:17 -08:00
David Carlier
2b667bd3ae
enable arc4random abi under apple
2020-01-25 14:47:09 +00:00
daan
072ceb2efe
Merge branch 'dev' into dev-exp-abandon
2020-01-24 20:20:55 -08:00
daan
ecece57284
fix bug in committed check in arena allocation
2020-01-24 20:20:43 -08:00
daan
47300eeda3
avoid memset
2020-01-24 20:17:33 -08:00
daan
b31bc52618
add cache alignment directives for contended variables
2020-01-24 19:02:13 -08:00
daan
e070eba112
fix tagged null encoding, search segment cache before reclaim
2020-01-24 16:31:18 -08:00
daan
9a400ecce9
Merge branch 'dev' into dev-exp-abandon
2020-01-24 15:48:34 -08:00
daan
4ae51096ec
add warning on region exhaustion
2020-01-24 15:45:03 -08:00
daan
28c14d99c3
clean up comments
2020-01-24 11:03:12 -08:00
daan
e68293741e
fix assertion, add check for page committed before doing reset
2020-01-23 21:44:32 -08:00
daan
58fdcbb0cd
fix bug in collect where has_page was not set on free pages
2020-01-23 21:37:14 -08:00
daan
4a2a0c2d50
initial abandon based on fine-grained reclamation
2020-01-23 19:50:35 -08:00
daan
12701b1aac
do not reclaim segments on collect
2020-01-23 15:48:51 -08:00
daan
76e727f7d1
fix assertion on page destroy
2020-01-23 15:39:38 -08:00
daan
0316859e06
improve codegen for mi_free
2020-01-23 10:03:03 -08:00
daan
66818bf632
use atomic yield on delayed-freeing; clarify code
2020-01-23 09:57:55 -08:00
daan
3bbbe6c686
enable atomic yield when delayed_freeing is encountered
2020-01-22 20:12:42 -08:00
daan
0193a15f7e
nicer message on huge OS page reservation
2020-01-22 19:46:43 -08:00
daan
e3b16fe4ef
reduce type casts in atomic operations
2020-01-22 19:44:54 -08:00
daan
3957b2fd28
add mi_new_realloc(n) to support C++ style reallocation that raises std::bad_alloc on out-of-memory
2020-01-20 15:41:56 -08:00
daan
b77be05e40
only collect retired at fresh page allocation
2020-01-20 12:14:34 -08:00
daan
e8d7c80c74
fix build warnings on linux
2020-01-19 17:33:36 -08:00
daan
41e717c2e0
fix assertion in mi_block_zero_init (issue #194 )
2020-01-18 20:30:12 -08:00
daan
dc58388968
Add ability to register custom error function called on various error conditions; including ENOMEM
2020-01-17 19:59:55 -08:00
daan
6dd636d82d
improve STL allocator using mi_new_n and removing unused parameter names; follow up from pr #193 and #188
2020-01-17 15:41:52 -08:00
daan
6b7356a10a
make mimalloc compile with the highest warning level on msvc
2020-01-16 18:12:01 -08:00
daan
c6037ac8f2
fix assertion index
2020-01-16 16:56:02 -08:00
daan
3f8b8b7a55
initialize thread_delayed_free field atomically
2020-01-16 16:45:34 -08:00
daan
da709bcf11
test for gcc version for aligned new/delete overrides
2020-01-16 16:30:44 -08:00
daan
7a98a461a3
fix type of bitmap field to avoid C++ error on older gcc
2020-01-16 16:21:59 -08:00
daan
7a9502973d
rearrange STL allocator code: remove pragma, ifdef for C++11
2020-01-16 15:57:11 -08:00
daan
4e91eab8fc
specialize mi_mallocn for count=1
2020-01-16 14:12:37 -08:00
daan
8d8f355ed0
add option to reset eagerly when a segment is abandoned
2020-01-16 11:25:02 -08:00
daan
b8072aaacb
fix debug build
2020-01-16 03:54:51 -08:00
daan
9629d73188
fix options
2020-01-15 18:07:29 -08:00
daan
7a1e86fc20
merge from dev
2020-01-15 18:03:37 -08:00
daan
ad32eb1dfb
eager collect on page reclamation
2020-01-15 17:57:19 -08:00
daan
0099707af9
use delayed free for all pages; reduce size of the page structure for improved address calculation
2020-01-15 17:19:01 -08:00
daan
c9b5ac80b3
update page reset queue to just do delayed page resets
2020-01-15 12:00:44 -08:00
daan
783e3377f7
add output argument to stat printing
2020-01-15 10:53:54 -08:00
daan
0956a05bf6
add argument pointer to the register deferred free callback
2020-01-15 10:21:32 -08:00
daan
f92a2a7264
add argument pointer to the register output routine
2020-01-15 10:18:32 -08:00
daan
941c55ee42
wip: first implementation of page free list on segments for effecient delayed page reset
2020-01-14 21:47:18 -08:00
daan
65f4f5144b
fix out-of-bounds error in huge OS page bitmap
2020-01-13 17:06:25 -08:00
daan
5f61a9e896
add mprotect error when the mmap limit might be reached in secure mode (see issue #77 )
2020-01-09 17:52:28 -08:00
daan
8f75444e7a
fix windows debug build at MI_DEBUG=2
2020-01-08 23:21:32 -08:00
daan
12ef2816ed
fix bug exposed by commit 59fa286 where reclaimed pages could be stuck to NEVER_DELAYED
2020-01-08 19:00:03 -08:00
daan
683d8998d4
fix potential A-B-A problem with segment abandonment; noticed by Manual Poeter and Sam Gross
2020-01-08 17:45:38 -08:00
daan
50b3f6d7ae
fix assertion
2020-01-08 16:33:45 -08:00
daan
d4ab0ff08c
fix timeout on huge page reservation if set to 0
2020-01-07 14:15:37 -08:00
daan
4223caac0f
on Linux dynamically detect if getrandom is supported and fall back to /dev/urandom if needed
2020-01-06 22:08:21 -08:00
daan
d8d69c2c94
disable MAP_NORESERVE on huge pages
2020-01-05 22:07:16 -08:00
daan
45582d1fb5
revert a2a9230 (remove empty page removal on search): this is not generally valid when concurrent frees do not always add to thread_delayed_free.
2020-01-05 13:58:49 -08:00
daan
59fa286294
fix bug where continue would wrongly exit the do-while loop for delayed freeing
2020-01-05 13:52:07 -08:00
daan
a2a9230ad6
remove empty page removal on page search (no longer needed with retired collection and delayed freeing)
2020-01-03 22:52:52 -08:00
daan
d596f08569
fix thread_free read in assertion
2020-01-03 22:06:27 -08:00
daan
2b108c8748
increase retire expiration to 4
2020-01-03 21:39:18 -08:00
daan
eeb623e6af
increase retire limit, collect retired pages
2020-01-03 17:06:41 -08:00
daan
9629a0190f
fix eager commit on large pages (issue #182 )
2020-01-02 17:25:00 -08:00
daan
1b5a08cd25
remove unused parameter in check double free
2020-01-02 17:24:32 -08:00
daan
384808e340
Merge branch 'dev-random' into dev
2019-12-28 16:19:45 -08:00
daan
fc3e537bd4
improve double free detection with faster same page check
2019-12-28 15:28:13 -08:00
daan
77134e1ad0
update free list encoding to stronger formula with addition last
2019-12-28 15:17:49 -08:00
daan
e3391d9a53
stronger encoding of free lists using two keys per page
2019-12-28 00:57:42 -08:00
daan
ce02986d56
variable renaming
2019-12-27 22:30:23 -08:00
daan
6f0b35d513
merge from master
2019-12-24 10:44:49 -08:00
daan
e05a1edc03
fix large OS page size on Linux (issue #184 , due to fix for #179 )
2019-12-24 10:32:44 -08:00
daan
ba87a39d9f
updated random cookie generation using OS primitives and chacha20
2019-12-22 19:37:49 -08:00
daan
f9b942d80d
fix compilation of region descriptor on 32-bit
2019-12-22 17:08:46 -08:00
Daan Leijen
e31e609414
add preload check in option initialization (issues #179 )
2019-12-01 01:03:39 -08:00
daan
36d168a2d9
add preload check to options initialization
2019-12-01 00:03:35 -08:00
daan
a407f35c64
add arena.c into the static override object
2019-12-01 00:01:14 -08:00
daan
1d998af854
clean up options; make secure work with eager_page_commit
2019-11-25 10:47:17 -08:00
daan
1643273357
fix unix bug in decommit size
2019-11-25 10:11:29 -08:00
daan
c6df7a199c
experimental eager page commit option
2019-11-24 22:02:40 -08:00
daan
4452431b6c
reenable segment cache and fix initial segment commit
2019-11-24 15:25:19 -08:00
daan
727d33b96f
more precise memory reset
2019-11-24 14:40:47 -08:00
daan
4a0d35afd0
improve secure guard page allocation to work with non-eager commit
2019-11-23 11:59:19 -08:00
daan
6568059cc6
merge from dev
2019-11-21 16:28:28 -08:00
daan
74dbfc30be
improved security by encoding NULL values; double free mitigation on by default; more precise free list corruption detection
2019-11-21 15:21:23 -08:00
daan
1674d551ff
add verbose message with secure build level
2019-11-20 20:46:13 -08:00
Daan Leijen
049dbf41ba
fix commit bits for huge page allocations
2019-11-20 15:44:07 -08:00
Daan Leijen
211f1aa519
remove reset delay slots; add reset tracking per page and segment
2019-11-20 14:55:12 -08:00
Daan Leijen
30e2c54adb
remove delayed reset option (for now)
2019-11-20 14:13:02 -08:00
Daan Leijen
56b9fac4bf
merge from dev
2019-11-20 13:31:04 -08:00
Daan Leijen
4d4a2885f5
use atomic read/write on the page->heap field where concurrent interaction is possible
2019-11-20 13:19:17 -08:00
daan
17ade3fca5
merge from dev
2019-11-13 17:52:20 -08:00
daan
a4ed63d127
Adresses pr #165 and issue #164 by @colesbury:
...
On Mac OS, the thread-local _mi_default_heap may get reset before
_mi_thread_done is called, leaking the default heap on non-main threads.
Now the current default heap is also stored in mi_pthread_key (or mi_fls_key
on Windows). The _mi_thread_done function is called with this value.
2019-11-13 17:22:03 -08:00
Daan Leijen
d01ed42bcb
replace max_numa_nodes by use_numa_nodes (to help with wrong detection of numa nodes on WSL for example)
2019-11-13 13:35:50 -08:00
Daan Leijen
bdb8274819
change max_numa_node to max_numa_nodes option
2019-11-12 12:04:43 -08:00
daan
d4f54dcf30
remove numaif dependency on linux
2019-11-12 10:37:15 -08:00
daan
867d78f877
reserve huge OS pages earlier on at process_init
2019-11-12 10:19:52 -08:00
daan
af746ca4c1
inline bitmap_mask
2019-11-12 10:17:39 -08:00
daan
ef179a6377
avoid allocation at numa node detection on linux
2019-11-12 10:16:59 -08:00
daan
165ee45845
initialize delay slots for the main thread
2019-11-11 17:31:48 -08:00
daan
a0958b2da6
enable more reset delay slots
2019-11-11 17:06:16 -08:00
daan
5e6754f3f7
track commit status per block in a region
2019-11-11 15:45:31 -08:00
daan
db3f1c4bfa
add commit info to arenas
2019-11-11 15:26:11 -08:00
daan
741a80256d
merge from dev-exp
2019-11-11 14:51:16 -08:00
daan
2bb058bd25
remove cache_reset parameter
2019-11-11 14:44:32 -08:00
daan
534e1e39ef
allow allocation in committed regions even if not requested
2019-11-11 14:42:29 -08:00
daan
93a6463383
only allow commit delay for small and medium objects
2019-11-11 14:16:45 -08:00
daan
83a066fd2d
remove reset_decommits option
2019-11-11 09:46:02 -08:00
daan
21bbb1be87
fix warnings
2019-11-10 12:36:55 -08:00
daan
181bef382c
merge dev-exp
2019-11-10 11:39:53 -08:00
Daan Leijen
9f08ddd0d0
refactor regions; add commit tracking on a segment basis
2019-11-09 19:30:53 -08:00
Daan Leijen
7b72a4cd50
fix region suitable bug
2019-11-08 11:55:43 -08:00
daan
6ccfb5a93e
merge from dev
2019-11-07 11:00:50 -08:00
daan
9b65388807
fix space leak in secure mode where a non-null free list would be discarded
2019-11-07 10:59:19 -08:00
daan
27f1a8b3d2
fix avg display; set secure default to 0`
2019-11-07 10:35:30 -08:00