Sergiy Kuryata
d67fe5d26a
Rotate through arenas in mi_arenas_try_purge instead of always purging arena 0 if visit_all is false.
2024-11-05 13:00:50 -08:00
Sergiy Kuryata
2a3b8eb696
Do not call mi_abandoned_collect on allocation path as it consumes substantial amount of CPU time
2024-11-04 21:22:45 -08:00
Sergiy Kuryata
911de68d3e
Experimental optimization for the segment reclamation logic.
...
The goal is to improve efficiency of finding an abandoned segment that contains free space of the required size.
This change adds a free space bitmask to the segment object. More optimal place for the bitmask could be in the arena (i.e. extend the arena’s bitmask for abandoned segments to include size information too).
2024-10-31 16:53:14 -07:00
Sergiy Kuryata
b604099334
Experimental improvements to reduce memory usage
...
1. Prefer to use more loaded pages when allocating
2. Add an option to restrict unbounded heap growth and allow the excessive memory allocations to be re-used by other threads
2024-10-11 10:35:51 -07:00
Daan
998401b6d7
Merge branch 'dev' into dev-slice
2024-05-21 11:58:10 -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
65a0c82ac9
merge from dev (support for heap tag, upstream of python/cpython#113742
2024-05-19 08:10:35 -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
b822a44cfe
merge from dev, upstream of python/cpython#113263
2024-05-18 17:47:07 -07:00
Daan
710d6138c7
refactor thread meta-data initilazation, upstream of python/cpython#113263
2024-05-18 17:42:47 -07:00
Daan
d4a7c0ffcc
merge from dev
2024-05-18 16:57:35 -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
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
d9441ffce2
fix compilation on AIX, upstream of python/cpython#111593
2024-05-18 16:16:36 -07:00
Daan
1daa4ea627
Merge branch 'dev' into dev-slice
2024-05-18 10:01:31 -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
21434a2a9e
Merge branch 'dev' into dev-slice
2024-05-17 09:07:24 -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
69f81732f8
merge from dev, bump version to v2.1.7
2024-05-16 19:07:14 -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
d468745b6b
Merge branch 'dev' into dev-slice
2024-05-16 16:09:35 -07:00
Daan
6e960f06e7
add note on using linker section instead of fiber api
2024-05-16 15:13:03 -07:00
Daan
c27b7c4fae
Merge branch 'dev' into dev-slice
2024-05-16 14:41:21 -07:00
Daan
a38c8dd0f9
rename must_free_whole -> has_partial_free
2024-05-16 14:41:10 -07:00
Daan
4a26a4568e
fix out-of-bounds write on span free in huge segments
2024-05-16 14:26:05 -07:00
Daan
44b65b19df
remove pre_size parameter for slices
2024-05-16 13:30:33 -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
d824b9db2b
fix page collection where a freed segment could be accessed
2024-05-13 10:11:57 -07:00
Daan
f94f101d22
Merge branch 'dev' into dev-slice
2024-05-13 09:02:51 -07:00
Daan
13e519202a
fix comments; nicer strdup/strndup
2024-05-13 09:02:40 -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
ee2167da55
Merge branch 'dev' into dev-slice
2024-05-11 07:39:18 -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
2b42f64b19
merge from dev
2024-05-11 07:23:43 -07:00
Daan
b1ec1d5e5a
refactor aligned allocation
2024-05-11 07:22:56 -07:00
Daan
e8206e9f6f
merge from dev improved aligned allocation
2024-05-11 07:08:48 -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
e17b99de77
merge from dev
2024-05-10 20:27:09 -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
5b3ccc3cf4
Merge branch 'dev' into dev-slice
2024-05-10 17:33:15 -07:00
Daan
605c354bd4
increase segment map for asan builds (issue #881 )
2024-05-10 17:31:00 -07:00
Daan
3b4c61b4cf
Merge branch 'dev' into dev-slice
2024-05-10 17:11:21 -07:00
Daan
e5267a31b0
only override strdup/strndup if those are not macros (issue #885 )
2024-05-10 17:03:42 -07:00