2918 Commits

Author SHA1 Message Date
daanx
ea3ac0750e merge from dev-steal 2024-11-18 15:08:17 -08:00
daanx
71fec8caf5 add target_segments_per_thread option 2024-11-18 15:05:22 -08:00
daanx
0fa99d41fc merge from dev-slice 2024-11-18 11:13:29 -08:00
daanx
edc7ddd37c Merge branch 'dev' into dev-steal 2024-11-18 11:05:31 -08:00
Daan
54c5af5862 Merge branch 'dev' into dev-slice 2024-11-17 23:37:32 -08:00
daanx
9cae0d31cd Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2024-11-17 23:30:19 -08:00
daanx
54ee4e7632 merge from dev 2024-11-17 23:29:21 -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
Daan
d2b6455749 Merge branch 'dev' into dev-slice 2024-11-05 02:07:58 -08:00
Daan
54940a6a65 update mimalloc-redirect to potentially fix issue #957 2024-11-05 02:07:45 -08:00
Daan
826425d5ab fix merge error, issue #955 2024-11-02 06:24:28 -07:00
Daan
4f46cf7d5a ensure we dont reclaim a segment on a free if that would go above the target segment count 2024-10-29 22:40:58 -07:00
Daan
5cd09cec76 merge from dev 2024-10-29 22:24:24 -07:00
Daan
e2f4fe647e update test file 2024-10-29 22:23:21 -07:00
Daan
3f3aee918a Merge branch 'dev-slice' into dev-slice-steal 2024-10-29 20:09:12 -07:00
Daan
deba02e7be Merge branch 'dev' into dev-slice 2024-10-29 20:08:45 -07:00
Daan
b5ae6fc555 remove wrong assertion 2024-10-29 20:08:36 -07:00
Daan
eda16d7c91 remove wrong assertion 2024-10-29 20:07:35 -07:00
Daan
471bc768e3 Merge branch 'dev-slice' into dev-slice-steal 2024-10-27 22:20:19 -07:00
Daan
c0e1132674 merge from dev 2024-10-27 22:17:23 -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
06ee1d7949 Merge branch 'dev' into dev-slice 2024-10-27 21:11:04 -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
d3455ea29e Merge branch 'dev' into dev-slice 2024-10-27 18:17:38 -07: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
164bd8c06c Merge branch 'dev' into dev-slice 2024-10-21 05:10:21 -07:00
Daan
34e66778ec fix MI_EXTRA_CPPDEFS setting 2024-10-21 05:10:09 -07:00
Daan
e58e41c8da merge from dev 2024-10-21 05:07:12 -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
81da26d7d3 make target test for stealing one less since we are about to reclaim_or_alloc a fresh segment 2024-10-11 10:52:35 -07:00
Daan
19ce2c6461 restore randomization when trying to reclaim abandoned segments 2024-10-11 10:44:43 -07:00
daanx
723869014f add ability to abandon segments after a threshold 2024-10-09 21:24:20 -07:00
Daan Leijen
4913c2c65b Merge branch 'dev-steal' into dev-slice-steal 2024-10-09 15:16:13 -07:00
Daan Leijen
a7e7cbac89 use enqueue_from_full, and keep inserting at the end 2024-10-09 15:15:57 -07:00
daanx
428e3b9ee0 Merge branch 'dev-steal' into dev-slice-steal 2024-10-09 15:05:48 -07:00
daanx
0316cb1d88 reduce page search to 8 2024-10-09 15:05:35 -07:00
daanx
933ac5c14c Merge branch 'dev-steal' into dev-slice-steal 2024-10-09 14:41:25 -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
03fbaedec5 Merge branch 'dev-steal' into dev-slice-steal 2024-10-09 14:35:49 -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
b3d502179a Merge branch 'dev-steal' into dev-slice-steal 2024-10-09 11:28:33 -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
ad02086d3b remove default MI_DEBUG_GUARDED 2024-08-21 17:07:01 -07:00
Daan
60206ec075 merge from dev 2024-08-21 17:01:46 -07:00
Daan
d8e0cb1a37 increase test timeout for azure pipeline 2024-08-21 17:01:05 -07:00
Daan
532141fda2 Merge branch 'dev' into dev-slice 2024-08-21 15:39:31 -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
3ec3aaf858 merge from dev 2024-08-21 11:33:11 -07:00
Daan Leijen
6a21db1017 Merge branch 'dev-guarded' into dev-slice-guarded 2024-08-21 11:31:10 -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
daanx
4ea9df3ee4 Merge branch 'dev-slice' into dev-slice-guarded 2024-08-20 13:13:10 -07:00
daanx
f163164d36 ensure start-offset in a segment respects minimal alignment 2024-08-20 13:12:51 -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