Overview
Explore a roundtable discussion on ION / dma-buf allocators and constraint solving featuring key Android developers and upstream community members. Delve into topics such as centralized vs device-specific allocators, userland device constraint discovery, and attach time in-kernel constraint solving. Learn about potential extensions to iommu/dma-api, convenience APIs, ION vs dmabuf comparisons, and internal API structures. Examine slow path fallbacks, control over user space, hot plug devices, and partitioning constraints. Investigate chunk heap types, page migration techniques, heap allocation strategies, and asymmetric memory considerations. Discover IOU heaps, their interfaces, and preferences, as well as system tuning approaches, dma mapping, permissions, and usage flags. Gain insights into the complexities of ION heaps and their implications for userspace development in this comprehensive 48-minute session from the Linux Plumbers Conference.
Syllabus
Intro
Constraint solving
Convenience API
ION vs dmabuf
ION internal API
Slow path fallback
Control over user space
Hot plug devices
Constraint solving problems
Partitioning constraints
Chunk heap
heap types
page migration
lowhanging fruit
heap allocation
heap drivers
heap id
struct device
not a constraints problem
large chunk sizes
page sizes
boundary mask
heap attributes
Order of heap
Asymmetric memory
IOU heaps
IOU interface
IOU preferences
Migration
System tuning
dma mapping
Permissions
Usage flags
ION heap
Userspace
Taught by
Linux Plumbers Conference