diff --git a/irq_balancer b/irq_balancer index 73817d7..96f699e 100644 --- a/irq_balancer +++ b/irq_balancer @@ -28,6 +28,30 @@ IRQBALANCE_BIN=/usr/sbin/irqbalance test -x $IRQBALANCE_BIN || exit 5 PROC=$(grep -c '^processor' /proc/cpuinfo) +# +# Checks if the irq balancer should be started at all on that system. +# Returns 0 if the balancer should be started, 1 otherwise. +should_start_irqbalance() +{ + # don't start on 1 core systems + # still check the number of processors here althought the irq + # balancer terminates automatically if number_cpus == 0 + # simply to provide a better user output ('unused' vs. 'done') + if [ $PROC -le 1 ] ; then + return 1 + fi + + # don't start on IA64 SGI SN2 systems (bnc#441505) + if [ "$(uname -m)" = ia64 ] && [ -f /proc/sgi_sn/system_serial_number ] ; then + logger -t irq_balancer "Not starting irqbalance because we're running on a SGI SN2 system" + return 1 + fi + + # start on any other case + return 0 +} + + . /etc/rc.status . /etc/sysconfig/irqbalance @@ -50,14 +74,12 @@ case "$1" in start) echo -n "Starting irqbalance " - # still check the number of processors here althought the irq - # balancer terminates automatically if number_cpus == 0 - # simply to provide a better user output ('unused' vs. 'done') - if [ $PROC -gt 1 ] ; then + if should_start_irqbalance ; then startproc $IRQBALANCE_BIN # Remember status and be verbose rc_status -v else + # unused rc_status -u fi ;; diff --git a/irqbalance.changes b/irqbalance.changes index c0bed0d..f77663e 100644 --- a/irqbalance.changes +++ b/irqbalance.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Nov 5 22:14:13 CET 2008 - bwalle@suse.de + +- Don't start the irqbalance on IA64 SGI SN2 systems (bnc#441505). + ------------------------------------------------------------------- Fri Aug 15 22:44:13 CEST 2008 - bwalle@suse.de diff --git a/irqbalance.spec b/irqbalance.spec index 4b6b056..756ac0f 100644 --- a/irqbalance.spec +++ b/irqbalance.spec @@ -24,7 +24,7 @@ Group: System/Daemons AutoReqProv: on PreReq: %insserv_prereq Version: 0.55 -Release: 106 +Release: 120 Summary: Balance IRQs on SMP Machines Source: %{name}-%{version}.tar.bz2 Source1: irqbalance.pod @@ -92,9 +92,11 @@ rm -rf $RPM_BUILD_ROOT /var/adm/fillup-templates/sysconfig.irqbalance %changelog -* Sat Aug 16 2008 bwalle@suse.de +* Wed Nov 05 2008 bwalle@suse.de +- Don't start the irqbalance on IA64 SGI SN2 systems (bnc#441505). +* Fri Aug 15 2008 bwalle@suse.de - add "Required-Stop" to fix rpmlint error -* Wed Dec 12 2007 bwalle@suse.de +* Tue Dec 11 2007 bwalle@suse.de - add /etc/sysconfig/irqbalance configuration file for IRQBALANCE_ONESHOT, IRQBALANCE_BANNED_CPUS and IRQBALANCE_BANNED_INTERRUPTS configuration (#342593) @@ -103,7 +105,7 @@ rm -rf $RPM_BUILD_ROOT - remove special handling of timer interrupt and dual core systems from init script because the new irq balancer does that automatically -* Mon Apr 16 2007 bwalle@suse.de +* Sun Apr 15 2007 bwalle@suse.de - wrote manpage for irqbalance * Wed Apr 11 2007 bwalle@suse.de - updated to irqbalance.org 0.55 @@ -137,7 +139,7 @@ rm -rf $RPM_BUILD_ROOT - 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 +* Mon Jun 20 2005 ro@suse.de - build with fPIE/pie * Mon Feb 16 2004 sf@suse.de - update to 0.09