daanx
|
96b69d7ef6
|
fix leak where OS abandoned blocks were not always reclaimed
|
2024-06-03 17:28:14 -07:00 |
|
Daan
|
7e23576efa
|
remove old mi_abandoned_await_readers
|
2024-06-03 09:57:03 -07:00 |
|
daanx
|
5501f59f6c
|
only reclaim for exclusive heaps in their associated arena
|
2024-06-02 13:16:20 -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
|
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
|
616db104a9
|
prevent UB in arena reservation
|
2024-06-01 12:29:48 -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 |
|
daanx
|
381da05d8a
|
make mimalloc includes relative to the current file, upstream of python/cpython#113141
|
2024-05-18 16:48:58 -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 |
|
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
|
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 |
|
Daan
|
32e065bb32
|
rename segment_thread_collect to segment_collect
|
2024-04-19 12:11:58 -07:00 |
|
Daan Leijen
|
0022802177
|
commend and make at least 8 tries for reclaim
|
2024-03-25 15:25:04 -07:00 |
|
daanx
|
006ae2d055
|
add is_huge page flag to ensure the right page queue is returned (see #868)
|
2024-03-24 17:07:28 -07:00 |
|
Daan Leijen
|
a8a53e3e85
|
fix double counting of free-ing for non-thread-local free calls
|
2024-03-24 14:50:15 -07:00 |
|
Daan Leijen
|
b5665f0eec
|
add full block_size and page_start to page info
|
2024-03-24 14:17:17 -07:00 |
|
Daan Leijen
|
07ae64bd81
|
faster check for NULL in mi_free by combining with masking
|
2024-03-24 10:39:22 -07:00 |
|
Daan Leijen
|
60c4a0fe56
|
fix compilation warnings for new uint16_t size for used field
|
2024-03-24 08:10:35 -07:00 |
|
Daan
|
cc809b0cd4
|
take 16 bits from used field to create a fast unalign path
|
2024-03-18 01:40:03 -07:00 |
|
daanx
|
70e3ce07d1
|
Merge branch 'dev' into dev-abandon
|
2024-03-02 17:34:58 -08:00 |
|
Daan
|
683332c950
|
Define reallocarr as weak to avoid symbol collision on gnu/Linux. #751 by @Romain-Geissler-1A
|
2024-03-02 17:12:58 -08:00 |
|
Daan
|
e1f6516fda
|
Fix undefined symbol errors when building for wasi #758, by @anuraaga
|
2024-03-02 17:05:29 -08:00 |
|
daanx
|
500d2ad1fd
|
ensure non-arena segments are force purged on abandonment; make non-arena reclaim atomic
|
2024-03-01 18:47:59 -08:00 |
|
daanx
|
c4f1f2e079
|
make reclaim tries a percentage of the abandoned count
|
2024-03-01 14:57:46 -08:00 |
|
daanx
|
cf8f73098e
|
start abandoned search randomized
|
2024-03-01 10:51:18 -08:00 |
|
daanx
|
64edbc92dd
|
allow abandoned segment reclaim on a free
|
2024-02-29 14:58:59 -08:00 |
|
daanx
|
bdda13b880
|
track abandoned segments in an arena bitmap instead of with a list
|
2024-02-29 14:27:28 -08:00 |
|
daanx
|
e10467f673
|
add libc primitives to reduce dependencies
|
2023-05-19 11:57:10 -07:00 |
|
daanx
|
4a85f32f8e
|
add libc.c source file
|
2023-05-19 10:24:39 -07:00 |
|
daanx
|
632edf9996
|
rename was_zero/committed to initially_zero/committed
|
2023-04-24 09:03:43 -07:00 |
|
daanx
|
e6f3647556
|
track os alignment and base
|
2023-04-18 19:00:50 -07:00 |
|
daanx
|
4d976270eb
|
review is_zero flag
|
2023-04-18 17:18:39 -07:00 |
|
daanx
|
b845be241a
|
wip: use memid for OS allocation
|
2023-04-18 16:38:47 -07:00 |
|
daanx
|
a655c28b66
|
cleanup
|
2023-04-16 12:29:21 -07:00 |
|
daanx
|
d48b988c40
|
clean up os api
|
2023-04-16 11:21:45 -07:00 |
|
daanx
|
0fc4de1440
|
use rich memid's to simplify the internal API's and invariants
|
2023-04-15 21:31:17 -07:00 |
|
daanx
|
0174d19af3
|
increase thread data cache to 16
|
2023-04-15 19:49:14 -07:00 |
|
daanx
|
48d0d0da9b
|
fix thread data cache to use pure os alloc
|
2023-04-13 15:27:20 -07:00 |
|
daanx
|
0ba79d01f6
|
allow static allocation in arenas for internal metadata
|
2023-04-13 13:19:39 -07:00 |
|
daanx
|
c90a2bbd0a
|
make memid's abstract for safety
|
2023-04-13 12:17:52 -07:00 |
|
daanx
|
cdefd5b69c
|
fix stats for purging
|
2023-04-05 11:11:03 -07:00 |
|
daanx
|
cb0369452d
|
use exponetially sized arenas
|
2023-04-04 17:54:33 -07:00 |
|
daanx
|
d01017ffda
|
extend primitive api with is_zero parameters
|
2023-04-04 16:32:39 -07:00 |
|
daanx
|
a2e1d2b893
|
add segment map to track valid pointers
|
2023-04-04 16:00:17 -07:00 |
|
daanx
|
461df1e878
|
implement arena exclusive heap allocation for dev
|
2023-04-04 15:40:43 -07:00 |
|
daanx
|
77766e20a6
|
use only arena's instead of regions
|
2023-04-04 14:58:06 -07:00 |
|
daanx
|
449aad0635
|
wip: purgeable arenas; update option names and improve arena reservation
|
2023-04-04 12:15:57 -07:00 |
|