Bug 539685 - [Intel 5.5 FEAT] Fix spinlock issue which causes performance impact on large systems [rhel-5.4.z]
Summary: [Intel 5.5 FEAT] Fix spinlock issue which causes performance impact on large ...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel
Version: 5.5
Hardware: All
OS: Linux
urgent
high
Target Milestone: rc
: ---
Assignee: Jiri Pirko
QA Contact: Red Hat Kernel QE team
URL:
Whiteboard:
Depends On: 526078
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-11-20 20:19 UTC by Benjamin Kahn
Modified: 2016-06-13 12:01 UTC (History)
18 users (show)

Fixed In Version: kernel-2.6.18-164.7.1.el5
Doc Type: Enhancement
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-12-15 17:20:35 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2009:1670 0 normal SHIPPED_LIVE Important: kernel security and bug fix update 2009-12-15 17:18:47 UTC

Description Benjamin Kahn 2009-11-20 20:19:19 UTC
This bug has been copied from bug #526078 and has been proposed
to be backported to 5.4 z-stream (EUS).

Comment 2 Anton Arapov 2009-11-21 21:45:47 UTC
in kernel-2.6.18-164.7.1.el5

Please do NOT transition this bugzilla state to VERIFIED until our QE team
has sent specific instructions indicating when to do so.

Comment 5 Larry Woodman 2009-12-14 19:55:10 UTC
This the correct patch for this issue.  It resolves a performance problem seen running AIM7 as well as several other large benchmarks that do lots of forking, mmap()ing, munmap()ing and exit()ing while the system is under memory pressure.  This patch was introduced in the upstream kernel in 2.6.32.


-----------------------------------------------------------------------------
diff --git a/mm/mmap.c b/mm/mmap.c
index 04dfc7e..d80fa9d 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -559,9 +559,9 @@ again:                      remove_next = 1 + (end > next->vm_end);

        /*
         * When changing only vma->vm_end, we don't really need
-        * anon_vma lock: but is that case worth optimizing out?
+        * anon_vma lock.
         */
-       if (vma->anon_vma)
+       if (vma->anon_vma && (insert || importer || start != vma->vm_start))
                anon_vma = vma->anon_vma;
        if (anon_vma) {
                spin_lock(&anon_vma->lock);
-------------------------------------------------------------------------------

Larry Woodman

Comment 7 errata-xmlrpc 2009-12-15 17:20:35 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2009-1670.html


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