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
Daan
87d088b7e0
bump version to v1.8.8 for further development
2024-05-21 12:31:57 -07:00
Daan
1f3ecec2e5
update readme
v1.8.7
2024-05-21 12:25:13 -07:00
Daan
4aa97336f7
remove the need for cmake patch in vcpkg port
2024-05-21 12:06:52 -07:00
Daan
bd04cec1c4
roll back export ignore on the bin directory as it needed by vcpkg (et al) to build on Windows
2024-05-21 11:57:52 -07:00
Daan
836ee0a94c
add alpine docker files
2024-05-19 21:32:22 -07:00
daanx
d5ac4f7b95
add example docker file for testing on manylinux-x64
2024-05-19 20:42:58 -07:00
daanx
b9b321d328
use _builtin_thread_pointer also on gcc 11-x64 and clang-14-x64
2024-05-19 20:42:28 -07:00
Daan
d6ad058e44
Merge pull request #897 from madsmtm/patch-1
...
macOS: Fix linking statically
2024-05-19 15:49:50 -07:00
Daan
9cd7e4cc68
rename library check to find_link_library
2024-05-19 15:43:15 -07:00
Daan
f739e4f2c3
check all link libraries (pthread, rt, and atomic) via check_linker_flag first before using find_library (see also issue #898
2024-05-19 15:38:26 -07:00
Daan
03224e17a0
bump cmake required version to 3.18 and detect libatomic more reliably, see pr #898
2024-05-19 13:25:31 -07:00
Daan
7ea7296d3e
add malloc_good_size override maacro, see issue #900 and pr #901
2024-05-19 12:03:55 -07:00
Daan
0c4041fa53
add support for custom heap and page tags, upstream of python/cpython#113742
2024-05-19 08:06:32 -07:00
Daan
710d6138c7
refactor thread meta-data initilazation, upstream of python/cpython#113263
2024-05-18 17:42:47 -07:00
Daan
66052f135f
allow custom thread id, upstream of python/cpython#115488 )
2024-05-18 17:05:13 -07:00
daanx
381da05d8a
make mimalloc includes relative to the current file, upstream of python/cpython#113141
2024-05-18 16:48:58 -07:00
daanx
92a8268fa4
make warning an trace message if we cannot allocate at a hinted address, upstream of python/cpython#113372
2024-05-18 16:45:23 -07:00
daanx
c48a21215b
fix arm64 windows compilation, upstream of python/cpython#111527
2024-05-18 16:41:39 -07:00
daanx
999b31fea6
allow syscall include on FreeBSD as well
2024-05-18 16:39:04 -07:00
daanx
87c4012f13
make syscall test in primitives positive and avoid unused function warnings. upstream python/cpython#111907 , python/cpython#111593 , python/cpython#117548
2024-05-18 16:37:40 -07:00
daanx
937fd19338
comment
2024-05-18 16:32:10 -07:00
daanx
d9441ffce2
fix compilation on AIX, upstream of python/cpython#111593
2024-05-18 16:16:36 -07:00
daanx
1b21415dfa
make retry on oom an option; revise size options to not overflow the long
2024-05-18 09:56:02 -07:00
daanx
e58fa376d4
on windows, retry virtual alloc if out-of-memory, see issue #894
2024-05-17 13:19:37 -07:00
Daan
a05e1f4868
comment to not add custom fields (issue #896 )
2024-05-17 09:12:03 -07:00
Daan
8fd1184272
fix alignment issue on Alpine 32-bit musl compilation (issue #895 )
2024-05-17 09:06:27 -07:00
Daan
97013ee2b4
improve static allocation
2024-05-16 19:16:44 -07:00
Daan
aa91fe0f1c
fix build warning on 32-bit musl
2024-05-16 19:05:24 -07:00
Daan
e3fea8f4e1
temporary fix for musl libc 32-bit compilation on alpine (see issue #895 )
2024-05-16 18:58:18 -07:00
Daan
e7f2ffe26c
fix build warning on alpine 32-bit
2024-05-16 18:53:50 -07:00
Daan
5eb29e971b
bump version to 1.8.7 for further development
2024-05-16 18:52:29 -07:00
Daan
6e960f06e7
add note on using linker section instead of fiber api
2024-05-16 15:13:03 -07:00
Daan
a38c8dd0f9
rename must_free_whole -> has_partial_free
2024-05-16 14:41:10 -07:00
Mads Marquart
fefdce3ee4
macOS: Fix linking statically
...
`__attribute__((constructor))` does not mark the symbol as used, so the linker ends up dead-stripping the symbol when linked statically.
Adding the `used` attribute fixes that.
2024-05-15 21:12:54 +02:00
Daan
81a771161e
update readme for updated release
v1.8.6
2024-05-13 10:16:55 -07:00
Daan
9e721e564a
bump version to v1.8.6
2024-05-13 09:16:26 -07:00
Daan
eb2bab87d5
update readme for new release
v1.8.5
2024-05-13 09:12:38 -07:00
Daan
13e519202a
fix comments; nicer strdup/strndup
2024-05-13 09:02:40 -07:00
Daan
0f6d8293c7
use local dynamic tls for static MUSL builds (see issue #644 )
2024-05-11 08:08:03 -07:00
Daan
bb3802801c
clarify parameters for emmalloc_memalign
2024-05-11 07:53:12 -07:00
Daan
f35355b2de
Merge pull request #891 from kripken/no.min
...
Emscripten: Remove no-longer-needed minimum emmalloc alignment
2024-05-11 07:48:33 -07:00
Daan
6c7cda592c
make page_malloc_zero externals not inline to avoid link errors in C++ mode
2024-05-11 07:39:06 -07:00
Daan
b1ec1d5e5a
refactor aligned allocation
2024-05-11 07:22:56 -07:00
Daan
0dcdc55bbd
better aligned test
2024-05-11 07:09:30 -07:00
Daan
7128db7bba
simplified aligned allocation; improved codegen; fix mi_good_size with padding included; add MI_MAX_ALIGN_GUARANTEE
2024-05-11 06:43:52 -07:00
Daan
c70c1df16a
better fast path for aligned allocation; check max alloc size correctly in the aligned fallback
2024-05-10 20:19:17 -07:00
Daan
605c354bd4
increase segment map for asan builds (issue #881 )
2024-05-10 17:31:00 -07:00
Daan
e5267a31b0
only override strdup/strndup if those are not macros (issue #885 )
2024-05-10 17:03:42 -07:00
Daan
1ebc28a8ff
update comment
2024-05-10 15:58:37 -07:00
Alon Zakai
0d22807e91
Emscripten: Remove no-longer-needed minimum emmalloc alignment
2024-05-07 13:22:13 -07:00
Daan
cc3c14f2ed
use builtin_thread_pointer only on non-apple arm64 (issue #883 and #851 )
2024-04-26 23:34:10 -07:00
Daan
146f9d2333
make TLS slot default instead of __builtin_thread_pointer. Potentially fixes build errors on various platforms (see issue #883 )
2024-04-24 19:48:04 -07:00
Daan
77eb3a366b
bump version to 1.8.5 for further development
2024-04-22 11:25:26 -07:00
Daan
6b6607ff59
update readme
2024-04-22 11:16:27 -07:00
Daan
3324e8c1e7
update readme
v1.8.4
2024-04-22 11:07:02 -07:00
Daan
96819a3f1d
update readme
2024-04-22 11:00:42 -07:00
Daan
c469e3d519
add release notes
2024-04-22 10:32:53 -07:00
Daan
a527f75161
add disallow_arena_alloc option
2024-04-22 10:10:20 -07:00
Daan
ce783df58f
fix spelling errors (pr #710 )
2024-04-20 17:18:09 -07:00
Daan
88aa84727d
fix spelling errors (pr #710 )
2024-04-20 17:12:09 -07:00
Daan
204348e468
only define WIN32_LEAN_AND_MEAN if needed
2024-04-20 16:58:58 -07:00
Daan
7247b9e326
allow configuring page and segment sizes (pr #753 and pr #862 )
2024-04-20 16:45:49 -07:00
Daan
79ab7c63d7
disable transparent huge pages for a process too if the allow_large_os_pages option is set to false
2024-04-20 16:37:09 -07:00
Daan
e46c1145a5
add separate MI_LIBC_MUSL option (issue #644 )
2024-04-20 16:19:59 -07:00
Daan
336f83fbd1
use __builtin_thread_pointer on arm64 with older gcc compilers (issue #851 )
2024-04-20 16:09:45 -07:00
Daan
f7df734c6f
add further C++ delete signatures to override from C (issue #863 )
2024-04-19 13:44:29 -07:00
Daan
9830c0db42
redefine mi_nothrow_t to be a pointer to (probably) fix issue #840 to match WASI signatures
2024-04-19 13:31:31 -07:00
Daan
09e91ec911
add assert for segment purges
2024-04-19 12:44:23 -07:00
Daan
bf5932c3c6
use better purging for segments_collect
2024-04-19 12:43:05 -07:00
Daan
2b7530e183
add segment_collect for forced heap_collect
2024-04-19 12:33:17 -07:00