Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 89877e42827f16fa5f86b1df0c2860b1 > files > 2065

kernel-2.6.18-128.1.10.el5.src.rpm

From: Jeff Burke <jburke@redhat.com>
Subject: [RHEL5.1 PATCH] sched: remove __cpuinitdata anotation to cpu_isolated_map
Date: Wed, 28 Mar 2007 19:56:33 -0400
Bugzilla: 220069
Message-Id: <460B00B1.9060206@redhat.com>
Changelog: [sched] remove __cpuinitdata from cpu_isolated_map


Red Hat BZ#:
------
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=220069

Description:
------------
Current annotation of __devinitdata to cpu_isolated_map cause
cpu_isolated_map to hold incorrect value during runtime and leads to
corruption of sched_domains.

Could lead to corruption of sched_domain and improper functioning of
load balancing.

RHEL Version Found:
------------------
RHEL5

Upstream Status:
----------------
Been in since 2.6.19.2
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.19.2

commit fb0ddf36bdfec06438610afd1e44e40b6de06e55
Author: Tim Chen

    [PATCH] sched: remove __cpuinitdata anotation to cpu_isolated_map

    The structure cpu_isolated_map is used not only during initialization.
    Multi-core scheduler configuration changes and exclusive cpusets
    use this during run time.  During setting of sched_mc_power_savings
     policy, this structure is accessed to update sched_domains.

    Signed-off-by: Tim Chen
    Acked-by: Suresh Siddha
    Acked-by: Ingo Molnar
    Signed-off-by: Chris Wright

Test Status:
------------
This was not reproduced in house(Westford Red Hat). It was reported by
Intel. They were testing when CONFIG_HOTPLUG is not turned on.

Test Case:
----------
N/A

BREW scratch build:
-------------------
N/A

Thanks,
Jeff

diff -ur vanilla.orig/kernel/sched.c vanilla/kernel/sched.c
--- vanilla.orig/kernel/sched.c	2006-12-15 16:20:40.000000000 -0800
+++ vanilla/kernel/sched.c	2006-12-15 16:21:05.000000000 -0800
@@ -5417,7 +5417,7 @@
 }
 
 /* cpus with isolated domains */
-static cpumask_t __devinitdata cpu_isolated_map = CPU_MASK_NONE;
+static cpumask_t cpu_isolated_map = CPU_MASK_NONE;
 
 /* Setup the mask of cpus configured for isolated domains */
 static int __init isolated_cpu_setup(char *str)