 5c9cc7b7f8
			
		
	
	5c9cc7b7f8
	
	
	
		
			
			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>
		
			
				
	
	
		
			26 lines
		
	
	
		
			492 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			492 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh /etc/rc.common
 | |
| # 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
 | |
| }
 |