From b39eb14009eff20ce42da043d1e58f7fd3aedfaf Mon Sep 17 00:00:00 2001 From: ivanmeler Date: Fri, 15 Mar 2024 18:29:27 +0000 Subject: [PATCH] Improve memory management add swap inherite common 4gb ram dalvik config --- rootdir/bin/init.qcom.post_boot.sh | 59 +++--------------------------- rootdir/etc/fstab.qcom | 3 ++ rootdir/etc/init.qcom.rc | 4 ++ 3 files changed, 13 insertions(+), 53 deletions(-) diff --git a/rootdir/bin/init.qcom.post_boot.sh b/rootdir/bin/init.qcom.post_boot.sh index 55a3194..0996638 100755 --- a/rootdir/bin/init.qcom.post_boot.sh +++ b/rootdir/bin/init.qcom.post_boot.sh @@ -27,57 +27,6 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -# Function from LineageOS/android_device_oneplus_oneplus3 -function configure_zram_parameters() { - MemTotalStr=`cat /proc/meminfo | grep MemTotal` - MemTotal=${MemTotalStr:16:8} - - low_ram=`getprop ro.config.low_ram` - - # Zram disk - 75% for Go devices. - # For 512MB Go device, size = 384MB, set same for Non-Go. - # For 1GB Go device, size = 768MB, set same for Non-Go. - # For 2GB Go device, size = 1536MB, set same for Non-Go. - # For >2GB Non-Go devices, size = 50% of RAM size. Limit the size to 4GB. - # And enable lz4 zram compression for Go targets. - - let RamSizeGB="( $MemTotal / 1048576 ) + 1" - diskSizeUnit=M - if [ $RamSizeGB -le 2 ]; then - let zRamSizeMB="( $RamSizeGB * 1024 ) * 3 / 4" - else - let zRamSizeMB="( $RamSizeGB * 1024 ) / 2" - fi - - # use MB avoid 32 bit overflow - if [ $zRamSizeMB -gt 4096 ]; then - let zRamSizeMB=4096 - fi - - if [ "$low_ram" == "true" ]; then - echo lz4 > /sys/block/zram0/comp_algorithm - fi - - if [ -f /sys/block/zram0/disksize ]; then - if [ -f /sys/block/zram0/use_dedup ]; then - echo 1 > /sys/block/zram0/use_dedup - fi - echo "$zRamSizeMB""$diskSizeUnit" > /sys/block/zram0/disksize - - # 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 -} - # Let kernel know our image version/variant/crm_version if [ -f /sys/devices/soc0/select_image ]; then image_version="10:" @@ -106,5 +55,9 @@ case "$console_config" in ;; esac -# Enable ZRAM -configure_zram_parameters +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 diff --git a/rootdir/etc/fstab.qcom b/rootdir/etc/fstab.qcom index 8d7cb73..908d80e 100644 --- a/rootdir/etc/fstab.qcom +++ b/rootdir/etc/fstab.qcom @@ -22,3 +22,6 @@ # SDCard /devices/soc/74a4900.sdhci/mmc_host/mmc* auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata /devices/soc/6a00000.ssusb/6a00000.dwc3/xhci-hcd.0.auto/usb* auto auto defaults voldmanaged=usb:auto + +# ZRAM +/dev/block/zram0 none swap defaults zramsize=60% diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc index 84bef7e..ac43c18 100644 --- a/rootdir/etc/init.qcom.rc +++ b/rootdir/etc/init.qcom.rc @@ -52,6 +52,10 @@ on init write /sys/fs/cgroup/memory/bg/memory.move_charge_at_immigrate 1 chown root system /sys/fs/cgroup/memory/bg/tasks chmod 0660 /sys/fs/cgroup/memory/bg/tasks + write /proc/sys/vm/swappiness 100 + write /sys/block/zram0/comp_algorithm lz4 + write /sys/module/zswap/parameters/enabled 1 + # Add preload partition. mkdir /preload 0771 system system