base-files: increase vm.min_free_kbytes

Network drivers typically allocate memory in atomic context. For that to
be reliable, there needs to be enough free memory. Set the value
heuristically based on the total amount of system RAM.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Felix Fietkau 2016-08-01 14:52:13 +02:00
parent df3a2ca1a9
commit 5c9cc7b7f8

View file

@ -2,7 +2,23 @@
# Copyright (C) 2006 OpenWrt.org # Copyright (C) 2006 OpenWrt.org
START=11 START=11
set_vm_min_free() {
mem="$(grep MemTotal /proc/meminfo | awk '{print $2}')"
if [ "$mem" -gt 65536 ]; then # 128M
val=16384
elif [ "$mem" -gt 32768 ]; then # 64M
val=8192
elif [ "$mem" -gt 16384 ]; then # 32M
val=4096
else
return
fi
sysctl -qw vm.min_free_kbytes="$val"
}
start() { start() {
set_vm_min_free
for CONF in /etc/sysctl.conf /etc/sysctl.d/*.conf; do for CONF in /etc/sysctl.conf /etc/sysctl.d/*.conf; do
[ -f "$CONF" ] && sysctl -p "$CONF" -e >&- [ -f "$CONF" ] && sysctl -p "$CONF" -e >&-
done done