blob: 984dcd1969b76d671615ef93480cbd1b2fe91a41 (
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
|
#!/bin/sh
num_cpus=$(grep -c processor /proc/cpuinfo)
[ "$num_cpus" != 0 ] || num_cpus=1
last_cpu=$((num_cpus - 1))
mem_by_cpu=$(awk -v cpus=$num_cpus '/MemTotal/ { print (($2 * 1024) / cpus) }' /proc/meminfo)
if [ "$1" = "--load" ] ; then
echo zram: Trying to load kernel module.
# Linux 3.2 workaround - value name changed :o.
# modprobe -q zram zram_num_devices=$num_cpus
# Linux < 3.2.
modprobe -q zram num_devices=$num_cpus
echo zram: Enable in-memory compressed swap of $mem_by_cpu bytes.
for i in $(seq 0 $last_cpu); do
echo $mem_by_cpu > /sys/block/zram$i/disksize
mkswap /dev/zram$i
swapon -p 100 /dev/zram$i
done
fi
if [ "$1" = "--unload" ] ; then
echo zram: Disable in-memory compressed swap.
for i in $(seq 0 $last_cpu); do
grep -q "/dev/zram$i" /proc/swaps && swapoff /dev/zram$i
done
sleep 1
echo zram: Unload kernel module.
rmmod zram
fi
|