~/talk

CMA allocations fail due to pinned MOVABLE pages

Talkat Linux Plumbers Conference 2025 · 2025-12-11..12-13
links:none on file
links:none on file
slides:none on file

Android reserves ~20% RAM as CMA and large O_DIRECT workloads (OTA reads) create a cascade of short-term pinned MIGRATE_MOVABLE pages that exhaust MIGRATE_CMA pools, causing big CMA allocations (camera 256 MiB example) to fail for seconds. Patching alloc paths to use gfpma improves utilization but introduces other problems and an RFC was rejected; current mitigations wait (100 ms × 5) and a debugfs allocator is built to reproduce and test fixes. Suggested fixes: pause allocators to let page migration finish, ban O_DIRECT from CMA, or add a non-fallback migrate type.

AI-written summary · about

  1. 0:00Introduction to CMA
  2. 1:02Problem with CMA allocations
  3. 2:48Concrete Android example
  4. 4:14CMA utilization issues
  5. 5:43Current workarounds
  6. 6:26Potential solutions
  7. 7:55Discussion on O_DIRECT
  8. 9:40Debugging challenges
  9. 11:46Q&A and summary
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.