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 |
|