From 611523d825d65b500588a3e03b9a5c375f3e2d21 Mon Sep 17 00:00:00 2001 From: Karoly Kasza Date: Thu, 8 Jan 2015 16:43:56 +0100 Subject: [PATCH] irqbalance: new package Irqbalance is a daemon to help balance the cpu load generated by interrupts across all of a systems cpus. [Thomas: - Add upstream URL in Config.in help text. - Fix indentation of init script.] Signed-off-by: Karoly Kasza Signed-off-by: Thomas Petazzoni --- package/Config.in | 1 + package/irqbalance/Config.in | 11 +++++++++ package/irqbalance/S13irqbalance | 34 ++++++++++++++++++++++++++ package/irqbalance/irqbalance.mk | 35 +++++++++++++++++++++++++++ package/irqbalance/irqbalance.service | 9 +++++++ 5 files changed, 90 insertions(+) create mode 100644 package/irqbalance/Config.in create mode 100644 package/irqbalance/S13irqbalance create mode 100644 package/irqbalance/irqbalance.mk create mode 100644 package/irqbalance/irqbalance.service diff --git a/package/Config.in b/package/Config.in index cab8f2fdff..5ece4a5612 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1249,6 +1249,7 @@ endif source "package/getent/Config.in" source "package/htop/Config.in" source "package/iprutils/Config.in" + source "package/irqbalance/Config.in" source "package/keyutils/Config.in" source "package/kmod/Config.in" source "package/lxc/Config.in" diff --git a/package/irqbalance/Config.in b/package/irqbalance/Config.in new file mode 100644 index 0000000000..6c21497834 --- /dev/null +++ b/package/irqbalance/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_IRQBALANCE + bool "irqbalance" + help + Irqbalance is a daemon to help balance the cpu load generated + by interrupts across all of a systems cpus. + Irqbalance identifies the highest volume interrupt sources, + and isolates them to a single unique cpu, so that load is + spread as much as possible over an entire processor set, while + minimizing cache hit rates for irq handlers. + + https://github.com/Irqbalance/irqbalance diff --git a/package/irqbalance/S13irqbalance b/package/irqbalance/S13irqbalance new file mode 100644 index 0000000000..1d713ae33a --- /dev/null +++ b/package/irqbalance/S13irqbalance @@ -0,0 +1,34 @@ +#!/bin/sh +# +# Starts irqbalance +# + +EXEC="/usr/sbin/irqbalance" +ARGS="" +PID="/var/run/irqbalance.pid" + +case "$1" in + start) + echo -n "Starting irqbalance: " + start-stop-daemon -S -q -x $EXEC -- $ARGS + if [ $? != 0 ]; then + echo "FAILED" + exit 1 + else + echo "OK" + fi + pidof irqbalance > $PID + ;; + stop) + echo -n "Stopping irqbalance: " + start-stop-daemon -K -q -p $PID + echo "OK" + ;; + restart|reload) + $0 stop + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac diff --git a/package/irqbalance/irqbalance.mk b/package/irqbalance/irqbalance.mk new file mode 100644 index 0000000000..e3ef0bb6d2 --- /dev/null +++ b/package/irqbalance/irqbalance.mk @@ -0,0 +1,35 @@ +################################################################################ +# +# irqbalance +# +################################################################################ + +IRQBALANCE_VERSION = v1.0.8 +IRQBALANCE_SITE = $(call github,irqbalance,irqbalance,$(IRQBALANCE_VERSION)) +IRQBALANCE_LICENSE = GPLv2 +IRQBALANCE_LICENSE_FILES = COPYING +IRQBALANCE_DEPENDENCIES = host-pkgconf +# Autoreconf needed because package is distributed without a configure script +IRQBALANCE_AUTORECONF = YES + +# This would be done by the package's autogen.sh script +define IRQBALANCE_PRECONFIGURE + mkdir -p $(@D)/m4 +endef + +IRQBALANCE_PRE_CONFIGURE_HOOKS += IRQBALANCE_PRECONFIGURE + +define IRQBALANCE_INSTALL_INIT_SYSV + $(INSTALL) -D -m 755 package/irqbalance/S13irqbalance \ + $(TARGET_DIR)/etc/init.d/S13irqbalance +endef + +define IRQBALANCE_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 package/irqbalance/irqbalance.service \ + $(TARGET_DIR)/etc/systemd/system/irqbalance.service + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + ln -fs ../irqbalance.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/irqbalance.service +endef + +$(eval $(autotools-package)) diff --git a/package/irqbalance/irqbalance.service b/package/irqbalance/irqbalance.service new file mode 100644 index 0000000000..9ba3be43bb --- /dev/null +++ b/package/irqbalance/irqbalance.service @@ -0,0 +1,9 @@ +[Unit] +Description=irqbalance daemon +After=syslog.target + +[Service] +ExecStart=/usr/sbin/irqbalance --foreground + +[Install] +WantedBy=multi-user.target -- 2.30.2