From 982c389732d2d0589d15cfc1835e289275140c8c Mon Sep 17 00:00:00 2001 From: Hannu Nyman Date: Sun, 2 Jun 2019 12:29:17 +0300 Subject: [PATCH] irqbalance: add support for uci config Add support for uci config file. Only a global 'enabled" switch has been implemented so far. * Default config disables irqbalance initially, so that there is no change with the previous behaviour (and the possibly existing separate launch scripts in people's builds). Config file and init script can be later extended for irqbalance options like the oneshot mode or the evaluation interval (Also change the init file to use tabs) Signed-off-by: Hannu Nyman --- utils/irqbalance/Makefile | 4 +++- utils/irqbalance/files/irqbalance.config | 3 +++ utils/irqbalance/files/irqbalance.init | 13 +++++++++---- 3 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 utils/irqbalance/files/irqbalance.config diff --git a/utils/irqbalance/Makefile b/utils/irqbalance/Makefile index 59536d04d..5523a19b2 100644 --- a/utils/irqbalance/Makefile +++ b/utils/irqbalance/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=irqbalance PKG_VERSION:=1.2.0 -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_PROTO:=git @@ -49,6 +49,8 @@ define Package/irqbalance/install $(INSTALL_BIN) $(PKG_BUILD_DIR)/irqbalance $(1)/usr/sbin/ $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_BIN) ./files/irqbalance.init $(1)/etc/init.d/irqbalance + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_DATA) ./files/irqbalance.config $(1)/etc/config/irqbalance endef $(eval $(call BuildPackage,irqbalance)) diff --git a/utils/irqbalance/files/irqbalance.config b/utils/irqbalance/files/irqbalance.config new file mode 100644 index 000000000..5f074b00f --- /dev/null +++ b/utils/irqbalance/files/irqbalance.config @@ -0,0 +1,3 @@ +config irqbalance 'irqbalance' + option enabled '0' + diff --git a/utils/irqbalance/files/irqbalance.init b/utils/irqbalance/files/irqbalance.init index 34db0a23c..e794b7365 100644 --- a/utils/irqbalance/files/irqbalance.init +++ b/utils/irqbalance/files/irqbalance.init @@ -4,9 +4,14 @@ START=11 USE_PROCD=1 start_service() { - procd_open_instance "irqbalance" - procd_set_param command /usr/sbin/irqbalance -f - procd_set_param respawn - procd_close_instance + local enabled + config_load 'irqbalance' + config_get_bool enabled irqbalance enabled 0 + [ "$enabled" -gt 0 ] || return 0 + + procd_open_instance "irqbalance" + procd_set_param command /usr/sbin/irqbalance -f + procd_set_param respawn + procd_close_instance }