Commit graph

2064 commits

Author SHA1 Message Date
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
9731941c7b merge from dev-guarded 2024-08-20 13:11:54 -07:00
Daan Leijen
f130808b5c fix warnings 2024-08-20 12:58:49 -07:00
Daan Leijen
1ab67d44c8 merge from dev-guarded 2024-08-20 12:57:20 -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
01503df7f3 move declaration to avoid gcc warning, see issue #919 2024-08-12 13:51:39 -07:00
Michael Neumann
9c9efc417d Fix build on FreeBSD-derivate DragonFly 2024-07-26 12:11:21 +02:00
Rui Ueyama
566b2c51fc Add a missing #include
This change fixes the "implicit declaration of function 'getenv'" warning.
Since stdlib.h is completely portable, as it is defined by the C standard,
we can safely include it unconditionally.
2024-07-22 09:43:43 +09:00
Daan
7b5df14bea initial work on guarded objects 2024-07-16 09:15:59 -07:00
QuarticCat
632421da3a
fix typos 2024-06-19 10:49:03 +08:00
daanx
265767766b fix alignment test 2024-06-17 16:22:07 -07:00
daanx
3c5e480ce7 fix alignment test 2024-06-17 16:21:46 -07:00
daanx
3726cf94ba merge from dev 2024-06-17 16:18:03 -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
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
64f3afdda4 merge from dev 2024-06-03 21:31:36 -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
f79ea2461a merge from dev 2024-06-03 21:01:23 -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
614c4944e5 merge from dev 2024-06-03 18:27:33 -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
Daan Leijen
7c67114fd4 merge from dev 2024-06-03 18:14:44 -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
3f2b6e6df9 merge from dev 2024-06-03 11:34:54 -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
f77adf4a18 merge from dev (visit abandoned, upstream of python/cpython#114133) 2024-06-02 17:03:13 -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