Commit graph

1805 commits

Author SHA1 Message Date
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