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 |
|
daan
|
9af51506a6
|
track commit and is_large status more precisely
|
2019-08-28 11:58:30 -07:00 |
|
daan
|
db8d443ae6
|
track more precisely if memory is fixed or committed
|
2019-08-26 22:45:26 -07:00 |
|
daan
|
e8664001f7
|
Use standard _Atomic declarations and clean up atomic operations
|
2019-08-25 22:59:12 -07:00 |
|
daan
|
b86c851cca
|
put segment cache behind an option and disable by default
|
2019-08-25 12:35:14 -07:00 |
|
daan
|
a431d80fc3
|
better object sizes for large objects
|
2019-08-25 10:20:03 -07:00 |
|
daan
|
23812cc0ac
|
do not keep a queue of huge pages and free them directly
|
2019-08-24 15:45:14 -07:00 |
|
daan
|
6c6fcad242
|
remove threadid from pages and keep page flags separate (cherry picked)
|
2019-08-23 21:42:24 -07:00 |
|
daan
|
15552eba79
|
ensure volatile declaration for abandoned_next field
|
2019-08-23 21:39:27 -07:00 |
|