Bug 463281 - [LTC 6.0 FEAT] 201201:Large page flexibility for POWER
[LTC 6.0 FEAT] 201201:Large page flexibility for POWER
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: kernel (Show other bugs)
ppc64 All
medium Severity medium
: alpha
: 6.0
Assigned To: Kevin W Monroe
Martin Jenner
: FutureFeature
Depends On:
Blocks: 356741 RHEL6Kernel2.6.27
  Show dependency treegraph
Reported: 2008-09-22 16:10 EDT by IBM Bug Proxy
Modified: 2010-05-06 11:53 EDT (History)
3 users (show)

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

Attachments (Terms of Use)

  None (edit)
Description IBM Bug Proxy 2008-09-22 16:10:55 EDT
=Comment: #0=================================================
Emily J. Ratliff <emilyr@us.ibm.com> - 2008-09-16 18:24 EDT
1. Feature Overview:
Feature Id:	[201201]
a. Name of Feature:	Large page flexibility for POWER
b. Feature Description
The ability to flexibly support large pages for POWER

2. Feature Details:
Sponsor:	PPC - P

Arch Specificity: Both
Affects Core Kernel: Yes
Delivery Mechanism: Direct from community
Category:	Performance
Request Type:	Kernel - Enhancement from IBM
d. Upstream Acceptance:	Accepted
Sponsor Priority	2
f. Severity: Medium
IBM Confidential:	no
Code Contribution:	IBM code
g. Component Version Target:	2.6.27
Performance Assistance:	yes

3. Business Case
Large pages enhance performance, but are not optimal for all circumstances.  Customers need the
ability to deploy this feature flexibly.

4. Primary contact at Red Hat: 
John Jarvis

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

Technical contact(s):

Paul Mackerras, pmac@au1.ibm.com
Comment 1 Bill Nottingham 2008-10-01 16:53:08 EDT
Is there any userspace component to this feature? What do you mean by 'flexibly'?
Comment 2 IBM Bug Proxy 2008-10-02 06:15:56 EDT
The userspace component of this feature is the libhugetlbfs library. For RHEL, we would like to use libhugetlbfs 2.1 (not released yet) as a basis. That library is used to back text/data, heap and shared memory with hugepages automatically without application awareness if requested by the user. The library also has a basic API for developers to easily get regions of memory backed by hugepages.

The "flexibility" aspect refers to the kernel features which are
o Anti-fragmentation (enabled automatically)
o Contiguity-aware page reclaim (sometimes referred to as lumpy reclaim)
o Memory partitioning (kernelcore= and movablecore= boot parameters)
o Dynamic hugepage pool resizing (enabled via proc)
o Reliable MAP_PRIVATE behaviour (no SIGKILLs for the process that called mmap())

In older kernels, hugepages had to be reserved at boot-time and the pool couldn't be shrunk and regrown later with any degree of reliability. Our expection is that the sizing of the pool will be much more flexible for an administrator in 2.6.27. The dynamic hugepage pool will allow an administrator to set a hard and soft size to the hugepage pool and the memory partitioning can be used to very reliably predict what the pool can grow to no matter what the workload is.

"Flexibly" refers to the expectation that large pages can be used in more situations with less grief than previous kernels where the pool sizes were relatively static and mistakes could result in killed applications.
Comment 3 Bill Nottingham 2008-10-02 10:05:12 EDT
Can you update this bug when the new libhugetlbfs is released?
Comment 4 IBM Bug Proxy 2008-10-02 12:16:41 EDT
Note that the userspace component is tracked via IBM bugzilla 48000, RH bugzilla 463613

[LTC 6.0 FEAT] 201194:libhugetlbfs package update
Comment 5 Bill Nottingham 2008-10-02 12:23:03 EDT
OK then, setting to MODIFIED as RHEL 6 will ship a new enough kernel for the kernel side of this feature.

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
Comment 6 IBM Bug Proxy 2009-03-02 16:30:49 EST
This is upstream in 2.6.27
sha1 id: 0d9ea75443dc7e37843e656b8ebc947a6d16d618
Comment 7 Kevin W Monroe 2009-09-23 18:13:38 EDT
Closing - included in Red Hat Enterprise Linux 6.
Comment 8 IBM Bug Proxy 2009-11-16 11:20:35 EST
------- Comment From luciojhc@br.ibm.com 2009-11-16 11:10 EDT-------
Here are the results summary for libhugetlbfs-2.6-2 tests on PPC64:

********** TEST SUMMARY
*                      16M
*     Total testcases:    95     98
*             Skipped:    20      0
*                PASS:    75     94
*                FAIL:     0      2
*    Killed by signal:     0      2
*   Bad configuration:     0      0
*       Expected FAIL:     0      0
*     Unexpected PASS:     0      0
* Strange test result:     0      0

And the failures are these:

HUGETLB_VERBOSE=0 HUGETLB_MINIMAL_COPY=no xBDT.linkhuge_nofd (16M: 64): Failed
to map hugepage segment 1: 12000000-20000000 (errno=12)

HUGETLB_MINIMAL_COPY=no xBDT.linkhuge (16M: 64):        Failed to map hugepage
segment 1: 12000000-20000000 (errno=12)

HUGETLB_SHARE=1 xBDT.linkshare (16M: 64):       Failed to map hugepage segment
1: 12000000-20000000 (errno=12)
FAIL    Child 1 killed by signal: Aborted
HUGETLB_SHARE=1 xBDT.linkshare (16M: 64):       Failed to map hugepage segment
1: 12000000-20000000 (errno=12)
FAIL    Child 1 killed by signal: Aborted

Mel, are these failures expected?
Comment 9 IBM Bug Proxy 2009-11-17 07:30:43 EST
------- Comment From luciojhc@br.ibm.com 2009-11-17 07:26 EDT-------
Ok, just verified these are expected failures.

So feature is verified and working fine.
Comment 10 IBM Bug Proxy 2010-05-06 11:53:32 EDT
------- Comment From ebmunson@us.ibm.com 2010-05-06 11:49 EDT-------
Verified with RHEL 6 Snap 1

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