Android Boot-time Readahead

Revision as of 15:25, 5 May 2011 by Tim Bird (Talk | contribs) (Results: add results)

Jump to: navigation, search

Here is information about Android Boot-Time Readahead

to do: need to post my programs, with source, my presentation from ABS, and some of my raw results


This is the presentation I gave at ABS 2011.



Bottom line results were an approximate 5% (1.5 seconds) improvement in boot time, using readahead on only a single portion of the boot sequence. A 9% improvement was expected, given the area of the boot sequence that was optimized. So, it didn't help as much as I'd hoped, but did help a little.

More testing is needed:

  • to determine why adjusting the I/O scheduling priority did not have the expected affect
  • to apply readahead to more part of the boot sequence
  • to test other methods to avoid interfering with foreground processing
    • like, manually halting and continuing readahead during the boot, and performing smaller reads


[need to post source for programs]


Mincore is a program I wrote to report the pages in the Linux page cache for requested files.


Logsync is a program to write a log message to both the kernel log buffer (printk), and the Android log buffer. On most systems, the timestamps are different between these two logging systems. This is useful to determine a unified ordering of events reported by these separate systems.


Tim's readahead - This is a test program to experiment with various readahead options. Besides actually performing readahead operations, it includes facilities for recording iowait before and after a readahead sequence, timing the duration of readahead operations, and changing things like the process scheduling priority, I/O scheduler, and I/O scheduling priority.