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
#!/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 }