2c4248b382778cf17d9e7c66b62688bcd6df4d6c
[feed/packages.git] / utils / irqbalance / files / irqbalance.init
1 #!/bin/sh /etc/rc.common
2
3 START=90
4 STOP=10
5
6 USE_PROCD=1
7
8 service_triggers()
9 {
10 procd_add_reload_trigger "irqbalance"
11 }
12
13 start_service() {
14 local enabled
15 config_load 'irqbalance'
16 config_get_bool enabled irqbalance enabled 0
17 [ "$enabled" -gt 0 ] || return 0
18
19 # 2 is the default
20 config_get deepestcache irqbalance deepestcache 2
21
22 # 10 is the default
23 config_get interval irqbalance interval 10
24
25 # empty is the default
26 config_get banned_cpulist irqbalance banned_cpulist ''
27
28 # A list of IRQ's to ignore
29 banirq=""
30 handle_banirq_value()
31 {
32 banirq="$banirq -i $1"
33 }
34 config_list_foreach irqbalance banirq handle_banirq_value
35
36 procd_open_instance "irqbalance"
37 if [ -n "$banned_cpulist" ]; then
38 procd_set_param env IRQBALANCE_BANNED_CPULIST="$banned_cpulist"
39 fi
40 procd_set_param command /usr/sbin/irqbalance -f -c "$deepestcache" -t "$interval" "$banirq"
41 procd_set_param respawn
42 procd_close_instance
43 }