Commit graph

169 commits

Author SHA1 Message Date
Igor Kostenko
bf9c3bd088 Fix rare access violation on out of memory 2020-09-14 10:50:22 +01:00
daan
14b8d27386 track pinned memory separately from large os pages 2020-09-08 16:46:03 -07:00
daan
f3f8afb580 add abandoned counter for debug purposes 2020-09-05 18:17:07 -07:00
daan
900c97664a merge from dev-atomic 2020-09-03 09:47:01 -07:00
daan
5805c39916 enable --std=c99 compilation; fix mingw compilation 2020-08-09 17:55:17 -07:00
daan
ef8e5d18a6 replace atomics with C11/C++ atomics with explicit memory order; passes tsan. Issue #130 2020-07-26 18:01:33 -07:00
daan
a468430772 strengthen memory order of bit operations; insert memory fences 2020-07-26 14:19:30 -07:00
daan
a9f46dc86f reduce memory order constraints for better efficiency on ARM etc 2020-07-26 11:58:02 -07:00
daan
95afd0509f make segment abandoned_next atomic; tsan passes without warnings now (issue #130) 2020-07-25 23:50:22 -07:00
daan
09ade02429 bring inline with C11 atomics; no volatile and cas order of expected/desired 2020-07-25 22:52:27 -07:00
daan
70be91d6b8 reduce tsan warning by ensuring a require edge; issue #130 2020-07-22 15:28:14 -07:00
daan
66048cb6cc fix return value for page_unreset 2020-05-19 13:31:24 -07:00
daan
6f73cc8b1d Merge branch 'master' into dev 2020-05-19 10:41:08 -07:00
daan
a09a64e29b add extra check in mi_page_unreset to not unreset for huge OS pages 2020-05-19 10:40:46 -07:00
daan
a52b38342d Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev 2020-05-19 09:55:08 -07:00
Daan Leijen
bf6b781e40 fix semicolon (#247) 2020-05-18 10:08:18 -07:00
daan
967513d536 add extra checks if unreset (commit) succeeds 2020-05-06 11:35:35 -07:00
daan
5cfdc39ff1 remove on-demand page commit option 2020-04-30 18:23:33 -07:00
daan
a5bf45cd1e add commit check on page reclaim 2020-04-23 21:01:06 -07:00
daan
74a01d05af check commit/protect if eager_commit is disabled 2020-04-23 20:48:55 -07:00
daan
0d3c141243 add check for if commit fails in segment allocation 2020-04-23 17:28:44 -07:00
daan
afc4f79a69 fix for ensuring heap initialization with static linking on windows on huge allocations (issues #221) 2020-04-06 12:15:12 -07:00
daan
84b9b8878e possible fix for issue #221 2020-04-06 11:49:32 -07:00
daan
a169cf0e3f merge dev-exp; add pthread TLS support for macOSX 2020-02-01 14:10:10 -08:00
daan
edff9d4fbb merge from dev-win (padding) 2020-02-01 12:32:59 -08:00
daan
8422ab125d improve messages; fix reset size calculation on large pages 2020-01-31 17:28:26 -08:00
daan
f820fae858 merge from dev; add retired collect on abandon 2020-01-30 07:24:35 -08:00
daan
a7c69ccbea fix stat accounting of segments with huge blocks 2020-01-30 06:25:42 -08:00
daan
03b363a1c2 first working tls on macOS using interpose; still slow 2020-01-29 22:46:44 -08:00
daan
e628fc7067 cleanup reclaim logic 2020-01-26 12:39:11 -08:00
daan
394b796ea0 fix over-eager page reset in segment reclamation 2020-01-25 13:43:56 -08:00
daan
62b8fb26b1 fix freeing of segments on forced reclaim 2020-01-25 13:27:47 -08:00
daan
f4630d43a7 allow reset on large pages; check commit status before reset 2020-01-25 12:49:14 -08:00
daan
5e32d00aab add visit count to abandoned to limit list length 2020-01-25 12:26:08 -08:00
daan
47300eeda3 avoid memset 2020-01-24 20:17:33 -08:00
daan
b31bc52618 add cache alignment directives for contended variables 2020-01-24 19:02:13 -08:00
daan
e070eba112 fix tagged null encoding, search segment cache before reclaim 2020-01-24 16:31:18 -08:00
daan
e68293741e fix assertion, add check for page committed before doing reset 2020-01-23 21:44:32 -08:00
daan
58fdcbb0cd fix bug in collect where has_page was not set on free pages 2020-01-23 21:37:14 -08:00
daan
4a2a0c2d50 initial abandon based on fine-grained reclamation 2020-01-23 19:50:35 -08:00
daan
66818bf632 use atomic yield on delayed-freeing; clarify code 2020-01-23 09:57:55 -08:00
daan
e3b16fe4ef reduce type casts in atomic operations 2020-01-22 19:44:54 -08:00
daan
8d8f355ed0 add option to reset eagerly when a segment is abandoned 2020-01-16 11:25:02 -08:00
daan
b8072aaacb fix debug build 2020-01-16 03:54:51 -08:00
daan
7a1e86fc20 merge from dev 2020-01-15 18:03:37 -08:00
daan
ad32eb1dfb eager collect on page reclamation 2020-01-15 17:57:19 -08:00
daan
0099707af9 use delayed free for all pages; reduce size of the page structure for improved address calculation 2020-01-15 17:19:01 -08:00
daan
c9b5ac80b3 update page reset queue to just do delayed page resets 2020-01-15 12:00:44 -08:00
daan
941c55ee42 wip: first implementation of page free list on segments for effecient delayed page reset 2020-01-14 21:47:18 -08:00
daan
683d8998d4 fix potential A-B-A problem with segment abandonment; noticed by Manual Poeter and Sam Gross 2020-01-08 17:45:38 -08:00