commit 1d25fb5a4fbadd10131e6bec76877d0a8e73b4824dba37c66fd884da6845d544 Author: OBS User unknown Date: Mon Jan 15 23:17:54 2007 +0000 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/irqbalance?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/irq_balancer b/irq_balancer new file mode 100644 index 0000000..9750f4c --- /dev/null +++ b/irq_balancer @@ -0,0 +1,91 @@ +#! /bin/sh +# Copyright (c) 1995-2002 SuSE Linux AG, Nuernberg, Germany. +# All rights reserved. +# +# /etc/init.d/irqbalance +# and its symbolic link +# /(usr/)sbin/rcirqbalance +# +### BEGIN INIT INFO +# Provides: irqbalance +# Required-Start: +# X-UnitedLinux-Should-Start: +# Required-Stop: +# X-UnitedLinux-Should-Stop: +# Default-Start: 1 2 3 5 +# Default-Stop: 0 6 +# Short-Description: irqbalance daemon providing irq balancing on MP-machines +# Description: Start irqbalance to allow interrrupt balancing over multiple CPUs +# usually all irqs are handled by cpu0, this daemon dynamcally +# uses all cpus for the irqs +# +# +# +### END INIT INFO + +# Check for missing binaries (stale symlinks should not happen) +IRQBALANCE_BIN=/usr/sbin/irqbalance +test -x $IRQBALANCE_BIN || exit 5 +PHYS=$(grep '^physical id' /proc/cpuinfo | sort -u | wc -l) +PROC=$(grep -c '^processor' /proc/cpuinfo) + +. /etc/rc.status + +# Reset status of this service +rc_reset + +case "$1" in + start) + echo -n "Starting irqbalance " + if [ $PHYS -gt 1 ] || [ $PROC -gt 1 -a $PHYS -eq 0 ] ; then + startproc $IRQBALANCE_BIN + # Remember status and be verbose + rc_status -v + else + rc_status -u + fi + ;; + stop) + echo -n "Shutting down irqbalance " + killproc -TERM $IRQBALANCE_BIN + + # Remember status and be verbose + rc_status -v + ;; + try-restart) + $0 status >/dev/null && $0 restart + + # Remember status and be quiet + rc_status + ;; + restart) + $0 stop + $0 start + + # Remember status and be quiet + rc_status + ;; + force-reload|reload) + echo -n "Reload service irqbalance " + if [ $PHYS -gt 1 ] || [ $PROC -gt 1 -a $PHYS -eq 0 ] ; then + ## if it supports it: + killproc -HUP $IRQBALANCE_BIN + #touch /var/run/irqbalance.pid + rc_status -v + else + rc_status -u + fi + ;; + status) + echo -n "Checking for service irqbalance " + checkproc $IRQBALANCE_BIN + rc_status -v + ;; + probe) + ;; + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" + exit 1 + ;; +esac +rc_exit diff --git a/irqbalance-0.09.tar.gz b/irqbalance-0.09.tar.gz new file mode 100644 index 0000000..b41d36e --- /dev/null +++ b/irqbalance-0.09.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd6cfe439c7e347ae60e0b950402cb4434f39b7e01261900b6daddcf21522112 +size 10523 diff --git a/irqbalance-assert.diff b/irqbalance-assert.diff new file mode 100644 index 0000000..77fc95a --- /dev/null +++ b/irqbalance-assert.diff @@ -0,0 +1,45 @@ +diff -urN irqbalance.orig/cpuinfo.c irqbalance/cpuinfo.c +--- irqbalance.orig/cpuinfo.c 2006-04-11 12:06:42.000000000 -0500 ++++ irqbalance/cpuinfo.c 2006-04-11 13:02:51.000000000 -0500 +@@ -37,16 +37,25 @@ + assert(file != NULL); + while (!feof(file) && cpucount < MAX_CPU) { + fgets(linebuffer, 1024, file); +- if (strstr(linebuffer,"Physical processor ID\t:")) ++ if (strstr(linebuffer,"Physical processor ID\t:")) { + sscanf(linebuffer,"Physical processor ID\t: %ui", &cpunumber[cpucount]); ++ assert(cpunumber[cpucount] < MAX_CPU); ++ } ++ + else if (strstr(linebuffer,"processor\t:")) + cpucount++; +- else if (strstr(linebuffer,"Number of siblings\t:")) ++ else if (strstr(linebuffer,"Number of siblings\t:")) { + sscanf(linebuffer,"Number of siblings \t: %i", &siblings[cpucount]); +- else if (strstr(linebuffer,"siblings\t:")) ++ assert(siblings[cpucount] < MAX_CPU); ++ } ++ else if (strstr(linebuffer,"siblings\t:")) { + sscanf(linebuffer,"siblings\t: %i", &siblings[cpucount]); +- else if (strstr(linebuffer,"physical id\t:")) ++ assert(siblings[cpucount] < MAX_CPU); ++ } ++ else if (strstr(linebuffer,"physical id\t:")) { + sscanf(linebuffer,"physical id\t: %ui", &cpunumber[cpucount]); ++ assert(cpunumber[cpucount] < MAX_CPU); ++ } + else if (strstr(linebuffer,"GenuineIntel")) { + if (!machineneedsbalance) + machineneedsbalance = 1; +Files irqbalance.orig/irqbalance and irqbalance/irqbalance differ +diff -urN irqbalance.orig/procinterrupts.c irqbalance/procinterrupts.c +--- irqbalance.orig/procinterrupts.c 2006-04-11 12:06:42.000000000 -0500 ++++ irqbalance/procinterrupts.c 2006-04-11 13:03:03.000000000 -0500 +@@ -102,6 +102,7 @@ + ret = sscanf(word,"%i",&irqnumber); + if (!ret) /* non numeric end stuff */ + irqnumber = MAX_INTERRUPTS-1; ++ assert(irqnumber < MAX_INTERRUPTS); + /* then N columns of counts, where N is the number of cpu's */ + } else if (column <= cpucount) { + sscanf(word,"%lli",&count); diff --git a/irqbalance-increase-limits b/irqbalance-increase-limits new file mode 100644 index 0000000..3118d0a --- /dev/null +++ b/irqbalance-increase-limits @@ -0,0 +1,14 @@ +diff -u irqbalance/prototypes.h~ irqbalance/prototypes.h +--- irqbalance/prototypes.h~ 2003-09-06 13:01:32.000000000 +0200 ++++ irqbalance/prototypes.h 2006-02-08 13:09:49.000000000 +0100 +@@ -25,8 +25,8 @@ + #define POLICY_ROTATE 1 + #define POLICY_IGNORE 2 + +-#define MAX_CPU 32 +-#define MAX_INTERRUPTS 256 ++#define MAX_CPU 128 ++#define MAX_INTERRUPTS 256 + + extern unsigned int cpubrother[]; + extern unsigned int class_policy[]; diff --git a/irqbalance-increase-limits2 b/irqbalance-increase-limits2 new file mode 100644 index 0000000..ba0ac09 --- /dev/null +++ b/irqbalance-increase-limits2 @@ -0,0 +1,11 @@ +--- prototypes.h.ORG 2006-05-09 10:29:29.000000000 +0200 ++++ prototypes.h 2006-05-09 10:31:01.000000000 +0200 +@@ -26,7 +26,7 @@ + #define POLICY_IGNORE 2 + + #define MAX_CPU 128 +-#define MAX_INTERRUPTS 256 ++#define MAX_INTERRUPTS 512 + + extern unsigned int cpubrother[]; + extern unsigned int class_policy[]; diff --git a/irqbalance.changes b/irqbalance.changes new file mode 100644 index 0000000..e12e641 --- /dev/null +++ b/irqbalance.changes @@ -0,0 +1,83 @@ +------------------------------------------------------------------- +Fri Jul 14 11:10:59 CEST 2006 - sf@suse.de + +- added patch from bug #171500, fixing regexps + +------------------------------------------------------------------- +Tue May 16 09:53:02 CEST 2006 - sf@suse.de + +- added irqbalance-assert.diff to completely fix + bug #158186 (see changelog entry below) + +------------------------------------------------------------------- +Tue May 9 10:33:40 CEST 2006 - sf@suse.de + +- increase MAX_INTERRUPTS to 512 to avoid + segfault (bug #158186) + +------------------------------------------------------------------- +Wed May 3 13:37:34 CEST 2006 - sf@suse.de + +- modified startscript to start irqbalancing only on real SMP + machines (multisocket) (bug #171500) + +------------------------------------------------------------------- +Thu Feb 9 00:05:31 CET 2006 - ak@suse.de + +- increase max number of cpus to 128 (#146945) +- install manpage + +------------------------------------------------------------------- +Wed Jan 25 21:36:42 CET 2006 - mls@suse.de + +- converted neededforbuild to BuildRequires + +------------------------------------------------------------------- +Mon Oct 31 12:22:21 CET 2005 - dmueller@suse.de + +- don't build as root + +------------------------------------------------------------------- +Fri Sep 2 12:41:38 CEST 2005 - ro@suse.de + +- rcscript: ignore on machines with < 2 CPUs + +------------------------------------------------------------------- +Tue Jun 21 00:49:26 CEST 2005 - ro@suse.de + +- build with fPIE/pie + +------------------------------------------------------------------- +Mon Feb 16 21:23:23 CET 2004 - sf@suse.de + +- update to 0.09 + +------------------------------------------------------------------- +Sat Sep 20 16:00:17 CEST 2003 - kukuk@suse.de + +- Add PreRequires for insserv + +------------------------------------------------------------------- +Thu Sep 4 16:00:32 CEST 2003 - ro@suse.de + +- added stop_on_removal and restart_on_update +- changed insserv_and_fillup to insserv_force_if_yast + +------------------------------------------------------------------- +Thu Sep 4 15:20:13 CEST 2003 - sf@suse.de + +- added %insserv_and_fillup in %post + and %insserv_cleanup in %postun + +------------------------------------------------------------------- +Thu Sep 4 11:46:23 CEST 2003 - ak@suse.de + +- update to version 0.6 +- Clean up init script a bit +- Move initscript outside tar and mark as source + +------------------------------------------------------------------- +Fri Mar 21 14:56:26 CET 2003 - sf@suse.de + +- initial version 0.1 + diff --git a/irqbalance.spec b/irqbalance.spec new file mode 100644 index 0000000..ea48ab0 --- /dev/null +++ b/irqbalance.spec @@ -0,0 +1,115 @@ +# +# spec file for package irqbalance (Version 0.09) +# +# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. +# This file and all modifications and additions to the pristine +# package are under the same license as the package itself. +# +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +Name: irqbalance +License: Other License(s), see package +Group: System/Daemons +Autoreqprov: on +PreReq: %insserv_prereq +Version: 0.09 +Release: 61 +Summary: Balance IRQs on SMP Machines +Source: %{name}-%{version}.tar.gz +Source2: irq_balancer +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Patch0: irqbalance-increase-limits +Patch1: irqbalance-increase-limits2 +Patch2: irqbalance-assert.diff + +%description +irqbalance dynamically switches the CPUs for IRQs to prevent cpu0 from +being used for all IRQs. + + + +Authors: +-------- + Arjan van de Ven + +%prep +%setup -n irqbalance +%patch0 -p1 +%patch1 +%patch2 -p1 + +%build +rm -rf $RPM_BUILD_ROOT +make CFLAGS="$RPM_OPT_FLAGS -fPIE -pie" + +%install +mkdir -p $RPM_BUILD_ROOT/usr/sbin +mkdir -p $RPM_BUILD_ROOT/etc/init.d +mkdir -p $RPM_BUILD_ROOT/usr/share/man/man1/ +cp irqbalance $RPM_BUILD_ROOT/usr/sbin +cp $RPM_SOURCE_DIR/irq_balancer $RPM_BUILD_ROOT/etc/init.d +ln -s /etc/init.d/irq_balancer $RPM_BUILD_ROOT/usr/sbin/rcirq_balancer +cp irqbalance.1 $RPM_BUILD_ROOT/usr/share/man/man1/ + +%clean +rm -rf $RPM_BUILD_ROOT + +%preun +%stop_on_removal irq_balancer + +%post +%insserv_force_if_yast irq_balancer + +%postun +%restart_on_update irq_balancer +%insserv_cleanup + +%files +%defattr(-,root,root,-) +/usr/sbin/irqbalance +/etc/init.d/irq_balancer +/usr/sbin/rcirq_balancer +/usr/share/man/*/* + +%changelog -n irqbalance +* Fri Jul 14 2006 - sf@suse.de +- added patch from bug #171500, fixing regexps +* Tue May 16 2006 - sf@suse.de +- added irqbalance-assert.diff to completely fix + bug #158186 (see changelog entry below) +* Tue May 09 2006 - sf@suse.de +- increase MAX_INTERRUPTS to 512 to avoid + segfault (bug #158186) +* Wed May 03 2006 - sf@suse.de +- modified startscript to start irqbalancing only on real SMP + machines (multisocket) (bug #171500) +* Thu Feb 09 2006 - ak@suse.de +- increase max number of cpus to 128 (#146945) +- install manpage +* Wed Jan 25 2006 - mls@suse.de +- converted neededforbuild to BuildRequires +* Mon Oct 31 2005 - dmueller@suse.de +- don't build as root +* Fri Sep 02 2005 - ro@suse.de +- rcscript: ignore on machines with < 2 CPUs +* Tue Jun 21 2005 - ro@suse.de +- build with fPIE/pie +* Mon Feb 16 2004 - sf@suse.de +- update to 0.09 +* Sat Sep 20 2003 - kukuk@suse.de +- Add PreRequires for insserv +* Thu Sep 04 2003 - ro@suse.de +- added stop_on_removal and restart_on_update +- changed insserv_and_fillup to insserv_force_if_yast +* Thu Sep 04 2003 - sf@suse.de +- added %%insserv_and_fillup in %%post + and %%insserv_cleanup in %%postun +* Thu Sep 04 2003 - ak@suse.de +- update to version 0.6 +- Clean up init script a bit +- Move initscript outside tar and mark as source +* Fri Mar 21 2003 - sf@suse.de +- initial version 0.1 diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4