Commit graph

1716 commits

Author SHA1 Message Date
daanx
498c92e348 update guarded implementation to use block tags 2024-11-16 21:15:50 -08:00
daanx
0e76fe3798 add address hint to primitive allocation API 2024-11-16 16:57:37 -08:00
daanx
b27d154ffd add virtual address bits and physical memory to the mem config 2024-11-16 15:37:08 -08:00
David Carlier
9f0a7ac0be
_mi_memcpy/_mi_memzero: tighten criteria for intrinsics for windows.
FSRM is better used for buffer <= 128 bytes and ERMS, if supported for larger
chunks.
2024-11-16 10:05:14 +00:00
Daan
b5ae6fc555 remove wrong assertion 2024-10-29 20:08:36 -07:00
Daan
30640233a1
Merge pull request #943 from asdf-bro/patch-1
Musl needs __libc* functions too
2024-10-27 22:15:43 -07:00
Daan
c59b0cd7fc
Merge pull request #946 from ArtSin/fix-vsnprintf-int-long-intmax_t
Fix int and long handling and the use of (u)intptr_t in _mi_vsnprintf
2024-10-27 22:12:29 -07:00
Daan
b3828bba9e disable aligned hinting or SV39 mmu's, issue #939, and pr #949 2024-10-27 21:58:20 -07:00
Daan
5f35933331 add 0 byte to canary to prevent spurious read overflow to read the canary (issue #951, pr #953) 2024-10-27 21:39:07 -07:00
Daan
afba03145c
Merge pull request #954 from jimwang118/fix-linux
Fix build error on x64-android
2024-10-27 21:12:58 -07:00
Daan
f126b50382 update comments, set constructor priority to 101 on macOS 2024-10-27 21:10:46 -07:00
Jim-Wang
17802e6528 fix build error on linux 2024-10-28 02:06:58 +00:00
Daan
ee92b337b9 do not reclaim segments if free-ing from a thread with an already abandoned heap (issue #944) 2024-10-24 00:13:07 -07:00
Daan
2b0d039cf3 fix assertion check 2024-10-23 01:21:41 -07:00
Daan
925efaeac9 improve windows static library initialization to account for thread local destructors (issue #944) 2024-10-23 01:10:00 -07:00
Daan
d951b4dd23 add missing mi_thread_done definition 2024-10-23 00:53:17 -07:00
Daan
6e9b38ac12 fix issue where searching for abandoned blocks would skip the first one 2024-10-22 18:58:55 -07:00
Daan
dfdb9cb877 cleanup process init/done 2024-10-22 06:52:34 -07:00
Daan
104e821709 fix fast divisor for 32-bit platforms 2024-10-22 06:08:56 -07:00
Daan
46e9e7fdd0 fix win32 compilation 2024-10-22 06:06:15 -07:00
Daan
e55ae0aeb7 fix duplicate definition on windows 2024-10-21 23:09:14 -07:00
Daan
f971bd6d74 fix build on windows 2024-10-21 23:05:51 -07:00
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
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
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