Reducing Android Boot Times: Evaluating Proactive File Prefetching
summary
A Rust user-space daemon implements a two-phase "Record and Replay" prefetch that records page insertions via the mm_file_map_add_to_page_cache tracepoint and replays them early in boot; Perfetto traces show disk IO for a 315 ms system_server slice (~215 ms) drops to near zero and overall boot reductions of ~6–8% on watches/TVs (ChromeOS saw ~20%). It reads ~1–1.2 GB from read‑only partitions, struggles with pages already in cache, eviction under 2 GB RAM, and OTA/record timing; work on kernel memory-access tracepoints and AVF/Debian integration is ongoing.
AI-written summary · about
chapters (11)
- 0:00Introduction to prefetch project
- 1:03How prefetch works technically
- 3:08Android boot phases and IO patterns
- 6:18Key challenges in adoption
- 10:14Potential solutions explored
- 16:35Memory pressure and PSI metrics
- 19:05Recording and replay phases on devices
- 21:56OTAA updates and offline recording
- 22:40Noise and redundant page cache entries
- 23:44Virtualization and future directions
- 24:28Q&A and closing remarks
related talks
21mAccelerating Boot Time: Lessons from a New Platform
29mPerformance Optimization on Xen-based Android Device
24mImproving the Bootup Speed of AOSP
48mUnified Boot Time Measurement: A Precise, Scalable Framework for Multi-Processor Systems
42mBooting Automotive ECUs Really Fast with Modern Security Features
26mBootloops & Coffee: The Daily Grind of an AOSP Developer
38mImproving Embedded Systems Boot Time by Hibernation
08h 39mLivestream | Day 2, theater 2
