Commit graph

96 commits

Author SHA1 Message Date
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
daan
1b5a08cd25 remove unused parameter in check double free 2020-01-02 17:24:32 -08:00
daan
e3391d9a53 stronger encoding of free lists using two keys per page 2019-12-28 00:57:42 -08:00
daan
1d998af854 clean up options; make secure work with eager_page_commit 2019-11-25 10:47:17 -08:00
daan
c6df7a199c experimental eager page commit option 2019-11-24 22:02:40 -08:00
daan
4452431b6c reenable segment cache and fix initial segment commit 2019-11-24 15:25:19 -08:00
daan
727d33b96f more precise memory reset 2019-11-24 14:40:47 -08:00
daan
4a0d35afd0 improve secure guard page allocation to work with non-eager commit 2019-11-23 11:59:19 -08:00
Daan Leijen
211f1aa519 remove reset delay slots; add reset tracking per page and segment 2019-11-20 14:55:12 -08:00
daan
a0958b2da6 enable more reset delay slots 2019-11-11 17:06:16 -08:00
daan
741a80256d merge from dev-exp 2019-11-11 14:51:16 -08:00
daan
2bb058bd25 remove cache_reset parameter 2019-11-11 14:44:32 -08:00
daan
534e1e39ef allow allocation in committed regions even if not requested 2019-11-11 14:42:29 -08:00
daan
93a6463383 only allow commit delay for small and medium objects 2019-11-11 14:16:45 -08:00
daan
181bef382c merge dev-exp 2019-11-10 11:39:53 -08:00
Daan Leijen
9f08ddd0d0 refactor regions; add commit tracking on a segment basis 2019-11-09 19:30:53 -08:00
daan
829fd872f4 initial delay slots 2019-11-04 11:48:41 -08:00
daan
9d6a5acb22 fix unix build warnings 2019-11-03 13:34:54 -08:00
daan
60efb62155 make secure a build option only 2019-09-17 17:31:42 -07:00
daan
e73982c4cf better alignment for large and huge pages inside a segment 2019-09-04 18:42:37 -07:00
daan
d1bd1644d5 support zero-initialized memory detection 2019-09-02 13:16:52 -07:00
daan
4b39c0b06e fix eager_delay test, and allow large OS pages even without eager commit enabled 2019-08-29 07:55:57 -07:00
daan
154fd471a1 fix comparison warning 2019-08-29 07:48:15 -07:00
daan
d381fcd9fa rename lazy to eager_commit_delay 2019-08-28 12:09:23 -07:00