Conversation

It is in mainline. 100% of the mandatory features for Android including Binder and ashmem are there. It's just that ashmem isn't usually enabled on non-Android platforms. Android also doesn't actually allow applications to directly use the full API via SELinux restrictions.
2
1
It is actually a useful, well-designed API. It's just a replacement for the legacy /dev/shm API. The unpin/pin features are quite useful too. You could easily set it up so that Chromium/Firefox would use it. It just doesn't make sense that you can only do unpin/pin for ashmem.
2
4
For example, this is the GrapheneOS /proc/1/maps output on a debug build: gist.github.com/thestinger/28c The [anon:name] labelling is the downstream VMA naming feature. I find it useful enough that in a debug build of the OS hardened_malloc makes very good use of it.
2
Current feeling is that the slab allocation security properties are better due to having a dedicated region per size class. The large allocations aren't only in the same overall mmap region outside the massive reserved area for slabs, but they're also mixed with dlopen libs, etc.
1
1
Hard to balance these things. If you turn off all optional security features (slab allocation quarantines, write after free check and zero-on-free in particular) hardened_malloc is quite fast other than intentional lack of thread cache. Always trying to figure out better balance.
1