sm6150-common: rootdir: Set up read ahead values properly

* QCOM sets up for dm-0, dm-1 and dm-2 on boot via init.qcom.rc and for sda* via post boot script.
* Also set watermark_scale_factor and watermark_boost_factor basis QCOM recommendation.
* Reduce swappiness to 60.
* Modify configure_read_ahead_kb_values to set nr_requests value.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: therealmharc <therealmharc@gmail.com>
This commit is contained in:
Pranav Vashi
2025-03-01 16:18:28 +05:30
committed by therealmharc
parent e377ac3bc7
commit c4338f2280
3 changed files with 66 additions and 26 deletions

View File

@@ -254,6 +254,35 @@ case "$soc_id" in
;;
esac
function configure_read_ahead_kb_values() {
MemTotalStr=`cat /proc/meminfo | grep MemTotal`
MemTotal=${MemTotalStr:16:8}
dmpts=$(ls /sys/block/*/queue | grep -e dm -e mmc)
# Set 128 for <= 3GB &
# set 512 for >= 4GB targets.
if [ $MemTotal -le 3145728 ]; then
echo 128 > /sys/block/mmcblk0/bdi/read_ahead_kb
echo 128 > /sys/block/mmcblk0/bdi/nr_requests
echo 128 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb
echo 128 > /sys/block/mmcblk0rpmb/bdi/nr_requests
for dm in $dmpts; do
echo 128 > $dm/read_ahead_kb
echo 128 > $dm/nr_requests
done
else
echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb
echo 256 > /sys/block/mmcblk0/bdi/nr_requests
echo 512 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb
echo 256 > /sys/block/mmcblk0rpmb/bdi/nr_requests
for dm in $dmpts; do
echo 512 > $dm/read_ahead_kb
echo 256 > $dm/nr_requests
done
fi
}
function configure_zram_parameters() {
MemTotalStr=`cat /proc/meminfo | grep MemTotal`
MemTotal=${MemTotalStr:16:8}
@@ -296,11 +325,34 @@ function configure_zram_parameters() {
fi
}
# Enable ZRAM
configure_zram_parameters
echo 0 > /proc/sys/vm/page-cluster
echo 0 > /sys/module/vmpressure/parameters/allocstall_threshold
echo 100 > /proc/sys/vm/swappiness
function configure_memory_parameters() {
# Swap only 1 page at a time
echo 0 > /proc/sys/vm/page-cluster
# Set allocstall_threshold to 0 for all targets.
echo 0 > /sys/module/vmpressure/parameters/allocstall_threshold
# Set swappiness to 60 for all targets
echo 60 > /proc/sys/vm/swappiness
# Disable wsf for all targets beacause we are using efk.
# wsf Range : 1..1000 So set to bare minimum value 1.
echo 1 > /proc/sys/vm/watermark_scale_factor
# Disable the feature of watermark boost for 8G and below device
MemTotalStr=`cat /proc/meminfo | grep MemTotal`
MemTotal=${MemTotalStr:16:8}
if [ $MemTotal -le 8388608 ]; then
echo 0 > /proc/sys/vm/watermark_boost_factor
fi
# Enable ZRAM
configure_zram_parameters
configure_read_ahead_kb_values
}
configure_memory_parameters
# Enable PowerHAL hint processing
setprop vendor.powerhal.init 1

View File

@@ -213,6 +213,11 @@ on post-fs-data
chown radio radio /data/vendor/radio/qcril_prebuilt.db
chmod 0660 /data/vendor/radio/qcril_prebuilt.db
# set aggressive read ahead for dm-0 and dm-1 during boot up
write /sys/block/dm-0/queue/read_ahead_kb 2048
write /sys/block/dm-1/queue/read_ahead_kb 2048
write /sys/block/dm-2/queue/read_ahead_kb 2048
# Create vpp directory
mkdir /data/vendor/vpp 0770 media media
@@ -225,6 +230,10 @@ on property:sys.boot_completed=1
# Enable UFS clock scaling back
write /sys/bus/platform/devices/1d84000.ufshc/clkscale_enable 1
#Reset read ahead for dm-0 and dm-1 to 512kb
write /sys/block/dm-0/queue/read_ahead_kb 512
write /sys/block/dm-1/queue/read_ahead_kb 512
chown media audio /sys/kernel/wdsp0/boot
start vendor.qcom-post-boot

View File

@@ -45,18 +45,6 @@ on init
write /sys/module/qpnp_rtc/parameters/poweron_alarm 1
# Boot time fs tuning
write /sys/block/sda/queue/iostats 0
write /sys/block/sda/queue/scheduler cfq
write /sys/block/sda/queue/iosched/slice_idle 0
write /sys/block/sda/queue/read_ahead_kb 2048
write /sys/block/sda/queue/nr_requests 256
write /sys/block/sde/queue/iostats 0
write /sys/block/sde/queue/scheduler cfq
write /sys/block/sde/queue/iosched/slice_idle 0
write /sys/block/sde/queue/read_ahead_kb 2048
write /sys/block/sde/queue/nr_requests 256
on fs
mount_all --early
@@ -127,15 +115,6 @@ on boot
write /sys/block/sda/queue/wbt_lat_usec 75000
on property:sys.boot_completed=1
# Runtime fs tuning
write /sys/block/sda/queue/read_ahead_kb 128
write /sys/block/sda/queue/nr_requests 128
write /sys/block/sda/queue/iostats 1
write /sys/block/sde/queue/read_ahead_kb 128
write /sys/block/sde/queue/nr_requests 128
write /sys/block/sde/queue/iostats 1
service vendor.pd_mapper /vendor/bin/pd-mapper
class core
user system