Bug 225313

Summary: Irqbalance simply exists without any error
Product: [Fedora] Fedora Reporter: Vladimir Mosgalin <vladimir.mv>
Component: irqbalanceAssignee: Neil Horman <nhorman>
Status: CLOSED NOTABUG QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 6   
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-02-21 13:39:48 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:
Attachments:
Description Flags
irqbalance under strace none

Description Vladimir Mosgalin 2007-01-29 21:43:16 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.1) Gecko/20061208 Firefox/2.0.0.1

Description of problem:
After upgrading from stock irqbalance-1.13-4.fc6.x86_64 to irqbalance-0.55-2.fc6.x86_64 in updates it completely stopped working. IRQs are not balanced, and irqbalance exits very soon after starting. It doesn't even try to rebalance anything, just quits without any warning or error.

Version-Release number of selected component (if applicable):
irqbalance-0.55-2.fc6.x86_64

How reproducible:
Always


Steps to Reproduce:
1. Execute /sbin/service irqbalance start or run /usr/sbin/irqbalance directly


Actual Results:
ps aux | grep irqbalance shows that irqbalance has started. After a while, no irqbalance is running. /proc/interrupts shows that no irqs are balanced.

Running /sbin/irqbalance --debug produces output:

$ sudo /usr/sbin/irqbalance --debug
Package 0:  cpu mask is 00000003 (workload 0)
        Cache domain 0: cpu mask is 00000003  (workload 0) 
                CPU number 1  (workload 0)
                CPU number 0  (workload 0)

[no output for some seconds]

Interrupt 16 (class ethernet) has workload 306 
Interrupt 0 (class timer) has workload 2002 
Interrupt 8 (class timer) has workload 0 
Interrupt 19 (class storage) has workload 189 
Interrupt 18 (class storage) has workload 104 
Interrupt 23 (class legacy) has workload 0 
Interrupt 21 (class legacy) has workload 0 
Interrupt 12 (class legacy) has workload 0 
Interrupt 9 (class legacy) has workload 0 
Interrupt 7 (class legacy) has workload 0 
Interrupt 1 (class legacy) has workload 0 

[no output for some seconds]

-----------------------------------------------------------------------------
IRQ delta is 3217 
Package 0:  cpu mask is 00000003 (workload 13080)
        Cache domain 0: cpu mask is 00000003  (workload 13080) 
                CPU number 1  (workload 12085)
                  Interrupt 16 (ethernet/1448) 
                  Interrupt 18 (storage/494) 
                  Interrupt 21 (legacy/0) 
                  Interrupt 9 (legacy/0) 
                  Interrupt 1 (legacy/0) 
                CPU number 0  (workload 11133)
                  Interrupt 19 (storage/991) 
                  Interrupt 23 (legacy/0) 
                  Interrupt 12 (legacy/0) 
                  Interrupt 7 (legacy/0) 

[exits]

Expected Results:
Irqbalance should keep on running and balancing irqs. Downgrading to irqbalance-1.13 solves this problem.

Additional info:

Comment 1 Neil Horman 2007-01-29 22:02:37 UTC
are you running with selinux enabled?  if so you need to update your selinux
targeted policy to reflect the new fileset that irqbalance accesses.

Comment 2 Vladimir Mosgalin 2007-01-29 22:25:32 UTC
I have latest selinux packages (selinux-policy-2.4.6-27.fc6.noarch), and selinux
is disabled anyway ;)

Comment 3 Neil Horman 2007-01-30 12:29:48 UTC
then please run the above command under strace and attach the output file, as I
can run irqbalance here without it ever exiting

Comment 4 Vladimir Mosgalin 2007-01-30 12:34:50 UTC
Created attachment 146912 [details]
irqbalance under strace

Here it its.

Comment 5 Arjan van de Ven 2007-02-21 12:53:05 UTC
you appear to have only 1 physical cpu; in that case irqbalancing has only very
limited impact, and irqbalance just sets up a static balance and then exits as
explicit policy... 
(it can't do much good so it stops spending resources)

Comment 6 Vladimir Mosgalin 2007-02-21 12:56:38 UTC
Well I do have only one physical cpu, but it's dual-core... (Core 2 Duo).
Doesn't that count as two separate ones?

Comment 7 Neil Horman 2007-02-21 13:39:48 UTC
not under the new irqbalance, no.  IIRC, caches are shared in that configuration
meaning that irq's can be serviced on either core without cache line misses.

Comment 8 Vladimir Mosgalin 2007-02-21 13:47:09 UTC
That's right (L1 caches are not shared, L2 cache is shared). However, doesn't
that mean that irq should be balanced without any fear of cache misses?

If current behavior is desired, so be it. I don't really care whether interrupts
are balanced or not.