From 1a99a64259f7ee9e4e79ad83b4a3b42bfff039f2 Mon Sep 17 00:00:00 2001 From: Pranav Vashi Date: Mon, 3 Jun 2024 13:52:15 +0530 Subject: [PATCH] sm6150-common: Setup zram with post-boot script * This way zram size can be optimized. Change-Id: Ida4fca8aab88ab5af3dcba166e98cf722bab6614 Signed-off-by: Pranav Vashi Signed-off-by: therealmharc --- rootdir/bin/init.qcom.post_boot.sh | 48 ++++++++++++++++++++++++++++++ rootdir/etc/fstab.zram | 4 --- rootdir/etc/init.target.rc | 12 -------- sm6150.mk | 3 +- 4 files changed, 49 insertions(+), 18 deletions(-) delete mode 100644 rootdir/etc/fstab.zram diff --git a/rootdir/bin/init.qcom.post_boot.sh b/rootdir/bin/init.qcom.post_boot.sh index 4d97382..e689a6e 100644 --- a/rootdir/bin/init.qcom.post_boot.sh +++ b/rootdir/bin/init.qcom.post_boot.sh @@ -254,6 +254,54 @@ case "$soc_id" in ;; esac +function configure_zram_parameters() { + MemTotalStr=`cat /proc/meminfo | grep MemTotal` + MemTotal=${MemTotalStr:16:8} + + let RamSizeGB="( $MemTotal / 1048576 ) + 1" + let zRamSizeMB="( $RamSizeGB * 1024 ) / 2" + diskSizeUnit=M + + # use MB avoid 32 bit overflow + if [ $zRamSizeMB -gt 4096 ]; then + let zRamSizeMB=4096 + fi + + echo lz4 > /sys/block/zram0/comp_algorithm + + if [ -f /sys/block/zram0/disksize ]; then + if [ -f /sys/block/zram0/use_dedup ]; then + echo 1 > /sys/block/zram0/use_dedup + fi + if [ $MemTotal -le 524288 ]; then + echo 402653184 > /sys/block/zram0/disksize + elif [ $MemTotal -le 1048576 ]; then + echo 805306368 > /sys/block/zram0/disksize + else + zramDiskSize=$zRamSizeMB$diskSizeUnit + echo $zramDiskSize > /sys/block/zram0/disksize + fi + + # ZRAM may use more memory than it saves if SLAB_STORE_USER + # debug option is enabled. + if [ -e /sys/kernel/slab/zs_handle ]; then + echo 0 > /sys/kernel/slab/zs_handle/store_user + fi + if [ -e /sys/kernel/slab/zspage ]; then + echo 0 > /sys/kernel/slab/zspage/store_user + fi + + mkswap /dev/block/zram0 + swapon /dev/block/zram0 -p 32758 + 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 + # Enable PowerHAL hint processing setprop vendor.powerhal.init 1 diff --git a/rootdir/etc/fstab.zram b/rootdir/etc/fstab.zram deleted file mode 100644 index 5e39820..0000000 --- a/rootdir/etc/fstab.zram +++ /dev/null @@ -1,4 +0,0 @@ -# Android fstab file. - -# -/dev/block/zram0 none swap defaults zramsize=2147483648 diff --git a/rootdir/etc/init.target.rc b/rootdir/etc/init.target.rc index 0e37bec..0573426 100644 --- a/rootdir/etc/init.target.rc +++ b/rootdir/etc/init.target.rc @@ -57,10 +57,6 @@ on init write /sys/block/sde/queue/read_ahead_kb 2048 write /sys/block/sde/queue/nr_requests 256 - # ZRAM setup - write /sys/block/zram0/comp_algorithm lz4 - write /proc/sys/vm/page-cluster 0 - on fs mount_all --early @@ -132,14 +128,6 @@ on boot write /sys/block/sda/queue/wbt_lat_usec 75000 on property:sys.boot_completed=1 - # Set allocstall_threshold to 0 - # Set swappiness to 60 - write /sys/module/vmpressure/parameters/allocstall_threshold 0 - write /proc/sys/vm/swappiness 60 - - # Enable ZRAM on boot_complete - swapon_all /vendor/etc/fstab.zram - # Runtime fs tuning write /sys/block/sda/queue/read_ahead_kb 128 write /sys/block/sda/queue/nr_requests 128 diff --git a/sm6150.mk b/sm6150.mk index 7ebd28e..ebb255d 100644 --- a/sm6150.mk +++ b/sm6150.mk @@ -151,8 +151,7 @@ PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/rootdir/etc/fstab.default:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.default \ $(LOCAL_PATH)/rootdir/etc/fstab.default:$(TARGET_COPY_OUT_RAMDISK)/fstab.default \ $(LOCAL_PATH)/rootdir/etc/fstab.emmc:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.emmc \ - $(LOCAL_PATH)/rootdir/etc/fstab.emmc:$(TARGET_COPY_OUT_RAMDISK)/fstab.emmc \ - $(LOCAL_PATH)/rootdir/etc/fstab.zram:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.zram + $(LOCAL_PATH)/rootdir/etc/fstab.emmc:$(TARGET_COPY_OUT_RAMDISK)/fstab.emmc # GPS PRODUCT_PACKAGES += \