Commit graph

1469 commits

Author SHA1 Message Date
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
Danny Lin
e8b5e51b00
Change macOS mmap tag to fix conflict with IOAccelerator
Tag 100 is assigned to "IOAccelerator" (the GPU driver stack on Apple silicon), which makes for confusing output when debugging.

To avoid conflicts, use a tag in the reserved application-specific range from 240–255 (inclusive).

All assigned tags: 94d3b45284/osfmk/mach/vm_statistics.h (L773-L775)
2024-06-10 15:06:39 -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
98058eed14 add heap tag to area descriptor 2024-06-04 16:54:06 -07:00
Daan
08fa864605 rename arena-abandoned to arena-abandon 2024-06-03 21:30:02 -07:00
Daan
0c322c5566 add reference to page_malloc_zero in C++ build 2024-06-03 21:10:05 -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
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
Daan
7e23576efa remove old mi_abandoned_await_readers 2024-06-03 09:57:03 -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
6b15342709 fix pthread initalization of mutexes 2024-06-02 16:41:07 -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
d6ad058e44
Merge pull request #897 from madsmtm/patch-1
macOS: Fix linking statically
2024-05-19 15:49:50 -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
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
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