Bug 123068

Summary: Kernel IRQ Balancing is improperly disabled
Product: [Fedora] Fedora Reporter: Richard Schaal <rschaal_95135>
Component: kernelAssignee: Dave Jones <davej>
Status: CLOSED ERRATA QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: pfrields
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-11-03 04:48:49 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Richard Schaal 2004-05-11 23:26:17 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040505

Description of problem:
A gratuitious diff in the file linux-2.6.0-compile.patch short
circuits the ability to enable or disable this feature through the
kernel build process.  This has been this way (WRONG) for some time,
but this was the first time I was able to locate the offending patch.

The patch to arch/i386/kernel/io_apic.c should be deleted altogether
as there are a number of other mechanisms already available to turn
this feature off.

Version-Release number of selected component (if applicable):
linux-2.6.5-1.326 

How reproducible:
Always

Steps to Reproduce:
1.When building a SMP IA32 kernel, enable the Kernel IRQ balance feature

2.- discover that it is not enabled when it should be.
3.
    

Actual Results:  Kernel IRQ balance did not start up.

Expected Results:  Kernel IRQ balance should have started.

Additional info:

DELETE THIS PATCH FROM linux-2.6.0-compile.patch - It doe not effect
the compilation of the kernel.

diff -urNp linux-1090/arch/i386/kernel/io_apic.c
linux-10000/arch/i386/kernel/io_apic.c
--- linux-1090/arch/i386/kernel/io_apic.c
+++ linux-10000/arch/i386/kernel/io_apic.c
@@ -627,8 +627,7 @@ static int __init balanced_irq_init(void
        /* When not overwritten by the command line ask
subarchitecture. */
        if (irqbalance_disabled == IRQBALANCE_CHECK_ARCH)
                irqbalance_disabled = NO_BALANCE_IRQ;
-       if (irqbalance_disabled)
-               return 0;
+       return 0;
         
         /* disable irqbalance completely if there is only one
processor online
*/
        if (num_online_cpus() < 2) {

Comment 1 Dave Jones 2004-11-03 04:48:49 UTC
fixed in update.