Commit Graph

138 Commits (ae2524bf8887beace8034a9207bcb5556acbacd9)

Author SHA1 Message Date
Daniel Micay 3d18fb8074 implement Android M_PURGE mallopt via malloc_trim 2019-04-07 03:35:26 -04:00
Daniel Micay 4f08e40fe5 move thread sealing implementation 2019-04-07 00:50:26 -04:00
Daniel Micay 55891357ff clean up the exported API section of the code 2019-04-07 00:36:53 -04:00
Daniel Micay 491ce6b0b1 no need to provide valloc and pvalloc on Android 2019-04-07 00:31:09 -04:00
Daniel Micay 1eed432b9a limit more glibc cruft to that environment 2019-04-07 00:30:05 -04:00
Daniel Micay 27a4c883ce extend stats with nmalloc and ndalloc 2019-04-06 23:19:03 -04:00
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 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 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 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 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 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 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 4dc3385bc0 fix calloc for nmemb == 0 and !ZERO_ON_FREE 2018-12-09 10:59:21 -05:00
Daniel Micay 830a7d338d make class_region_size configurable 2018-12-05 09:38:13 -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
Daniel Micay 7f781af929 explicitly include system malloc.h 2018-12-05 07:59:35 -05:00
Daniel Micay 79cf5cbeb4 disambiguate malloc.h 2018-12-05 07:59:35 -05:00