| # Reads data from disk in advance and populates page cache | |
| # to speed up subsequent disk access. | |
| # | |
| # Record: | |
| # start by `start prefetch_record` at appropriate timing. | |
| # stop by setting `prefetch_boot.record_stop` to 1. | |
| # set --duration to only capture for a certain duration instead. | |
| # | |
| # Replay: | |
| # start by `start prefetch_replay` at appropriate timing. | |
| # it will depend on several files generated from record. | |
| # | |
| # replay is I/O intensive. make sure you pick appropriate | |
| # timing to run each, so that you can maximize the page cache | |
| # hit for subsequent disk access. | |
| # | |
| # Example: | |
| # on early-init && property:ro.prefetch_boot.enabled=true | |
| # start prefetch_replay | |
| # | |
| # on init && property:ro.prefetch_boot.enabled=true | |
| # start prefetch_record | |
| # | |
| # on property:sys.boot_completed=1 && property:ro.prefetch_boot.enabled=true | |
| # setprop prefetch_boot.record_stop 1 | |
| service prefetch_record /system/bin/prefetch record --duration ${ro.prefetch_boot.duration_s:-0} | |
| user root | |
| group root system | |
| disabled | |
| oneshot | |
| service prefetch_replay /system/bin/prefetch replay --io-depth ${ro.prefetch_boot.io_depth:-2} --max-fds ${ro.prefetch_boot.max_fds:-1024} | |
| user root | |
| group root system | |
| disabled | |
| oneshot |