#!/system/bin/sh
#
# General memory settings
#
# Author:
#	Michelasso @ androidiani.com
#	Miche1asso @ xda
#
# Version 1.02

log -p i -t setvm "Starting setvm"

# Enable/disable Linux Swap
#swapon /dev/block/mmcblk0p3
swapoff /dev/block/mmcblk0p3


# Set Swappiness
echo 0 > /proc/sys/vm/swappiness

# tweak memory values
echo 4096 > /proc/sys/vm/min_free_kbytes
#
echo 5 > /proc/sys/vm/dirty_ratio
echo 5 > /proc/sys/vm/dirty_background_ratio
echo 5 > /proc/sys/vm/vfs_cache_pressure
#
echo 400 > vm.dirty_expire_centisecs
echo 800 > vm.dirty_writeback_centisecs
#
echo 0 > /proc/sys/vm/overcommit_memory
echo 100 > /proc/sys/vm/overcommit_ratio
#
# It seems that if enabled it may kill important background processes
echo 0 > /proc/sys/vm/oom_kill_allocating_task

# Set memory manager minfree (in 4KB pages)
echo "1024,2048,3072,20000,22000,23000" > /sys/module/lowmemorykiller/parameters/minfree

# Reduce the numer of file handles and release them earlier
echo 16384 > /proc/sys/fs/file-max
echo 16384 > /proc/sys/fs/nr_open
echo 10 > /proc/sys/fs/lease-break-time

# Not really memory tweaks, but..
sysctl -w kernel.hung_task_timeout_secs=1
sysctl -w kernel.msgmni=512
sysctl -w kernel.threads-max=4096

log -p i -t setvm "setvm ended"

