From 367e295c4be21da606b2be5b7248b2a7f5181ca9 Mon Sep 17 00:00:00 2001 From: hydrangea07 Date: Sun, 27 Aug 2023 08:55:11 +0800 Subject: [PATCH] init.rc: Tune F2FS and dirty writeout policy for modern devices In a previous commit bb0838b5114419b4f8ecff67c0b6fb728399c7b7, the gc_urgent_sleep_time for F2FS was aggressively set to 50ms to optimize GC. This change, however, led to performance regressions on most devices, particularly of those running in 4.19+ kernels. From our tests, the heightened CPU and I/O activity from this aggressive garbage collection setting is the likely cause. To address this, we're revising the gc_urgent_sleep_time parameter to strike a balance between aggressive GC and device performance, taking bb0838b5114419b4f8ecff67c0b6fb728399c7b7 goal into consideration. Furthermore, the dirty writeout policy has been aligned with the latest configurations used in Pixel devices, and cp_interval has been adjusted to surpass dirty_expire_centisecs for improved power efficiency during idle times. Test: booted partner device, monitor performance Change-Id: Ie4d0c870d734e915aaebcc53e64acdabac47b6dc Signed-off-by: minaripenguin --- rootdir/init.rc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rootdir/init.rc b/rootdir/init.rc index aff37741d..8a82077be 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -1190,10 +1190,12 @@ on boot # to avoid power consumption when system becomes mostly idle. Be careful # to make it too large, since it may bring userdata loss, if they # are not aware of using fsync()/sync() to prepare sudden power-cut. - write /dev/sys/fs/by-name/userdata/cp_interval 200 - write /dev/sys/fs/by-name/userdata/gc_urgent_sleep_time 50 + write /dev/sys/fs/by-name/userdata/cp_interval 6000 + write /dev/sys/fs/by-name/userdata/gc_urgent_sleep_time 200 write /dev/sys/fs/by-name/userdata/iostat_period_ms 1000 write /dev/sys/fs/by-name/userdata/iostat_enable 0 + write /proc/sys/vm/dirty_expire_centisecs 3000 + write /proc/sys/vm/dirty_background_ratio 10 # set readahead multiplier for POSIX_FADV_SEQUENTIAL files write /dev/sys/fs/by-name/userdata/seq_file_ra_mul 128