Commit graph

1490 commits

Author SHA1 Message Date
Daan
aa881733d7 reorganize primitives for process initialization; use special data segment on Windows for thread termination by default on Windows now (issue #869) 2024-10-21 22:56:59 -07:00
Daan
638ea539de allow certain options to have defaults set via the pre-processor at build time -- see issue #945 2024-10-21 05:04:01 -07:00
ArtSin
bf251b27b1 Fix int and long handling and the use of (u)intptr_t in _mi_vsnprintf
'va_arg' with type 'long' was used for both 'int' and 'long' arguments, but x86_64 Linux has 64-bit 'long', so passing an 'int' argument to '_mi_vsnprintf` results in undefined behaviour.

'intptr_t' was used as the largest integer type, but on 32-bit systems it is 32-bit wide, while 'long long' is 64-bit. 'intmax_t' can be used instead.
2024-10-15 13:39:28 +04:00
Daan Leijen
a7e7cbac89 use enqueue_from_full, and keep inserting at the end 2024-10-09 15:15:57 -07:00
daanx
0316cb1d88 reduce page search to 8 2024-10-09 15:05:35 -07:00
daanx
cbc0e19809 revert back to unfull at the end of queues as it slows down some benchmarks (like alloc-test1) 2024-10-09 14:41:12 -07:00
daanx
96877159c2 insert full pages that became unfull, at the start of the page queue to increase potential reuse 2024-10-09 14:35:33 -07:00
daanx
a05b5ab0a1 search N pages for a best fit 2024-10-09 14:21:50 -07:00
daanx
ffa8bce581 prefer pages that do not expand 2024-10-09 11:27:57 -07:00
Philip Brown
f38816d4ed
Musl needs __libc* functions too 2024-10-06 15:42:46 -05:00
Daan Leijen
4234a9bd9d Merge branch 'dev-guarded' into dev 2024-08-21 11:30:33 -07:00
Daan Leijen
58e743b83f fix use_guarded signature 2024-08-21 11:30:00 -07:00
Daan Leijen
cc4dc1bb53 add comments 2024-08-21 11:26:12 -07:00
Daan Leijen
96f7cc4ef2 clean up guarded allocation 2024-08-21 11:21:25 -07:00
daanx
b5c6495f69 don't consider memory as large OS pages if only madvise'd 2024-08-20 15:58:36 -07:00
Daan Leijen
f130808b5c fix warnings 2024-08-20 12:58:49 -07:00
daanx
8899a11c70 clean up guarded pages code 2024-08-20 11:09:17 -07:00
daanx
635cf7af6a fix multi-threaded free to unprotect guarded blocks 2024-08-20 09:55:57 -07:00
daanx
0c19eb60cf initial working guarded pages 2024-08-19 21:21:40 -07:00
Daan
5eb8c752f7 fix UINT32_MAX constant (see issue #913) 2024-08-13 16:36:53 -07:00
Daan
7b5df14bea initial work on guarded objects 2024-07-16 09:15:59 -07:00
daanx
265767766b fix alignment test 2024-06-17 16:22:07 -07:00
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
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