blob: ff15d82bf4eefe14cc2a2ad6474068b305cbcdb2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#!/bin/sh
# Simple low-power-mode script
# Based on work from:
# Bill Nottingham <notting@redhat.com>
# Peter Jones <pjones@redhat.com>
# David Zeuthen <davidz@redhat.com>
# Richard Hughes <richard@hughsie.com>
#
# Values are taken from the laptop-tools package
# Bart Samwel <bart@samwel.tk>
if [ "$1" == "true" ] ; then
echo "SetLowPower ON"
DISK_IDLE_SECS=2
DIRTY_WRITEBACK=30
DIRTY_EXPIRE=30
DIRTY_RATIO=60
DIRTY_BACKGROUND_RATIO=1
elif [ "$1" == "false" ] ; then
echo "SetLowPower OFF"
DISK_IDLE_SECS=0
DIRTY_WRITEBACK=500
DIRTY_EXPIRE=3000
DIRTY_RATIO=40
DIRTY_BACKGROUND_RATIO=10
else
echo "Argument needs to be true or false"
exit 1
fi
if [ ! -w "/proc/sys/vm/" ] ; then
# Use the raw kernel sysfs interface
echo "You do not have write access to /proc/sys/vm/"
exit 1
fi
# Seconds laptop mode has to to wait after the disk
# goes idle before doing a sync.
echo $DISK_IDLE_SECS > /proc/sys/vm/laptop_mode
# Set dirty page values
echo $DIRTY_WRITEBACK > /proc/sys/vm/dirty_writeback_centisecs
echo $DIRTY_EXPIRE > /proc/sys/vm/dirty_expire_centisecs
# Dirty synchronous ratio. At this percentage of dirty
# pages the process which calls write() does its own writeback.
echo $DIRTY_RATIO > /proc/sys/vm/dirty_ratio
# Allowed dirty background ratio, in percent.
# Once DIRTY_RATIO has been exceeded, the kernel will wake pdflush
# which will then reduce the amount of dirty memory to
# dirty_background_ratio. Set this nice and low, so once some
# writeout has commenced, we do a lot of it.
echo $DIRTY_BACKGROUND_RATIO > /proc/sys/vm/dirty_background_ratio
|