Commit graph

276 commits

Author SHA1 Message Date
daan
aa68b8cbc7 improve encoding of padding canary and buffer overflow detection 2020-02-01 12:16:37 -08:00
daan
68112a2751 better padding implementation, more precise statistics 2020-01-31 20:34:24 -08:00
daan
d221a4b904 merge from dev-exp 2020-01-27 23:36:53 -08:00
daan
b3dae128de Merge branch 'dev' into dev-exp 2020-01-27 23:15:37 -08:00
daan
9c166d88f0 increase retire page size 2020-01-27 23:15:24 -08:00
daan
54e206a0a1 increase retire page size 2020-01-27 22:41:24 -08:00
daan
b50bec463d merge from dev-exp; better abandoned reclamation 2020-01-27 22:12:23 -08:00
daan
e628fc7067 cleanup reclaim logic 2020-01-26 12:39:11 -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
e226ebcc97 Merge branch 'dev' into dev-arena 2020-01-22 20:39:33 -08:00
daan
3bbbe6c686 enable atomic yield when delayed_freeing is encountered 2020-01-22 20:12:42 -08:00
daan
e3b16fe4ef reduce type casts in atomic operations 2020-01-22 19:44:54 -08:00
Daan Leijen
caa5e51a67 align size of page_t, increase slices per segment 2020-01-22 11:29:32 -08:00
daan
0028272cf4 small fixes, reduced segment size, fix merge conflicts 2020-01-20 22:33:29 -08:00
daan
394a7a92ab merge from dev 2020-01-20 19:06:08 -08:00
daan
b77be05e40 only collect retired at fresh page allocation 2020-01-20 12:14:34 -08:00
daan
dc58388968 Add ability to register custom error function called on various error conditions; including ENOMEM 2020-01-17 19:59:55 -08:00
daan
c6037ac8f2 fix assertion index 2020-01-16 16:56:02 -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
0956a05bf6 add argument pointer to the register deferred free callback 2020-01-15 10:21:32 -08:00
daan
4a27ea1643 merge from dev 2020-01-13 18:01:34 -08:00
daan
12ef2816ed fix bug exposed by commit 59fa286 where reclaimed pages could be stuck to NEVER_DELAYED 2020-01-08 19:00:03 -08:00
daan
45582d1fb5 revert a2a9230 (remove empty page removal on search): this is not generally valid when concurrent frees do not always add to thread_delayed_free. 2020-01-05 13:58:49 -08:00
daan
59fa286294 fix bug where continue would wrongly exit the do-while loop for delayed freeing 2020-01-05 13:52:07 -08:00
daan
a2a9230ad6 remove empty page removal on page search (no longer needed with retired collection and delayed freeing) 2020-01-03 22:52:52 -08:00
daan
2b108c8748 increase retire expiration to 4 2020-01-03 21:39:18 -08:00
daan
eeb623e6af increase retire limit, collect retired pages 2020-01-03 17:06:41 -08:00
daan
77134e1ad0 update free list encoding to stronger formula with addition last 2019-12-28 15:17:49 -08:00
daan
e3391d9a53 stronger encoding of free lists using two keys per page 2019-12-28 00:57:42 -08:00
daan
ba87a39d9f updated random cookie generation using OS primitives and chacha20 2019-12-22 19:37:49 -08:00
daan
b5fbdb7180 merge from dev 2019-11-25 11:16:39 -08:00
daan
c6df7a199c experimental eager page commit option 2019-11-24 22:02:40 -08:00
daan
1066be1594 merge from dev-exp 2019-11-21 17:03:30 -08:00
daan
6568059cc6 merge from dev 2019-11-21 16:28:28 -08:00
daan
74dbfc30be improved security by encoding NULL values; double free mitigation on by default; more precise free list corruption detection 2019-11-21 15:21:23 -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 Leijen
56b9fac4bf merge from dev 2019-11-20 13:31:04 -08:00
Daan Leijen
4d4a2885f5 use atomic read/write on the page->heap field where concurrent interaction is possible 2019-11-20 13:19:17 -08:00
Daan Leijen
fed0068dac merge from dev-exp; bitmap based arena 2019-11-10 07:56:40 -08:00
daan
6ccfb5a93e merge from dev 2019-11-07 11:00:50 -08:00
daan
9b65388807 fix space leak in secure mode where a non-null free list would be discarded 2019-11-07 10:59:19 -08:00
daan
36090dee5c Merge branch 'dev' into dev-exp 2019-11-07 10:34:06 -08:00
daan
31d11f64d5 fix secure free list extension where a non-empty initial free list was discarded 2019-11-07 10:33:45 -08:00
daan
378716c467 refactor and improve atomic bitmap usage 2019-11-07 10:26:52 -08:00
daan
2b005addd3 merge from dev-exp 2019-11-03 13:37:03 -08:00
daan
9d6a5acb22 fix unix build warnings 2019-11-03 13:34:54 -08:00
daan
93ae3e26b1 Merge branch 'dev' into dev-win-exp 2019-10-30 15:22:56 -07:00
daan
8725a88fba fix assertion in debug secure mode 2019-10-30 15:22:40 -07:00