Commit graph

971 commits

Author SHA1 Message Date
Daan
488304053e merge from dev; check all os_commit calls 2025-06-03 15:26:41 -07:00
Daan
60f7e6a6a8 check all os_commit calls and return NULL on failure 2025-06-03 15:03:47 -07:00
daanx
3e32b4c385 fix OS allocation size tracking in the memid 2025-05-28 08:37:34 -07:00
daanx
d51e33b18e add _mi_stats_init to initialize the process start time 2025-05-21 19:11:47 -07:00
daanx
8a66ae818a always use non-flat map in secure mode and validate pointers passed to free 2025-05-21 16:32:06 -07:00
daanx
c2621f8fbe Merge branch 'dev3' of https://github.com/microsoft/mimalloc into dev3 2025-05-21 15:56:07 -07:00
Daan
752dc834a9 merge 3301ba0 to fix page_bin and pages statistics 2025-05-21 15:18:29 -07:00
Daan
f2c9967a6e merge from dev 2025-05-21 15:13:54 -07:00
Daan
08c33768a5 fix stats for pages and page_bins 2025-05-21 11:09:34 -07:00
daanx
a7411ae9c5 use proper atomics for the page_map 2025-05-20 21:04:17 -07:00
Daan
9864428349 merge from dev 2025-05-13 17:43:48 -07:00
daanx
41cc1bfe51 add guarded TLS test for Windows fixed TLS 2025-05-13 17:38:16 -07:00
Daan
df3e191620 make windows fixed TLS opt-in 2025-05-13 16:38:53 -07:00
Daan
21378d6d8a merge from dev 2025-05-13 16:13:34 -07:00
daanx
72f05e2f07 fix guarded sample rate of 1 (issue #1085) 2025-05-13 15:58:45 -07:00
daanx
a92f86dc73 add page_cross_thread_max_reclaim option 2025-05-13 14:12:22 -07:00
daanx
3ef6784455 destroy the page map as well if MIMALLOC_DESTROY_ON_EXIT is set; see issue #1041 2025-05-12 22:05:15 -07:00
Daan Leijen
36e1cbfdbc change default page_reclaim_max and change reclamation test to potentially address perf regresion in mimalloc v3 with respect to v2 -- see also https://github.com/leanprover/lean4/pull/7786 2025-05-12 18:02:42 -07:00
daanx
c84d996e88 fix TLS initialization for MI_WIN_USE_FIXED_TLS with redirection 2025-05-05 10:23:52 -07:00
daanx
6bf8a8c4ae Merge branch 'dev' into dev3 2025-05-04 22:03:19 -07:00
daanx
52b75693c4 use TlsAlloc with a dynamic offset for MI_WIN_USE_FIXED_TLS by default (issue #1078) 2025-05-04 22:03:10 -07:00
Daan
63b0989df5 revert use of selectany for msvc (issue #1078) 2025-05-04 21:41:26 -07:00
daanx
9c24c428cb add more decl_hidden specifiers on extern variables to improve access on arm64 2025-05-04 19:51:13 -07:00
daanx
9194362e48 improve TLS access on Windows with msvc (by Frank Richter, issue #1078) 2025-05-04 19:51:13 -07:00
daanx
f4d54c60e3 merge from dev 2025-05-04 09:15:57 -07:00
daanx
f989a1cbb9 add more decl_hidden specifiers on extern variables to improve access on arm64 2025-05-04 09:10:38 -07:00
daanx
e4c5d09d65 improve TLS access on Windows with msvc (by Frank Richter, issue #1078) 2025-05-04 09:04:57 -07:00
Daan
a080e3263a Merge remote-tracking branch 'T9/dev' into dev 2025-05-02 16:34:51 -07:00
daanx
90da648b08 merge from dev 2025-05-02 16:28:57 -07:00
daanx
f3e92b1edd Use second user TLS slot to avoid using reserved fields in the TEB (issue #1078) 2025-05-02 16:12:20 -07:00
Daan
3c3d16fe48 fix mi_ctz/clz/bsf/bsr to avoid msvc compilation bug (issue #1071, pr #1081) 2025-05-02 08:14:36 -07:00
Daan
aad0bc2ae3 fix cast on msvc 2025-05-02 08:09:40 -07:00
daanx
26e4632287 merge from dev 2025-04-02 10:45:18 -07:00
daanx
3c3600f85f add atomic_cas_ptr_strong_acq_rel 2025-04-02 10:36:01 -07:00
daanx
235a0390ee refactor numa_node_count 2025-04-02 10:34:00 -07:00
Daan
71b3e16171 fix invalid pointer detection in release mode (issue #1051 and #1053) 2025-03-31 10:54:12 -07:00
Daan
7d4ee62386 bump version to 3.0.4 for further development 2025-03-28 14:23:18 -07:00
Daan
a78374d816 bump version to 1.9.4 for further development 2025-03-28 14:22:02 -07:00
Daan
9228b4814a make mi_options static, rename out_buf for the debug extension 2025-03-28 13:49:14 -07:00
Daan
11cfb42fa0 Merge branch 'dev' into dev3 2025-03-28 13:39:07 -07:00
Daan
1052c30f03 fix parenthesis in #if condition 2025-03-28 13:09:24 -07:00
Vincent Fazio
23fbee7ec6 atomic: fix mi_atomic_yield for big-endian arm32
Previously, `mi_atomic_yield` would not be defined on ARM32 big-endian
architectures if they were pre-ARMv7.

Rework the #ifdef guard to be more readable and collapse the ARM guards
so both little and big endian are handled via the same mechanism.

Now, ARMv7+ will utilize `yield` while older targets will use `nop`
regardless of endianness.

Signed-off-by: Vincent Fazio <vfazio@gmail.com>
2025-03-28 08:04:07 -05:00
Daan
8da1c1b430 Merge branch 'dev' into dev3 2025-03-25 16:06:25 -07:00
Daan
632eab958b fix for atomic_yield on arm 32-bit, issue #1046 2025-03-25 16:02:29 -07:00
Daan
d5dface6fb merge from dev improved statistics 2025-03-21 19:49:02 -07:00
Daan
a077311a5e improve tracking of malloc_requested count 2025-03-21 19:40:44 -07:00
Daan
9a8aa8fcc9 merge from dev 2025-03-19 20:35:44 -07:00
Daan
660d749d77 do not default to MI_DEBUG=2 in release mode builds even when NDEBUG is not defined by defininig MI_BUILD_RELEASE (issue #1037) 2025-03-19 20:29:29 -07:00
Daan
26fa8be427 improved accounting of committed bytes (issue #1035) 2025-03-19 18:50:53 -07:00
Daan
15f2a9c729 move option_desc_t to internal.h for debugging 2025-03-14 12:55:03 -07:00