Commit Graph

471 Commits

Author SHA1 Message Date
Daniel Micay
e94fe50a0d include zero byte size class in stats
The allocations don't consume any actual memory, but it does still use
up the virtual memory assigned to the size class and requires metadata.
2019-04-06 22:43:56 -04:00
Daniel Micay
712748aaa8 add implementation of Android mallinfo extensions
These are used internally by Bionic to implement malloc_info.
2019-04-06 22:39:01 -04:00
Daniel Micay
0f107cd2a3 only provide malloc_info stub for glibc
This has a proper implementation in Bionic outside of the malloc
implementation via the extended mallinfo API.
2019-04-06 22:01:12 -04:00
Daniel Micay
350d0e5fd2 add real mallinfo implementation for Android
Android Q uses the mallinfo implementation in the ART GC:

c220f98180
1575267302
2019-04-06 20:54:26 -04:00
Daniel Micay
7acebaa837 overhaul glibc compatibility workarounds 2019-03-26 01:45:57 -04:00
Daniel Micay
df9650fe64 conditionally include threads.h 2019-03-26 01:28:27 -04:00
Daniel Micay
98deb9de52 relabel malloc read-only after init data 2019-03-25 20:34:10 -04:00
Daniel Micay
fc8f2c3b60 move pthread_atfork wrapper to util header 2019-03-25 17:16:52 -04:00
Daniel Micay
b5187a0aff only use __register_atfork hack for old glibc 2019-03-25 17:16:22 -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
55769496dc move hash_page to pages.h 2019-03-25 14:54:22 -04:00
Daniel Micay
13de480bde rename quarantine bitmap field for clarity 2019-03-24 20:24:40 -04:00
Daniel Micay
3d142eb4c2 relabel large allocation guards when shrinking 2019-03-23 23:01:12 -04:00
Daniel Micay
64dfd23f7b relabel purged slabs 2019-03-23 22:59:59 -04:00
Daniel Micay
178ec6e3f9 relabel quarantined large allocation regions 2019-03-23 22:57:19 -04:00
Daniel Micay
6e67106882 label malloc slab region gaps 2019-03-23 22:54:56 -04:00
Daniel Micay
1d62075291 label allocate_aligned_pages mappings 2019-03-23 22:29:04 -04:00
Daniel Micay
c8b948e202 enable C++17 support when available 2019-03-23 19:46:54 -04:00
Daniel Micay
a0ee5f445b remove redundant extern "C" block 2019-03-23 13:41:12 -04:00
Daniel Micay
45337ebe07 label allocate_pages mappings 2019-03-22 23:17:38 -04:00
Daniel Micay
65311a5df2 relabel region table mapping 2019-03-22 21:59:44 -04:00
Daniel Micay
e4120913d6 only enable LABEL_MEMORY in debug builds 2019-03-20 14:25:09 -04:00
Daniel Micay
87acbcdf23 replace C++17 aligned allocation functions 2019-03-20 13:19:13 -04:00
Daniel Micay
ddd616aa0b add documentation on system calls 2019-03-20 11:59:58 -04:00
Daniel Micay
4a000d96e2 pkey state is now preserved on fork for Linux 5.0+
This patch is going to be backported to stable kernels, so the check
could be expanded to allow recent enough stable kernel branches.
2019-03-20 11:05:31 -04:00
Daniel Micay
c9df70d934 add support for labelling memory regions 2019-02-13 13:34:33 -05: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
9398805fd8 reference paper rather than fastrand for Python 2019-01-10 17:12:53 -05:00
Daniel Micay
2d7882ec0e remove redundant unseal / seal metadata 2019-01-08 17:01:56 -05:00
Daniel Micay
fa17f70a73 add more configuration sanity checks 2019-01-06 00:52:25 -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
8a474b647c enable both forms of slab quarantines by default 2019-01-02 14:59:19 -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
bc2cb5c828 fix builds with both random and queue quarantine 2019-01-02 13:23:49 -05:00
Daniel Micay
5d3b299209 support random quarantine sizes other than 0 or 16 2019-01-02 13:04:40 -05:00
Daniel Micay
418cb1609c add RLIMIT_AS alternative to wishlist 2018-12-09 12:48:07 -05:00
Daniel Micay
2d88b90282 reorder Makefile CONFIG variables 2018-12-09 11:03:12 -05:00
Daniel Micay
4dc3385bc0 fix calloc for nmemb == 0 and !ZERO_ON_FREE 2018-12-09 10:59:21 -05:00
Daniel Micay
8a863ae847 use conlyflags in Android.bp when appropriate 2018-12-06 12:04:42 -05:00
Daniel Micay
830a7d338d make class_region_size configurable 2018-12-05 09:38:13 -05:00
Daniel Micay
8b0450555f add initial Android build system support 2018-12-05 07:59:35 -05:00
Daniel Micay
a1e0d97864 add __BEGIN_DECLS / __END_DECLS 2018-12-05 07:59:35 -05:00
Daniel Micay
ced3b0e070 support Android malloc_usable_size 2018-12-05 07:59:35 -05:00
Daniel Micay
7917966eca avoid unnecessary GNU pointer arithmetic extension 2018-12-05 07:59:35 -05:00