Commit Graph

2131 Commits

Author SHA1 Message Date
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 d68a7fc3e6 update docs 2024-06-04 17:04:33 -07:00
Daan 8f481d34dd update docs 2024-06-04 16:54:22 -07:00
Daan 98058eed14 add heap tag to area descriptor 2024-06-04 16:54:06 -07:00
Daan 8b7b3e3754 add docs svg's 2024-06-04 14:59:42 -07:00
Daan ab1cdbbde3 add search js files for docs 2024-06-04 14:58:58 -07:00
Daan dee7faa6d8 add js for docs 2024-06-04 14:56:49 -07:00
Daan 272d3368a0 update aligned documentation 2024-06-04 14:50:55 -07:00
daanx 20424dbfa2 update doxyfile 2024-06-04 14:38:23 -07:00
daanx e64684c9f9 update documentation 2024-06-04 14:37:16 -07:00
Daan 08fa864605 rename arena-abandoned to arena-abandon 2024-06-03 21:30:02 -07:00
Daan e0baf882bb reduce UBSAN parameters to stay within pipeline limits 2024-06-03 21:26:38 -07:00
Daan b123bbe6c0 increase iterations for tsan test 2024-06-03 21:13:34 -07:00
Daan 0c322c5566 add reference to page_malloc_zero in C++ build 2024-06-03 21:10:05 -07:00
Daan cf10af7824 re-enable tsan test in azure pipelines 2024-06-03 21:07:48 -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 537c51e227 fix vs 2022 ide 2024-06-03 18:06:53 -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
daanx 1a9cf7bce2 switch between OS and arena allocation in stress test 2024-06-03 11:43:35 -07:00
Daan 7e23576efa remove old mi_abandoned_await_readers 2024-06-03 09:57:03 -07:00
Daan 2ed97f3ebb whitespace 2024-06-03 09:55:11 -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 58fbb67963 fix c++ compilation 2024-06-03 09:25:53 -07:00
Daan 6b15342709 fix pthread initalization of mutexes 2024-06-02 16:41:07 -07:00
Daan 768872e4e0 typo in stress test 2024-06-02 16:24:13 -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