[source] base-files: increase vm.min_free_kbytes

LEDE Commits lede-commits at lists.infradead.org
Mon Aug 1 06:49:42 PDT 2016


nbd pushed a commit to source.git, branch master:
https://git.lede-project.org/?p=source.git;a=commitdiff;h=5c9cc7b7f8920944a413644e1c2ea23bfe655bcb

commit 5c9cc7b7f8920944a413644e1c2ea23bfe655bcb
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Mon Aug 1 14:52:13 2016 +0200

    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 at nbd.name>
---
 package/base-files/files/etc/init.d/sysctl | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/package/base-files/files/etc/init.d/sysctl b/package/base-files/files/etc/init.d/sysctl
index 2dfbaf7..a0daec0 100755
--- a/package/base-files/files/etc/init.d/sysctl
+++ b/package/base-files/files/etc/init.d/sysctl
@@ -2,7 +2,23 @@
 # Copyright (C) 2006 OpenWrt.org
 
 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() {
+	set_vm_min_free
 	for CONF in /etc/sysctl.conf /etc/sysctl.d/*.conf; do
 		[ -f "$CONF" ] && sysctl -p "$CONF" -e >&-
 	done



More information about the lede-commits mailing list