Bug 497181 - [LTC 6.0 FEAT] Nominate power efficient idle loadbalancer [201925]
[LTC 6.0 FEAT] Nominate power efficient idle loadbalancer [201925]
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: kernel (Show other bugs)
All All
low Severity high
: rc
: ---
Assigned To: Kevin W Monroe
Martin Jenner
: FutureFeature
Depends On:
Blocks: 356741 525727
  Show dependency treegraph
Reported: 2009-04-22 13:30 EDT by IBM Bug Proxy
Modified: 2010-05-10 13:25 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2009-09-16 14:44:58 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

External Trackers
Tracker ID Priority Status Summary Last Updated
IBM Linux Technology Center 52944 None None None Never

  None (edit)
Description IBM Bug Proxy 2009-04-22 13:30:41 EDT
=Comment: #0=================================================
Emily J. Ratliff <ratliff@austin.ibm.com> - 
1. Feature Overview:
Feature Id:	[201925]
a. Name of Feature:	Nominate power efficient idle loadbalancer
b. Feature Description
This patchset improves the idle-load balancer nomination logic, by  taking into consideration the
system topology.
An idle-load balancer is an idle-cpu which does not turn off it's sched_ticks and performs
load-balancing on behalf of the other idle CPUs. Currently, this idle load balancer is nominated as
the first_cpu (nohz.cpu_mask)

2. Feature Details:
Sponsor:	Linux Systems Tech

Arch Specificity: Purely Common Code
Affects Core Kernel: Yes
Affects Kernel Modules: Yes
Delivery Mechanism: Direct from community
Category:	Kernel
Request Type:	Kernel - Enhancement from Upstream
d. Upstream Acceptance:	Pending
Sponsor Priority	1
f. Severity: High
IBM Confidential:	no
Code Contribution:	IBM code
g. Component Version Target:	Patch and discussions: (Version 2)
 Patch series in Ingo's sched-tip on 14 April 09.

3. Business Case
The drawback of the current method is that the CPU numbering in the cores/packages need not
necessarily be sequential.  Now, the other power-savings settings such as the
sched_mc/smt_power_savings and the power-aware IRQ balancer try to balance tasks/IRQs by taking the
system topology into consideration, with the intention of keeping as many 'power-domains'
(cores/packages) in the low-power state.
The current idle-load-balancer nomination does not necessarily align towards this policy. For eg, we
could be having tasks and interrupts largely running on the first package with the intention of
keeping the second package idle.  Hence, CPU 0 may be busy. The first_cpu in the nohz.cpu_mask could
be CPU1, which in-turn becomes nominated as the idle-load balancer. CPU1 could be from the 2nd
package, would in turn prevent the 2nd package from going into a deeper sleep state.
Instead the role of the idle-load balancer could have been assumed by an idle CPU from the first
package, thereby helping the second package go completely idle.

4. Primary contact at Red Hat: 
John Jarvis

5. Primary contacts at Partner:
Project Management Contact:
Stephanie Glass, sglass@us.ibm.com, 512-838-9284

Technical contact(s):

Vaidyanathan Srinivasan, svaidyan@in.ibm.com

IBM Manager:
Jeffrey Heroux, heroux@us.ibm.com
Comment 2 IBM Bug Proxy 2010-05-10 13:21:03 EDT
------- Comment From arunbharadwaj@in.ibm.com 2010-05-10 13:18 EDT-------

I have verified that this feature is present in RHEL6 snap 1 kernel and it is functionally working correct.

Here is how I have tested this feature:

On a fully idle SMP, start a small workload pinned to any one CPU. Observe that the interrupt rate on this CPU is high. Also observe that another CPU from the *same* package has a high interrupt rate. This is the ILB CPU. Since the ILB CPU is chosen from the same package as the busy CPU, this feature is functionally working correct.


Note You need to log in before you can comment on or make changes to this bug.