This directory contains AutoFDO profiles for Android common kernels. These profiles can be used to optimize kernel builds for specific architectures and kernel versions.
kernel.afdo is an AArch64 kernel profile collected on kernel version 6.12.18 ( SHA fbd1fef4d7283d210845f8609599efd53c0905a4, build server ID 13287522) using Pixel 6.
| Benchmark | Improvement |
|---|---|
| Boot time | 2.6% |
| Cold App launch time | 3.7% |
| Binder-rpc | 9.4% |
| Binder-addints | 31.9% |
| Hwbinder | 16.5% |
| Bionic (syscall_mmap) | 7.1% |
| Bionic (pthread) | 3.3% |
| Bionic (stdio) | 3.7% |
| Bionic (all) | 3.4% |
Benchmark results were tested on Pixel 6.
To test a kernel prebuilt with the AutoFDO profile, navigate to Android build server and download the kernel prebuilts under the kernel_aarch64_autofdo target.
A kernel profile is generated by running app crawling and app launching for top 100 apps from Google Play Store. While running, we collect ETM data for the kernel, which records executed instruction stream. Finally, we merge and convert ETM data to one AutoFDO profile.
simpleperf record -e cs-etm:k -a to record ETM data for the kernel.