Commit Graph

87 Commits

Author SHA1 Message Date
Daniel Micay
934ab4cb59 explain extended size classes impact on quarantine 2019-07-05 17:57:41 -04:00
Daniel Micay
060f74b993 extended size classes now go up to 128k not 64k 2019-07-05 17:55:25 -04:00
Daniel Micay
4d4277319a clarifications to randomization documentation 2019-06-23 19:20:16 -04:00
Daniel Micay
37474e117c limit precision for fragmentation in table 2019-06-12 13:29:04 -04:00
Daniel Micay
64a1f59020 note about getrandom with syscall whitelists 2019-06-02 22:24:25 -04:00
Daniel Micay
ae4142c2d1 note that arenas are isolated from each other 2019-04-23 02:01:44 -04:00
Daniel Micay
18f36c3e8d expand description of randomized delay free 2019-04-23 01:59:31 -04:00
Daniel Micay
7f0bbddfca merge points about out-of-line / protected state 2019-04-23 01:58:37 -04:00
Daniel Micay
086eb1fee4 at a final spacing class of 1 slot size classes 2019-04-10 16:32:24 -04:00
Daniel Micay
b31e8dacb1 document extended size classes 2019-04-10 08:42:32 -04:00
Daniel Micay
922c741915 it already supports Bionic, musl and glibc 2019-04-07 18:13:26 -04:00
Daniel Micay
e0891c8cfc implement the option of large size classes
This extends the size class scheme used for slab allocations to large
allocations. This drastically improves performance for many real world
programs using incremental realloc growth instead of using proper growth
factors. There are 4 size classes for every doubling in size, resulting
in a worst case of ~20% extra virtual memory being reserved and a huge
increase in performance for pathological cases. For example, growing
from 4MiB to 8MiB by calling realloc in increments of 32 bytes will only
need to do work beyond looking up the size 4 times instead of 1024 times
with 4096 byte granularity.
2019-04-07 08:52:17 -04:00
Daniel Micay
ec8fb347ed document CONFIG_STATS 2019-04-07 00:10:22 -04:00
Daniel Micay
beaa39a5a3 move to only supporting current generation AOSP 2019-04-06 23:46:35 -04:00
Daniel Micay
494cc5ec50 update README now that arenas are implemented 2019-03-25 16:18:01 -04:00
Daniel Micay
c5e911419d add initial implementation of arenas 2019-03-25 14:59:50 -04:00
Daniel Micay
ddd616aa0b add documentation on system calls 2019-03-20 11:59:58 -04:00
Daniel Micay
ae96835b94 fix scalability header levels 2019-02-04 15:59:14 -05:00
Daniel Micay
e4061899aa add documentation on scalability design choices 2019-02-04 15:01:15 -05:00
Daniel Micay
41df5005e8 add a top-level header to the README 2019-02-04 13:59:19 -05:00
Daniel Micay
9cc0ac3efa add basic documentation on memory tagging approach 2019-02-04 11:58:28 -05:00
Daniel Micay
33b1a2740e update default slab quarantine sizes in README 2019-01-02 15:42:41 -05:00
Arlo Breault
dea2788539 fix typo in README.md 2019-01-02 15:40:58 -05:00
Daniel Micay
57f115b33c scale slab quarantine based on size 2019-01-02 14:52:13 -05:00
Daniel Micay
ccc2a86501 rename quarantine size -> length for clarity 2019-01-02 14:17:02 -05:00
Daniel Micay
830a7d338d make class_region_size configurable 2018-12-05 09:38:13 -05:00
Daniel Micay
11fe467b7c clarify wording 2018-11-19 08:04:37 -05:00
Daniel Micay
c9dfe586b3 add initial documentation on API extensions 2018-11-19 06:54:48 -05:00
Daniel Micay
4d85a61db2 remove obsolete duplicate information 2018-11-19 06:31:58 -05:00
Daniel Micay
d88a8c9813 mention that the same hash table code is reused 2018-11-19 05:45:34 -05:00
Daniel Micay
433b37b4a9 explain more of the size class reasoning 2018-11-19 01:44:46 -05:00
Daniel Micay
a052be762d explain some differences from the previous project 2018-11-19 01:08:53 -05:00
Daniel Micay
a5ed64d01a explain slot counts tied to slab size classes 2018-11-19 00:29:18 -05:00
Daniel Micay
5b048a28c2 improve explanation of jemalloc size classes 2018-11-19 00:29:15 -05:00
Daniel Micay
ac99282773 remove duplicate word 2018-11-17 10:53:04 -05:00
Daniel Micay
54a0313d9b split out dependencies section 2018-11-16 18:41:27 -05:00
Daniel Micay
d208d093a2 add more of an introduction describing the project 2018-11-16 18:39:19 -05:00
Daniel Micay
2bb568b473 improve documentation about mapping count 2018-11-16 18:04:46 -05:00
Daniel Micay
8a38c4fb2a add initial documentation for integer options 2018-11-16 15:40:48 -05:00
Daniel Micay
f3623e1f2b finish migration away from config.h 2018-11-16 15:40:45 -05:00
Daniel Micay
315415acf2 clarify write-after-free detection feature 2018-11-16 03:26:07 -05:00
Daniel Micay
11c717a7b9 update progress on randomization 2018-11-05 18:06:54 -05:00
Daniel Micay
2d892e58ad per-slab canary values are good enough for now 2018-11-05 18:05:56 -05:00
Daniel Micay
3a488c9a27 add initial slab allocation quarantine 2018-11-05 16:43:08 -05:00
Daniel Micay
ca465f6b3e clarify scope of sized dealloc mismatch detection 2018-11-04 18:52:01 -05:00
Daniel Micay
1fed72a9c3 slab internal fragmentation is always the same 2018-11-04 03:59:54 -05:00
Daniel Micay
c12d6795de expand a bit on future config for slab cache size 2018-11-03 04:47:45 -04:00
Daniel Micay
d5b773b2bc clarify documentation about the 0 byte size class 2018-11-03 04:43:47 -04:00
Daniel Micay
f949698c7a note that MPK-based hardening is off by default 2018-11-03 03:15:42 -04:00
Daniel Micay
f2a7ccde75 add basic overview of part of the approach to MTE 2018-11-03 03:09:03 -04:00