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