diff --git a/BoardConfig.mk b/BoardConfig.mk index a608dde..b438232 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -159,6 +159,7 @@ BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 +BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 ifeq ($(WITH_GMS),true) BOARD_PRODUCTIMAGE_PARTITION_RESERVED_SIZE := 104857600 diff --git a/device.mk b/device.mk index 34cb0be..8c171d4 100644 --- a/device.mk +++ b/device.mk @@ -428,6 +428,7 @@ PRODUCT_PACKAGES += \ init.qti.kernel.sh \ init.target.rc \ ueventd.qcom.rc \ + fstab.zram \ vendor_modprobe.sh PRODUCT_COPY_FILES += \ diff --git a/rootdir/Android.mk b/rootdir/Android.mk index 8dae2ba..350849b 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -137,3 +137,11 @@ LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := etc/ueventd.qcom.rc LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR) include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := fstab.zram +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/fstab.zram +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC) +include $(BUILD_PREBUILT) diff --git a/rootdir/bin/init.kernel.post_boot-blair.sh b/rootdir/bin/init.kernel.post_boot-blair.sh index 09d1f16..0fa0693 100755 --- a/rootdir/bin/init.kernel.post_boot-blair.sh +++ b/rootdir/bin/init.kernel.post_boot-blair.sh @@ -31,46 +31,6 @@ # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #============================================================================= -function configure_zram_parameters() { - MemTotalStr=`cat /proc/meminfo | grep MemTotal` - MemTotal=${MemTotalStr:16:8} - - # Zram disk - 75% for < 2GB devices . - # For >2GB devices, size = 50% of RAM size. Limit the size to 4GB. - - 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 [ -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 -} - function configure_read_ahead_kb_values() { MemTotalStr=`cat /proc/meminfo | grep MemTotal` MemTotal=${MemTotalStr:16:8} @@ -98,13 +58,9 @@ function configure_read_ahead_kb_values() { function configure_memory_parameters() { # Set Memory parameters. - # Set swappiness to 100 for all targets - echo 100 > /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 - configure_zram_parameters configure_read_ahead_kb_values #M17-T code for HQ-264248 by liuhelong at 2022/12/8 start @@ -249,4 +205,4 @@ setprop vendor.post_boot.parsed 1 # M17P_T code for HQ-290074 by zhouxinyi at 2023-03-27 start echo 0 > /proc/sys/vm/panic_on_oom -# M17P_T code for HQ-290074 by zhouxinyi at 2023-03-27 end \ No newline at end of file +# M17P_T code for HQ-290074 by zhouxinyi at 2023-03-27 end diff --git a/rootdir/bin/init.kernel.post_boot-holi.sh b/rootdir/bin/init.kernel.post_boot-holi.sh index b777048..1ee7511 100755 --- a/rootdir/bin/init.kernel.post_boot-holi.sh +++ b/rootdir/bin/init.kernel.post_boot-holi.sh @@ -31,46 +31,6 @@ # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #============================================================================= -function configure_zram_parameters() { - MemTotalStr=`cat /proc/meminfo | grep MemTotal` - MemTotal=${MemTotalStr:16:8} - - # Zram disk - 75% for < 2GB devices . - # For >2GB devices, size = 50% of RAM size. Limit the size to 4GB. - - 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 [ -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 -} - function configure_read_ahead_kb_values() { MemTotalStr=`cat /proc/meminfo | grep MemTotal` MemTotal=${MemTotalStr:16:8} @@ -98,13 +58,9 @@ function configure_read_ahead_kb_values() { function configure_memory_parameters() { # Set Memory parameters. - # Set swappiness to 100 for all targets - echo 100 > /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 - configure_zram_parameters configure_read_ahead_kb_values #M17-T code for HQ-264248 by liuhelong at 2022/12/8 start @@ -247,4 +203,4 @@ setprop vendor.post_boot.parsed 1 # M17P_T code for HQ-290074 by zhouxinyi at 2023-03-27 start echo 0 > /proc/sys/vm/panic_on_oom -# M17P_T code for HQ-290074 by zhouxinyi at 2023-03-27 end \ No newline at end of file +# M17P_T code for HQ-290074 by zhouxinyi at 2023-03-27 end diff --git a/rootdir/bin/init.qcom.post_boot.sh b/rootdir/bin/init.qcom.post_boot.sh index aeaa3c9..2689389 100755 --- a/rootdir/bin/init.qcom.post_boot.sh +++ b/rootdir/bin/init.qcom.post_boot.sh @@ -811,56 +811,6 @@ KernelVersionS=${KernelVersionStr:2:2} KernelVersionA=${KernelVersionStr:0:1} KernelVersionB=${KernelVersionS%.*} -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 -} - function configure_read_ahead_kb_values() { MemTotalStr=`cat /proc/meminfo | grep MemTotal` MemTotal=${MemTotalStr:16:8} diff --git a/rootdir/etc/fstab.zram b/rootdir/etc/fstab.zram new file mode 100644 index 0000000..2db7fdd --- /dev/null +++ b/rootdir/etc/fstab.zram @@ -0,0 +1,2 @@ +# +/dev/block/zram0 none swap defaults zramsize=4294967296 diff --git a/rootdir/etc/init.target.rc b/rootdir/etc/init.target.rc index c77962c..74d2bc7 100644 --- a/rootdir/etc/init.target.rc +++ b/rootdir/etc/init.target.rc @@ -286,3 +286,14 @@ on property:persist.sys.sm6375.dt2w=0 on property:persist.sys.sm6375.dt2w=1 exec /system/bin/sendevent /dev/input/event4 0 1 5 + +# Read only one page at a time + write /proc/sys/vm/page-cluster 0 + # Swap more aggressively + write /proc/sys/vm/swappiness 80 + # Set zRAM compression algorithm to LZ4 + write /sys/block/zram0/comp_algorithm lz4 + # Enable zRAM data deduplication feature + write /sys/block/zram0/use_dedup 1 + # Mount swap partitions specified in fstab + swapon_all /vendor/etc/fstab.zram