Commit graph

285 commits

Author SHA1 Message Date
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
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
6bd591d675 fix tsan errors 2023-04-05 11:57:32 -07:00
daanx
cdefd5b69c fix stats for purging 2023-04-05 11:11:03 -07:00
daanx
8ddf6f96a8 fix purge bug in arenas 2023-04-04 19:03:18 -07:00
daanx
83aa635485 implement arena destroy on program exit 2023-04-04 18:44:08 -07:00
daanx
4c4f2f4084 clean up arena function names 2023-04-04 18:13:35 -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
4fc597d4f4 more tight purge delay 2023-04-04 15:05:29 -07:00
daanx
77766e20a6 use only arena's instead of regions 2023-04-04 14:58:06 -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
Daan Leijen
cc4ed36c7e prepare for new release 2023-04-03 12:30:18 -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
bd66d54765 Merge branch 'dev' into dev-reset 2023-03-31 10:34:27 -07:00
Daan Leijen
3208dff17a remove extraneous forward declarations 2023-03-31 10:33:36 -07:00
Daan Leijen
6eee9e4be2 add option eager_reserve 2023-03-30 16:20:11 -07:00
Daan Leijen
176b6e6aa0 add mi_arena_is_os_allocated 2023-03-28 09:59:41 -07:00
Daan Leijen
560e32b2e1 update comments 2023-03-28 09:14:17 -07:00
Daan Leijen
f58357548c restructure header files 2023-03-20 10:37:39 -07:00
Johannes Schindelin
745a34f475 Fix whitespace
This mostly deletes trailing spaces.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-12-03 00:24:20 +01:00
daan
711aad7a75 refactor arena allocation 2022-11-07 11:13:29 -08:00
daan
6a80fa3ac1 initial progress on removing alignment limit 2022-11-05 14:46:52 -07:00
daan
ad1da7cfc8 fix warnings 2022-11-01 16:29:10 -07:00
daan
e6bd41ba3f update arena_id api 2022-11-01 16:26:17 -07:00
daan
0a691ca68e fix off by one in arena id 2022-11-01 14:05:04 -07:00
daan
fe2d5aa8ff initial work on heaps restricted to specific arena's 2022-11-01 14:00:20 -07:00
daan
09e59e0610 use size_t instead of uintptr_t where appropiate 2021-11-13 15:13:16 -08:00
daan
28896e5b19 prefix UNUSED,KiB,MiB,GiB; add mi_threadid_t type; add mi_ssize_t 2021-11-13 14:46:03 -08:00
Daan
e02f88a11c Fix warnings with g++-11 compilation 2021-10-20 09:55:03 -07:00
daan
505ea78cae Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2021-10-19 15:07:19 -07:00
Daan
ae5aae7e10 allow decommit in arena separate from initial commit 2021-10-19 14:00:40 -07:00
Daan Leijen
22c2fd82cc ensure managed os memory is at least one arena block in size 2021-10-18 20:44:19 -07:00
Daan Leijen
bcce4d52bf fix bug in determination of block size in pre-reserved arena memory 2021-10-18 20:39:39 -07:00
Daan Leijen
4ba32c3160 Revert "make all includes relative"
This reverts commit 1feb6123d9.
2021-06-07 16:47:57 -07:00
Daan Leijen
1feb6123d9 make all includes relative 2021-06-06 20:31:36 -07:00
Jim Huang
0f57425f80 Distinguish SI and Binary Prefixes
SI prefixes [the decimal prefixes] refer strictly to powers of 10. They
should not be used to indicate powers of 2. e.g., one kilobit
represents 1000 bits instead of 1024 bits. IEC 60027‐2 symbols are
formed adding a "i" to the SI symbol (e.g. G + i = Gi).
2021-05-30 20:13:28 +08:00
Jim Huang
5940d3bcce Bump copyright date
Each source file has been changed according to relevant Git activities.
2021-04-24 16:35:11 +00:00
Daan Leijen
3228bb685f set errno ENOMEM for limited arena allocation (issue #295) 2021-02-22 14:17:25 -08:00
daan
69f935944f add test to avoid searching arenas when possible 2020-10-15 19:46:19 -07:00
daan
364674185e add option to limit OS allocation and only allow allocation from arenas 2020-09-08 16:56:51 -07:00