609 Commits

Author SHA1 Message Date
Daan
204348e468 only define WIN32_LEAN_AND_MEAN if needed 2024-04-20 16:58:58 -07:00
Daan
7247b9e326 allow configuring page and segment sizes (pr #753 and pr #862) 2024-04-20 16:45:49 -07:00
Daan
336f83fbd1 use __builtin_thread_pointer on arm64 with older gcc compilers (issue #851) 2024-04-20 16:09:45 -07:00
Daan
bf5932c3c6 use better purging for segments_collect 2024-04-19 12:43:05 -07:00
Daan
2b7530e183 add segment_collect for forced heap_collect 2024-04-19 12:33:17 -07:00
Daan
32e065bb32 rename segment_thread_collect to segment_collect 2024-04-19 12:11:58 -07:00
Daan
e21801fa02 Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2024-04-19 10:08:02 -07:00
Daan
c13c17f1d0
Merge pull request #864 from rHermes/fix-passing-heap
Avoid compilation error when passing in heap_t to C++ allocators
2024-04-19 10:07:55 -07:00
Daan
5050b63038 define MI_MAX_ALLOC_SIZE as PTRDIFF_MAX (related to #877) 2024-04-19 09:53:21 -07:00
Teodor Spæren
10721ddbfd Remove unneeded include 2024-03-31 23:18:52 +02:00
Daan Leijen
0022802177 commend and make at least 8 tries for reclaim 2024-03-25 15:25:04 -07:00
daanx
006ae2d055 add is_huge page flag to ensure the right page queue is returned (see #868) 2024-03-24 17:07:28 -07:00
Daan Leijen
a8a53e3e85 fix double counting of free-ing for non-thread-local free calls 2024-03-24 14:50:15 -07:00
Daan Leijen
b5665f0eec add full block_size and page_start to page info 2024-03-24 14:17:17 -07:00
Daan Leijen
6688b45fbd rename MI_ALIGNMENT_MAX to MI_BLOCK_ALIGNMENT_MAX for clarity 2024-03-24 10:57:02 -07:00
Daan Leijen
07ae64bd81 faster check for NULL in mi_free by combining with masking 2024-03-24 10:39:22 -07:00
Daan Leijen
ea6137a501 use MI_MAX_ALIGN_SIZE to adjust block_offset_adj 2024-03-24 09:01:58 -07:00
Daan Leijen
60c4a0fe56 fix compilation warnings for new uint16_t size for used field 2024-03-24 08:10:35 -07:00
Daan
9085596eab update comment 2024-03-23 08:57:29 -07:00
Daan
cc809b0cd4 take 16 bits from used field to create a fast unalign path 2024-03-18 01:40:03 -07:00
Teodor Spæren
3d89f6388e Fix std::shared_pointer calling free on provided heap pointers 2024-03-09 15:14:32 +01:00
Teodor Spæren
068dc014ec Avoid compilation error when passing in heap to allocators
Before it would not work to create the mi_heap_stl_allocator types with
passing in a "mi_heap_t*", since sizeof is used and it gives a
compilation error. This change fixes that.
2024-03-09 14:13:33 +01:00
Daan
db52999d85 update used block comment (issue #861) 2024-03-08 09:01:26 -08:00
daanx
5fe83bf327 limit reclaim from free to half the segments to prevent a pure freeing thread to reclaim too many segments 2024-03-03 17:38:50 -08:00
Daan
56d1a859ca Merge branch 'dev' into dev-abandon 2024-03-03 09:37:53 -08:00
Daan
027b22aaf2 add arena stats 2024-03-03 09:37:46 -08:00
daanx
70e3ce07d1 Merge branch 'dev' into dev-abandon 2024-03-02 17:34:58 -08:00
Daan
683332c950 Define reallocarr as weak to avoid symbol collision on gnu/Linux. #751 by @Romain-Geissler-1A 2024-03-02 17:12:58 -08:00
Daan
e1f6516fda Fix undefined symbol errors when building for wasi #758, by @anuraaga 2024-03-02 17:05:29 -08:00
Daan
5d22157dc8 support tls_slot for PPC
#781, by @barracuda156
2024-03-02 16:41:49 -08:00
Daan
5634527fae add terminating quote 2024-03-02 15:26:42 -08:00
Daan
dfb5cadf33 don't use the new __builtin_thread_pointer on macOS 2024-03-02 14:06:34 -08:00
Daan Leijen
3966953b7f prefer using __builtin_thread_pointer over assembly primitives. Fixes #851 and #852 as well. 2024-03-02 11:50:57 -08:00
daanx
500d2ad1fd ensure non-arena segments are force purged on abandonment; make non-arena reclaim atomic 2024-03-01 18:47:59 -08:00
daanx
16c0948ee5 improve display of arenas and contained blocks 2024-03-01 16:24:28 -08:00
daanx
f5f61a65f5 bump version to 1.8.4 2024-03-01 15:14:39 -08:00
daanx
c4f1f2e079 make reclaim tries a percentage of the abandoned count 2024-03-01 14:57:46 -08:00
daanx
cf8f73098e start abandoned search randomized 2024-03-01 10:51:18 -08:00
daanx
64edbc92dd allow abandoned segment reclaim on a free 2024-02-29 14:58:59 -08:00
daanx
bdda13b880 track abandoned segments in an arena bitmap instead of with a list 2024-02-29 14:27:28 -08:00
Daan Leijen
36ee5f9024 avoid warning on newer clang 2023-06-30 12:21:01 -07:00
Daan Leijen
1325ee640a avoid warning on newer clang 2023-06-30 12:16:38 -07:00
daanx
e10467f673 add libc primitives to reduce dependencies 2023-05-19 11:57:10 -07:00
daanx
4a85f32f8e add libc.c source file 2023-05-19 10:24:39 -07:00
daanx
632edf9996 rename was_zero/committed to initially_zero/committed 2023-04-24 09:03:43 -07:00
daanx
a59ae585c7 remove allow_purge option 2023-04-23 13:04:50 -07:00
daanx
67dcbbfa43 refine c17 check for ATOMIC_VAR_INIT 2023-04-23 12:46:38 -07:00
Trout Zhang
e68010573f
Fix ATOMIC_VAR_INIT deprecation warnings for C17 2023-04-23 21:39:20 +08:00
daanx
e47adc2d22 track objects in heap destroy for ETW 2023-04-21 11:33:50 -07:00
daanx
012f716485 add is_zero flag to prim_commit 2023-04-21 10:37:22 -07:00
daanx
e6f3647556 track os alignment and base 2023-04-18 19:00:50 -07:00
daanx
09e42aea4e clarify is_zero meaing 2023-04-18 17:41:18 -07:00
daanx
4d976270eb review is_zero flag 2023-04-18 17:18:39 -07:00
daanx
b845be241a wip: use memid for OS allocation 2023-04-18 16:38:47 -07:00
daanx
63ddc31d3f fix 32-bit compile warnings 2023-04-17 12:05:33 -07:00
daanx
e03f26b035 fix atomic signature 2023-04-17 11:39:55 -07:00
daanx
a8c581059b Merge branch 'dev' into dev-reset 2023-04-17 09:48:58 -07:00
daanx
43be9c2909 possible fix for warnings on armv6 (issue #719) 2023-04-17 09:25:41 -07:00
daanx
a52ba65f65 further fix for atomic build error suggested by Davide Di Gennaro (issue #729, pr #724) 2023-04-17 09:13:08 -07:00
daanx
a655c28b66 cleanup 2023-04-16 12:29:21 -07:00
daanx
d48b988c40 clean up os api 2023-04-16 11:21:45 -07:00
daanx
0fc4de1440 use rich memid's to simplify the internal API's and invariants 2023-04-15 21:31:17 -07:00
daanx
0174d19af3 increase thread data cache to 16 2023-04-15 19:49:14 -07:00
daanx
8027fcfecd Merge branch 'dev' into dev-reset 2023-04-15 17:59:01 -07:00
Sergey Fedorov
cd915900a2 atomic.h: unbreak build on Darwin PPC 2023-04-15 07:06:47 +08:00
Daan
5a866ca7e1 fix build error on Android/Linux for an atomic signature (pr #724, issue #729) 2023-04-14 09:44:36 -07:00
daanx
48d0d0da9b fix thread data cache to use pure os alloc 2023-04-13 15:27:20 -07:00
daanx
0ba79d01f6 allow static allocation in arenas for internal metadata 2023-04-13 13:19:39 -07:00
daanx
c90a2bbd0a make memid's abstract for safety 2023-04-13 12:17:52 -07:00
daanx
eb62caeda0 allow per page purging instead of reset 2023-04-08 17:37:58 -07:00
daanx
cdefd5b69c fix stats for purging 2023-04-05 11:11:03 -07:00
daanx
96e9e6f570 clean up option naming 2023-04-05 10:11:54 -07:00
daanx
55df1f3a54 more detailed stats, including purges 2023-04-05 09:48:22 -07:00
daanx
cb0369452d use exponetially sized arenas 2023-04-04 17:54:33 -07:00
daanx
d01017ffda extend primitive api with is_zero parameters 2023-04-04 16:32:39 -07:00
daanx
a2e1d2b893 add segment map to track valid pointers 2023-04-04 16:00:17 -07:00
daanx
461df1e878 implement arena exclusive heap allocation for dev 2023-04-04 15:40:43 -07:00
daanx
77766e20a6 use only arena's instead of regions 2023-04-04 14:58:06 -07:00
daanx
1d231be758 clarify needs_recommit 2023-04-04 13:05:48 -07:00
daanx
5c39fe7246 decommit returns whether re-commit is needed 2023-04-04 12:57:18 -07:00
daanx
449aad0635 wip: purgeable arenas; update option names and improve arena reservation 2023-04-04 12:15:57 -07:00
daanx
a5b47fe17b Merge branch 'dev' into dev-reset 2023-04-03 12:46:00 -07:00
daanx
92556e0e62 bump version for further development 2023-04-03 12:45:04 -07:00
Daan Leijen
595add5e3d wip: initial work on purgable arenas 2023-03-31 20:51:35 -07:00
Daan Leijen
7cf60deb12 wip: initial delayed purging of arenas 2023-03-31 14:07:59 -07:00
Daan Leijen
1a57a53b75 Merge branch 'dev' into dev-reset 2023-03-31 10:31:43 -07:00
Daan Leijen
d3ec7f378e fix compile on ppc64IE and s390x arches (issue #717) 2023-03-31 10:25:32 -07:00
Daan Leijen
6eee9e4be2 add option eager_reserve 2023-03-30 16:20:11 -07:00
Daan Leijen
f08d9d489c bump version for further development 2023-03-30 09:19:35 -07:00
Daan Leijen
176b6e6aa0 add mi_arena_is_os_allocated 2023-03-28 09:59:41 -07:00
Daan Leijen
9792b6364d move more prototypes in internal.h for safety 2023-03-28 09:25:32 -07:00
Daan Leijen
c92e9e7bf7 add comment that thread id's should not be zero, issue #698 2023-03-20 14:01:09 -07:00
Daan Leijen
0b4c3da2e9 make process init race free (issue #701) 2023-03-20 13:55:39 -07:00
Daan Leijen
65402836ae comments 2023-03-20 11:30:52 -07:00
Daan Leijen
e24e1125ee bump version to 1.8.0 2023-03-20 11:03:50 -07:00
Daan Leijen
0509d11ac5 more comments 2023-03-20 11:02:16 -07:00
Daan Leijen
ec5f4904b0 more comments 2023-03-20 11:01:40 -07:00
Daan Leijen
f58357548c restructure header files 2023-03-20 10:37:39 -07:00
Daan Leijen
17a20f280b dont track ETW by default 2023-03-16 20:16:31 -07:00
Daan Leijen
1a99efc671 integrate ETW windows event tracing into mimalloc as another track tool 2023-03-16 20:08:43 -07:00