| #!/bin/sh /etc/rc.common |
| |
| START=90 |
| STOP=10 |
| |
| USE_PROCD=1 |
| |
| service_triggers() |
| { |
| procd_add_reload_trigger "irqbalance" |
| } |
| |
| start_service() { |
| local enabled |
| config_load 'irqbalance' |
| config_get_bool enabled irqbalance enabled 0 |
| [ "$enabled" -gt 0 ] || return 0 |
| |
| config_get deepestcache irqbalance deepestcache 2 |
| config_get interval irqbalance interval 10 |
| config_get banned_cpulist irqbalance banned_cpulist '' |
| config_get debug irqbalance debug 0 |
| |
| procd_open_instance "irqbalance" |
| if [ -n "$banned_cpulist" ]; then |
| procd_set_param env IRQBALANCE_BANNED_CPULIST="$banned_cpulist" |
| fi |
| |
| procd_add_jail_mount_rw /proc |
| procd_set_param command /usr/sbin/irqbalance |
| procd_append_param command -f |
| procd_append_param command "-c $deepestcache" |
| procd_append_param command "-t $interval" |
| |
| # add banned IRQs |
| handle_banirq_value() |
| { |
| procd_append_param command "-i $1" |
| } |
| config_list_foreach irqbalance banirq handle_banirq_value |
| |
| # debug |
| if [ "$debug" -gt 0 ]; then |
| procd_append_param command -d |
| procd_set_param stdout 1 |
| fi |
| procd_set_param stderr 1 |
| |
| procd_set_param respawn |
| procd_close_instance |
| } |