Daan Leijen
c409928f5e
Merge branch 'dev' of d:\dev\mimalloc3 into dev
2024-12-19 11:12:44 -08:00
Daan Leijen
130227e399
update redirection modules to v1.3
2024-12-19 11:10:17 -08:00
Daan Leijen
27d929f338
add support for arm64ec
2024-12-18 23:55:37 -08:00
daanx
61a112cde5
fix MI_ARCH test
2024-12-18 14:45:44 -08:00
daanx
69d2b4e991
add comments/doc
2024-12-18 14:41:20 -08:00
daanx
515ae84174
syntax error
2024-12-18 14:35:10 -08:00
daanx
636d646b9c
update arch detection in cmake
2024-12-18 14:20:49 -08:00
daanx
617190880d
add ajust stats to compensate for double counting
2024-12-17 17:53:34 -08:00
daanx
c2e0aa49c4
update minject to v1.1
2024-12-17 16:07:18 -08:00
Daan Leijen
df593a3ec1
make timeout for tests in the pipeline up to 4 min
2024-12-17 00:35:28 -08:00
Daan Leijen
ac52b6967d
update arm64 redirection
2024-12-17 00:06:03 -08:00
Daan Leijen
6ac636e2e2
update readme
2024-12-16 23:22:52 -08:00
Daan Leijen
3feb0d6cea
add Windows arm64 support in cmame; name the mimalloc dll 'mimalloc-override.dll' on Windows with cmake (to match the IDE and minject
2024-12-16 23:09:50 -08:00
Daan Leijen
de8d73d208
add minject for windows arm64
2024-12-16 22:53:52 -08:00
Daan Leijen
b47c68fefd
add redirection dll for windows on arm64
2024-12-16 22:53:23 -08:00
Daan Leijen
d5e1a62a7c
add windows arm64 target to vs2022
2024-12-16 22:51:30 -08:00
daanx
91215a5512
ensure incompatible heaps are not absorbed
2024-12-11 09:20:34 -08:00
daanx
7bb4767607
add asan/ubsan/tsan and valgrind to default debug build
2024-12-10 20:45:59 -08:00
Daan
9886379349
fix macos 15 OS name
2024-12-09 21:22:30 -08:00
Daan
2556a2022d
fix missing void
2024-12-09 20:50:00 -08:00
daanx
ed31847112
fix generic ctz/clz
2024-12-09 20:45:22 -08:00
daanx
c8607a8d01
remove os_tld and stats parameters to os interface
2024-12-08 17:56:13 -08:00
daanx
d9a2f76ff7
fix write to empty heap in mi_guarded build
2024-12-08 17:23:09 -08:00
daanx
68bd8744b7
fix spelling
2024-12-08 09:13:48 -08:00
daanx
7c2b09fc3e
only enable architecture specific optimization for armv8.1
2024-12-08 09:02:16 -08:00
daanx
60a8da75ff
Add MI_ARCHOPT support for msvc
2024-12-07 14:16:39 -08:00
daanx
469ade882d
Add MI_ARCHOPT option to enable architecture specific optimizations
2024-12-07 14:03:16 -08:00
Daan
9b7537755a
Merge branch 'dev-steal' into dev
2024-11-25 19:28:35 -08:00
Daan
cd61eb7cf1
Merge pull request #961 from devnexen/windows_tighten_criterias
...
_mi_memcpy/_mi_memzero: tighten criteria for intrinsics for windows.
2024-11-25 19:25:26 -08:00
Daan
d2937ba3e5
Merge pull request #964 from diegorusso/illegal-instruction
...
Fix illegal instruction for older Arm architectures
2024-11-25 19:23:06 -08:00
daanx
7673aa2517
ensure forced abandoned pages can be accessed after free
2024-11-25 18:41:57 -08:00
daanx
9b7ac9a1a6
clean up candidate search; add mi_collect_reduce
2024-11-25 16:58:02 -08:00
Diego Russo
3adb19c84c
Fix illegal instruction for older Arm architectures
...
This is a port of the PR https://github.com/python/cpython/issues/125444
2024-11-25 14:23:40 +00:00
daanx
b898dbe3e0
Merge branch 'dev' into dev-steal
2024-11-18 16:12:26 -08:00
daanx
71fec8caf5
add target_segments_per_thread option
2024-11-18 15:05:22 -08:00
daanx
edc7ddd37c
Merge branch 'dev' into dev-steal
2024-11-18 11:05:31 -08:00
Daan
3a7b6f0a8d
allow build time setting of sample rate
2024-11-18 10:28:00 -08:00
daanx
9cae0d31cd
Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev
2024-11-17 23:30:19 -08:00
daanx
41029d9d49
fix azure pipeline
2024-11-17 23:20:18 -08:00
daanx
e7198ce397
Extend azure pipeline with Ubuntu 24 & 20, windows 2019, and macOS 15
2024-11-17 23:16:59 -08:00
daanx
ff56f6acbc
update azure pipeline to use sample rate of 1000 for guarded objects
2024-11-17 23:01:16 -08:00
daanx
b8dc09e3d2
fix asan with MI_GUARDED
2024-11-17 22:56:26 -08:00
daanx
d57cb0765d
add guarded objects that are sampled (and fit a size range). guarded sample rate etc can be set per heap as well as defaulted with options
2024-11-17 22:45:09 -08:00
daanx
8ba1879073
add sampling for guarded objects
2024-11-17 00:06:16 -08:00
daanx
8b6017d976
rename mi_debug_guarded_ to mi_guarded_
2024-11-16 22:42:32 -08:00
daanx
498c92e348
update guarded implementation to use block tags
2024-11-16 21:15:50 -08:00
Daan Leijen
c57e9b855c
fix std malloc compile of the stress test
2024-11-16 19:43:13 -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
54940a6a65
update mimalloc-redirect to potentially fix issue #957
2024-11-05 02:07:45 -08:00
Daan
e2f4fe647e
update test file
2024-10-29 22:23:21 -07: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
3cba10e510
update mimalloc-redirect
2024-10-27 01:02:13 -07:00
Daan
532904c85c
update mimalloc redirect to v1.2 to handle static destructors that free memory (issue #944 )
2024-10-24 01:01:53 -07: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
4377abe017
add cmake option to fall back on the fiber api do detect thread termination on windows
2024-10-21 22:59:41 -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
34e66778ec
fix MI_EXTRA_CPPDEFS setting
2024-10-21 05:10:09 -07:00
Daan
50d3525a8c
add test for issue #944
2024-10-21 05:04:27 -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
Daan
394e8c27d8
add cmake option to add C pre processor definitions more easily
2024-10-21 05:02:24 -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
db3d8485d2
increase TSAN test to 400 iterations
2024-08-21 17:13:51 -07:00
Daan
d8e0cb1a37
increase test timeout for azure pipeline
2024-08-21 17:01:05 -07:00
Daan
bb3976760f
add guarded build to test pipeline
2024-08-21 15:34:22 -07:00
Daan
51025f1ac2
set lower parameters for guarded test
2024-08-21 15:29:32 -07: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
Daan Leijen
631ff581af
set compile as C++ in VS IDE
2024-08-21 10:47:38 -07:00
Daan Leijen
b9b529de28
shuffle for 128 bit
2024-08-21 10:45:19 -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