tzram - arm-sdk - os build toolkit for various embedded devices
HTML git clone https://git.parazyd.org/arm-sdk
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
tzram (1136B)
---
1 #!/bin/sh
2 ### BEGIN INIT INFO
3 # Provides: zram
4 # Required-Start: $local_fs
5 # Required-Stop: $local_fs
6 # Default-Start: S
7 # Default-Stop: 0 1 6
8 # Short-Description: Use compressed RAM as in-memory swap
9 # Description: Use compressed RAM as in-memory swap
10 ### END INIT INFO
11
12 # Author: Antonio Galea <antonio.galea@gmail.com>
13 # Thanks to Przemysław Tomczyk for suggesting swapoff parallelization
14
15 FRACTION=75
16
17 MEMORY=`perl -ne'/^MemTotal:\s+(\d+)/ && print $1*1024;' < /proc/meminfo`
18 CPUS=`grep -c processor /proc/cpuinfo`
19 SIZE=$(( MEMORY * FRACTION / 100 / CPUS ))
20
21 case "$1" in
22 "start")
23 param=`modinfo zram|grep num_devices|cut -f2 -d:|tr -d ' '`
24 modprobe zram $param=$CPUS
25 for n in `seq $CPUS`; do
26 i=$((n - 1))
27 echo $SIZE > /sys/block/zram$i/disksize
28 mkswap /dev/zram$i
29 swapon /dev/zram$i -p 10
30 done
31 ;;
32 "stop")
33 for n in `seq $CPUS`; do
34 i=$((n - 1))
35 swapoff /dev/zram$i && echo "disabled disk $n of $CPUS" &
36 done
37 wait
38 sleep .5
39 modprobe -r zram
40 ;;
41 *)
42 echo "Usage: `basename $0` (start | stop)"
43 exit 1
44 ;;
45 esac