daan
25246070ae
fix double free check in secure = 4 mode; inline _mi_ptr_cookie
2019-10-19 08:34:18 -07:00
daan
2affdbbd2e
stronger secure mode when defining MI_SECURE=4: checks for double free, corrupted free list, and invalid pointer frees. Performance is impacted but not too much -- more perf testing is needed
2019-10-18 18:11:04 -07:00
daan
fdfa6ed260
fix warnings at high warning level in msvc
2019-10-17 16:56:57 -07:00
daan
5de851a84d
update page_flags to have more portable definition
2019-10-17 16:48:16 -07:00
daan
93b4281b82
ensure randomized huge page start address in 1GiB aligned
2019-10-17 12:35:35 -07:00
daan
454bc67338
increase delayed output buffer to 32k
2019-10-17 12:14:15 -07:00
daan
26c27fbf58
use uint8_t bit fields, and improve portability of page_flags type
2019-10-17 12:07:26 -07:00
Johannes Schindelin
0fd0122c0a
Avoid compiler warning when casting the result of GetProcAddress()
...
It is most unfortunate that the return type of `GetProcAddress()` is
`FARPROC` (which is essentially `intptr_t(*)(void)): this type cannot
be cast by GCC without warnings to anything but the generic function
pointer type `void(*)(void)`.
Let's work around that.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-10-17 20:43:18 +02:00
Johannes Schindelin
5bd8ea2e4f
Repeat mi_decl_allocator
in functions' definitions
...
Quite a few functions are declared with that attribute, and VS 2019
complains if the definition does not repeat it.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-10-17 20:43:18 +02:00
daan
08d83cc33d
disallow regular allocation from the huge reserved area
2019-10-17 09:24:57 -07:00
daan
a96c90db5d
remove old windows overriding method
2019-10-17 09:22:23 -07:00
daan
480f7683a9
cleanup delayed output
2019-10-12 10:42:04 -07:00
Daan Leijen
5e9b37dc4e
add delayed output buffer
2019-10-12 10:21:42 -07:00
daan
1de6c22b49
remove incorrect region_count comment
2019-09-17 18:07:32 -07:00
daan
5744f90882
remove thread init/done verbose messages
2019-09-17 17:35:20 -07:00
daan
60efb62155
make secure a build option only
2019-09-17 17:31:42 -07:00
daan
d72b5350e3
fix error code on mprotect failure
2019-09-17 17:31:25 -07:00
daan
adf8e30eda
ensure large page privileges are acquired on windows when calling reserve_huge_os_pages
2019-09-14 15:23:28 -07:00
daan
24777f6a91
limit aligned allocation to power-of-two alignment
2019-09-11 17:49:28 -07:00
daan
050e7cedf4
roll back commit 0aec6d93
on alignment >= size
as it breaks assertions in tensorflow
2019-09-11 15:48:44 -07:00
Daan Leijen
1909cfb346
refine mi_os_good_alloc_size and use it for huge pages (to ensure realloc is bounded as in #153
2019-09-10 13:26:51 -07:00
Daan Leijen
d278c26c0e
round huge page sizes into 12.5% increments (issue #153 )
2019-09-10 07:54:31 -07:00
daan
ce81af1119
use mi_is_power_of_two when possible (pr #118 )
2019-09-09 08:12:50 -07:00
daan
b104e434e4
fix volatile declaration on function
2019-09-09 08:07:35 -07:00
daan
23155c5d71
add recursion guard to deferred callback
2019-09-09 08:02:41 -07:00
daan
e227341f5b
fix mi_collect being called with empty heap (issue #150 )
2019-09-09 07:54:36 -07:00
daan
7b63bc4211
add alignment check to aligned_alloc for C11 compliance
2019-09-07 12:02:22 -07:00
daan
0aec6d9302
don't align to sizes greater than than the allocation size
2019-09-07 12:01:54 -07:00
daan
b241910810
don't allocate more than PTRDIFF_MAX on aligned allocations
2019-09-07 11:52:21 -07:00
daan
f2f7c8d0e9
fix volatile declaration on function pointer
2019-09-07 09:18:29 -07:00
daan
89858ab791
improve page_free_extend performance slightly; do not maintain expensive statistics in release mode
2019-09-06 16:48:48 -07:00
daan
47fc73d694
fix c++ compilation; make default output non-atomic
2019-09-06 11:51:22 -07:00
daan
f38fcf79eb
ensure addresses of large aligned allocations are randomized
2019-09-06 09:19:26 -07:00
Jakub Szymanski
1a7b1783fa
changed strategy to reduce contention for region search and vs2019 project fix
2019-09-05 08:13:52 -07:00
daan
2be3208734
add wrap-around for large aligned allocations on Windows and Linux
2019-09-04 21:03:00 -07:00
daan
e73982c4cf
better alignment for large and huge pages inside a segment
2019-09-04 18:42:37 -07:00
daan
3bbc047ba6
reserve huge pages returns actual number of pages reserved
2019-09-04 12:26:02 -07:00
daan
6c43ae2bde
add later thread-done invokation; add mi_is_redirected call
2019-09-04 12:00:41 -07:00
daan
3c563816c0
read regions count on every loop iteration
2019-09-03 18:25:01 -07:00
daan
aea21486dd
fix regions_count tracking in case of concurrent region allocations
2019-09-03 18:20:56 -07:00
daan
a6a956c589
add back zero initialized re-allocation
2019-09-03 10:57:39 -07:00
daan
7a91368108
pass page to block_zero_init and extend to block_size
2019-09-03 10:11:24 -07:00
daan
739d11313c
fix commit zero on windows
2019-09-02 14:53:22 -07:00
daan
d1bd1644d5
support zero-initialized memory detection
2019-09-02 13:16:52 -07:00
daan
31726c6554
fix type; fix comment
2019-09-02 10:18:34 -07:00
daan
d6e35ffd83
Merge branch 'dev' into dev-exp
2019-09-02 10:10:08 -07:00
daan
783ae72743
Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev
2019-09-02 09:53:30 -07:00
daan
e874844562
update redirection to include fixes for x86
2019-09-01 12:18:29 -07:00
daan
ab5af8fdad
merge from dev
2019-08-30 14:38:28 -07:00
daan
9fc726619a
guard against passing stdin/stderr as output
2019-08-30 14:37:04 -07:00