Daan
54940a6a65
update mimalloc-redirect to potentially fix issue #957
2024-11-05 02:07:45 -08:00
Daan
e2f4fe647e
update test file
2024-10-29 22:23:21 -07:00
Daan
b5ae6fc555
remove wrong assertion
2024-10-29 20:08:36 -07:00
Daan
30640233a1
Merge pull request #943 from asdf-bro/patch-1
...
Musl needs __libc* functions too
2024-10-27 22:15:43 -07:00
Daan
c59b0cd7fc
Merge pull request #946 from ArtSin/fix-vsnprintf-int-long-intmax_t
...
Fix int and long handling and the use of (u)intptr_t in _mi_vsnprintf
2024-10-27 22:12:29 -07:00
Daan
b3828bba9e
disable aligned hinting or SV39 mmu's, issue #939 , and pr #949
2024-10-27 21:58:20 -07:00
Daan
5f35933331
add 0 byte to canary to prevent spurious read overflow to read the canary (issue #951 , pr #953 )
2024-10-27 21:39:07 -07:00
Daan
afba03145c
Merge pull request #954 from jimwang118/fix-linux
...
Fix build error on x64-android
2024-10-27 21:12:58 -07:00
Daan
f126b50382
update comments, set constructor priority to 101 on macOS
2024-10-27 21:10:46 -07:00
Jim-Wang
17802e6528
fix build error on linux
2024-10-28 02:06:58 +00:00
Daan
3cba10e510
update mimalloc-redirect
2024-10-27 01:02:13 -07:00
Daan
532904c85c
update mimalloc redirect to v1.2 to handle static destructors that free memory (issue #944 )
2024-10-24 01:01:53 -07:00
Daan
ee92b337b9
do not reclaim segments if free-ing from a thread with an already abandoned heap (issue #944 )
2024-10-24 00:13:07 -07:00
Daan
2b0d039cf3
fix assertion check
2024-10-23 01:21:41 -07:00
Daan
925efaeac9
improve windows static library initialization to account for thread local destructors (issue #944 )
2024-10-23 01:10:00 -07:00
Daan
d951b4dd23
add missing mi_thread_done definition
2024-10-23 00:53:17 -07:00
Daan
6e9b38ac12
fix issue where searching for abandoned blocks would skip the first one
2024-10-22 18:58:55 -07:00
Daan
dfdb9cb877
cleanup process init/done
2024-10-22 06:52:34 -07:00
Daan
104e821709
fix fast divisor for 32-bit platforms
2024-10-22 06:08:56 -07:00
Daan
46e9e7fdd0
fix win32 compilation
2024-10-22 06:06:15 -07:00
Daan
e55ae0aeb7
fix duplicate definition on windows
2024-10-21 23:09:14 -07:00
Daan
f971bd6d74
fix build on windows
2024-10-21 23:05:51 -07:00
Daan
4377abe017
add cmake option to fall back on the fiber api do detect thread termination on windows
2024-10-21 22:59:41 -07:00
Daan
aa881733d7
reorganize primitives for process initialization; use special data segment on Windows for thread termination by default on Windows now (issue #869 )
2024-10-21 22:56:59 -07:00
Daan
34e66778ec
fix MI_EXTRA_CPPDEFS setting
2024-10-21 05:10:09 -07:00
Daan
50d3525a8c
add test for issue #944
2024-10-21 05:04:27 -07:00
Daan
638ea539de
allow certain options to have defaults set via the pre-processor at build time -- see issue #945
2024-10-21 05:04:01 -07:00
Daan
394e8c27d8
add cmake option to add C pre processor definitions more easily
2024-10-21 05:02:24 -07:00
ArtSin
bf251b27b1
Fix int and long handling and the use of (u)intptr_t in _mi_vsnprintf
...
'va_arg' with type 'long' was used for both 'int' and 'long' arguments, but x86_64 Linux has 64-bit 'long', so passing an 'int' argument to '_mi_vsnprintf` results in undefined behaviour.
'intptr_t' was used as the largest integer type, but on 32-bit systems it is 32-bit wide, while 'long long' is 64-bit. 'intmax_t' can be used instead.
2024-10-15 13:39:28 +04:00
Philip Brown
f38816d4ed
Musl needs __libc* functions too
2024-10-06 15:42:46 -05:00
Daan
db3d8485d2
increase TSAN test to 400 iterations
2024-08-21 17:13:51 -07:00
Daan
d8e0cb1a37
increase test timeout for azure pipeline
2024-08-21 17:01:05 -07:00
Daan
bb3976760f
add guarded build to test pipeline
2024-08-21 15:34:22 -07:00
Daan
51025f1ac2
set lower parameters for guarded test
2024-08-21 15:29:32 -07:00
Daan Leijen
4234a9bd9d
Merge branch 'dev-guarded' into dev
2024-08-21 11:30:33 -07:00
Daan Leijen
58e743b83f
fix use_guarded signature
2024-08-21 11:30:00 -07:00
Daan Leijen
cc4dc1bb53
add comments
2024-08-21 11:26:12 -07:00
Daan Leijen
96f7cc4ef2
clean up guarded allocation
2024-08-21 11:21:25 -07:00
Daan Leijen
631ff581af
set compile as C++ in VS IDE
2024-08-21 10:47:38 -07:00
Daan Leijen
b9b529de28
shuffle for 128 bit
2024-08-21 10:45:19 -07:00
daanx
b5c6495f69
don't consider memory as large OS pages if only madvise'd
2024-08-20 15:58:36 -07:00
Daan Leijen
f130808b5c
fix warnings
2024-08-20 12:58:49 -07:00
daanx
8899a11c70
clean up guarded pages code
2024-08-20 11:09:17 -07:00
daanx
635cf7af6a
fix multi-threaded free to unprotect guarded blocks
2024-08-20 09:55:57 -07:00
daanx
0c19eb60cf
initial working guarded pages
2024-08-19 21:21:40 -07:00
Daan
5eb8c752f7
fix UINT32_MAX constant (see issue #913 )
2024-08-13 16:36:53 -07:00
Daan
7b5df14bea
initial work on guarded objects
2024-07-16 09:15:59 -07:00
daanx
265767766b
fix alignment test
2024-06-17 16:22:07 -07:00
daanx
b7dd5d6564
add extra assertions to check that blocks are always aligned to MI_MAX_ALIGN_SIZE
2024-06-17 16:17:03 -07:00
Daan
03020fbf81
fix count/size order in mi_heap_alloc_new_n, issue #906
2024-06-04 17:28:04 -07:00
Daan
d68a7fc3e6
update docs
2024-06-04 17:04:33 -07:00
Daan
8f481d34dd
update docs
2024-06-04 16:54:22 -07:00
Daan
98058eed14
add heap tag to area descriptor
2024-06-04 16:54:06 -07:00
Daan
8b7b3e3754
add docs svg's
2024-06-04 14:59:42 -07:00
Daan
ab1cdbbde3
add search js files for docs
2024-06-04 14:58:58 -07:00
Daan
dee7faa6d8
add js for docs
2024-06-04 14:56:49 -07:00
Daan
272d3368a0
update aligned documentation
2024-06-04 14:50:55 -07:00
daanx
20424dbfa2
update doxyfile
2024-06-04 14:38:23 -07:00
daanx
e64684c9f9
update documentation
2024-06-04 14:37:16 -07:00
Daan
08fa864605
rename arena-abandoned to arena-abandon
2024-06-03 21:30:02 -07:00
Daan
e0baf882bb
reduce UBSAN parameters to stay within pipeline limits
2024-06-03 21:26:38 -07:00
Daan
b123bbe6c0
increase iterations for tsan test
2024-06-03 21:13:34 -07:00
Daan
0c322c5566
add reference to page_malloc_zero in C++ build
2024-06-03 21:10:05 -07:00
Daan
cf10af7824
re-enable tsan test in azure pipelines
2024-06-03 21:07:48 -07:00
daanx
b1188ea336
fix potential race on subproc field in the segment
2024-06-03 20:57:00 -07:00
daanx
76b0873ce2
fix asan tracking by explicitly setting memory to undefined before a free
2024-06-03 20:28:47 -07:00
daanx
3f69119936
don't reset a segment thread id when iterating
2024-06-03 18:25:22 -07:00
daanx
065f46cefb
don't reset a segment thread id when iterating
2024-06-03 18:19:45 -07:00
daanx
537c51e227
fix vs 2022 ide
2024-06-03 18:06:53 -07:00
daanx
f7ba9d9da0
refactor arena-abandoned to be an include for backward compat with existing build scripts
2024-06-03 18:04:59 -07:00
daanx
800034cb99
refactor arena abandonment in a separate file
2024-06-03 17:58:34 -07:00
daanx
96b69d7ef6
fix leak where OS abandoned blocks were not always reclaimed
2024-06-03 17:28:14 -07:00
daanx
00dacba91f
maintain count of the abandoned os list
2024-06-03 15:44:25 -07:00
daanx
3333f776f9
push os abandoned blocks at the tail end
2024-06-03 15:37:05 -07:00
daanx
a04905c88b
revisit atomic reclaim for abandoned segments
2024-06-03 15:20:35 -07:00
daanx
f02a0b3541
more aggressive reclaim from free for OS blocks
2024-06-03 14:05:57 -07:00
daanx
1a9cf7bce2
switch between OS and arena allocation in stress test
2024-06-03 11:43:35 -07:00
Daan
7e23576efa
remove old mi_abandoned_await_readers
2024-06-03 09:57:03 -07:00
Daan
2ed97f3ebb
whitespace
2024-06-03 09:55:11 -07:00
Daan
f17ddc3395
increase thread data cache to32 entries
2024-06-03 09:55:02 -07:00
Daan
84334e480a
decrease meta allocation zone to 4k (to reduce .bss)
2024-06-03 09:54:41 -07:00
Daan
58fbb67963
fix c++ compilation
2024-06-03 09:25:53 -07:00
Daan
6b15342709
fix pthread initalization of mutexes
2024-06-02 16:41:07 -07:00
Daan
768872e4e0
typo in stress test
2024-06-02 16:24:13 -07:00
daanx
e4c8f42bb6
always include sys/prctl.h on linux to disable THP if large_os_pages are not enabled
2024-06-02 16:10:08 -07:00
daanx
f9076a5cf8
use EFAULT if a target heap tag cannot be found on reclaim
2024-06-02 15:54:49 -07:00
daanx
f87ec74bb3
reduce delayed output from redirection to 16KiB to reduce the .bss size
2024-06-02 15:10:17 -07:00
daanx
e8f4bdd1ea
fix cast; make segment map static
2024-06-02 14:59:37 -07:00
daanx
a964322a21
revise the segment map to only apply to OS allocated segments and reduce the .BSS footprint
2024-06-02 14:46:59 -07:00
daanx
5501f59f6c
only reclaim for exclusive heaps in their associated arena
2024-06-02 13:16:20 -07:00
daanx
635d626c82
fix leak in abandoned block visiting
2024-06-02 10:43:41 -07:00
daanx
f7fe5bf20e
optimize heap walks, by Sam Gross, upstream of python/cpython#114133
2024-06-02 10:28:30 -07:00
daanx
855e3b2549
add support to visit _all_ abandoned segment blocks per sub-process, upstream for python/cpython#114133
2024-06-02 09:41:12 -07:00
daanx
8f874555d5
add initial support for visiting abandoned segments per subprocess, upstream for python/cpython#114133
2024-06-02 07:47:08 -07:00
Daan Leijen
f93fb900b7
move lock code to atomic.h
2024-06-01 17:25:45 -07:00
Daan Leijen
0b3cd51249
add initial primitive api for locks
2024-06-01 16:45:20 -07:00
daanx
d9aa19a763
add support for sub-processes (to supportpython/cpython#113717 )
2024-06-01 15:57:18 -07:00
daanx
f87a4c15b2
increase max arenas
2024-06-01 13:41:13 -07:00
daanx
aeee7907a0
fix spelling
2024-06-01 13:20:28 -07:00
daanx
616db104a9
prevent UB in arena reservation
2024-06-01 12:29:48 -07:00