Bug 463645

Summary: [LTC 6.0 FEAT] 201298:CPU Hotplug rewrite
Product: Red Hat Enterprise Linux 6 Reporter: IBM Bug Proxy <bugproxy>
Component: kernelAssignee: Kevin W Monroe <kmonroe>
Status: CLOSED CURRENTRELEASE QA Contact: Martin Jenner <mjenner>
Severity: high Docs Contact:
Priority: high    
Version: 6.0CC: ejratl, notting, peterm
Target Milestone: alphaKeywords: FutureFeature
Target Release: 6.0   
Hardware: ppc64   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-09-23 22:06:03 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:
Bug Depends On:    
Bug Blocks: 356741, 515068    

Description IBM Bug Proxy 2008-09-24 05:00:30 UTC
=Comment: #0=================================================
Emily J. Ratliff <emilyr.com> - 2008-09-16 18:11 EDT
1. Feature Overview:
Feature Id:	[201298]
a. Name of Feature:	CPU Hotplug rewrite
b. Feature Description
With the proliferation of per-cpu data structures in various parts of the kernel, need to handle CPU
hotplug events increased significantly over the years. However, a global mutex became inadequate for
use in many different layers of the kernel some of whom can be used from CPU hotplug event
processing resulting in recursive deadlocks. Recent efforts using per-subsystem locks didn't make
any improvements as potential deadlocks. This rewrite finally converts CPU hotplug to use reference
counting - a more natural model. It uses a reference count (currently global but can be made per-cpu
later) and a waitqueue to protect cpu_online_map. get_online_cpus() and put_online_cpus() are used
to protect critical sections where you may be reading the cpu_online_map. Since this uses a
reference count, you can block between get and put.    This approach has gone through several rounds
of review:  http://lkml.org/lkml/2007/10/24/36  http://lkml.org/lkml/2007/10/16/118.    The last
version of the patch has been added to the sched-devel tree by Ingo and is a merge candidate for
2.6.25:  http://lkml.org/lkml/2007/11/15/239    With this patch, recursive locking problems
(sometimes a 'Lukewarm IQ' message seen with various subsystems will no longer be issues.

Additional Comments:	All the code accepted into 2.6.25

2. Feature Details:
Sponsor:	PPC
Architectures:
x86_64
ppc64

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 IBM
d. Upstream Acceptance:	Accepted
Sponsor Priority	1
f. Severity: High
IBM Confidential:	no
Code Contribution:	IBM code
g. Component Version Target:	2.6.25

3. Business Case
This work is important for our enterprise customers as part of DLPAR support and Power management
support.

4. Primary contact at Red Hat: 
John Jarvis
jjarvis

5. Primary contacts at Partner:
Project Management Contact:
Michael Hohnbaum, hbaum.com, 503-578-5486

Technical contact(s):
Gautham R Shenoy, gautshen.com
Badari Pulavarty, badari.com

Comment 1 Bill Nottingham 2008-10-02 20:55:41 UTC
RHEL 6 will include at least a 2.6.25 kernel, so this should not be a problem.

The feature requested has already been accepted into the upstream code base
planned for the next major release of Red Hat Enterprise Linux.

When the next milestone release of Red Hat Enterprise Linux 6 is available,
please verify that the feature requested is present and functioning as
desired.

Comment 2 IBM Bug Proxy 2009-02-27 20:50:50 UTC
All the code is accepted into mainline 2.6.25. There are no special patches needed for RHEL6.

Comment 3 Kevin W Monroe 2009-09-23 22:06:03 UTC
Closing - included in Red Hat Enterprise Linux 6.

Comment 4 IBM Bug Proxy 2010-05-12 01:51:39 UTC
------- Comment From pbadari.com 2010-05-11 21:44 EDT-------
Verified the feature by code inspection.

Comment 5 IBM Bug Proxy 2010-05-13 15:42:21 UTC
------- Comment From anibalca.com 2010-05-13 11:37 EDT-------
Tested on snap2.

Comment 6 IBM Bug Proxy 2010-11-15 20:38:17 UTC
------- Comment From anibalca.ibm.com 2010-05-13 11:37 EDT-------