diff options
Diffstat (limited to 'kernel/cpuset.c')
| -rw-r--r-- | kernel/cpuset.c | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/kernel/cpuset.c b/kernel/cpuset.c index 02b9611eadde..b23c0979bbe7 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c | |||
| @@ -105,7 +105,7 @@ struct cpuset { | |||
| 105 | /* for custom sched domain */ | 105 | /* for custom sched domain */ |
| 106 | int relax_domain_level; | 106 | int relax_domain_level; |
| 107 | 107 | ||
| 108 | /* used for walking a cpuset heirarchy */ | 108 | /* used for walking a cpuset hierarchy */ |
| 109 | struct list_head stack_list; | 109 | struct list_head stack_list; |
| 110 | }; | 110 | }; |
| 111 | 111 | ||
| @@ -2113,31 +2113,17 @@ static void scan_for_empty_cpusets(struct cpuset *root) | |||
| 2113 | * but making no active use of cpusets. | 2113 | * but making no active use of cpusets. |
| 2114 | * | 2114 | * |
| 2115 | * This routine ensures that top_cpuset.cpus_allowed tracks | 2115 | * This routine ensures that top_cpuset.cpus_allowed tracks |
| 2116 | * cpu_online_map on each CPU hotplug (cpuhp) event. | 2116 | * cpu_active_mask on each CPU hotplug (cpuhp) event. |
| 2117 | * | 2117 | * |
| 2118 | * Called within get_online_cpus(). Needs to call cgroup_lock() | 2118 | * Called within get_online_cpus(). Needs to call cgroup_lock() |
| 2119 | * before calling generate_sched_domains(). | 2119 | * before calling generate_sched_domains(). |
| 2120 | */ | 2120 | */ |
| 2121 | static int cpuset_track_online_cpus(struct notifier_block *unused_nb, | 2121 | void cpuset_update_active_cpus(void) |
| 2122 | unsigned long phase, void *unused_cpu) | ||
| 2123 | { | 2122 | { |
| 2124 | struct sched_domain_attr *attr; | 2123 | struct sched_domain_attr *attr; |
| 2125 | cpumask_var_t *doms; | 2124 | cpumask_var_t *doms; |
| 2126 | int ndoms; | 2125 | int ndoms; |
| 2127 | 2126 | ||
| 2128 | switch (phase) { | ||
| 2129 | case CPU_ONLINE: | ||
| 2130 | case CPU_ONLINE_FROZEN: | ||
| 2131 | case CPU_DOWN_PREPARE: | ||
| 2132 | case CPU_DOWN_PREPARE_FROZEN: | ||
| 2133 | case CPU_DOWN_FAILED: | ||
| 2134 | case CPU_DOWN_FAILED_FROZEN: | ||
| 2135 | break; | ||
| 2136 | |||
| 2137 | default: | ||
| 2138 | return NOTIFY_DONE; | ||
| 2139 | } | ||
| 2140 | |||
| 2141 | cgroup_lock(); | 2127 | cgroup_lock(); |
| 2142 | mutex_lock(&callback_mutex); | 2128 | mutex_lock(&callback_mutex); |
| 2143 | cpumask_copy(top_cpuset.cpus_allowed, cpu_active_mask); | 2129 | cpumask_copy(top_cpuset.cpus_allowed, cpu_active_mask); |
| @@ -2148,8 +2134,6 @@ static int cpuset_track_online_cpus(struct notifier_block *unused_nb, | |||
| 2148 | 2134 | ||
| 2149 | /* Have scheduler rebuild the domains */ | 2135 | /* Have scheduler rebuild the domains */ |
| 2150 | partition_sched_domains(ndoms, doms, attr); | 2136 | partition_sched_domains(ndoms, doms, attr); |
| 2151 | |||
| 2152 | return NOTIFY_OK; | ||
| 2153 | } | 2137 | } |
| 2154 | 2138 | ||
| 2155 | #ifdef CONFIG_MEMORY_HOTPLUG | 2139 | #ifdef CONFIG_MEMORY_HOTPLUG |
| @@ -2203,7 +2187,6 @@ void __init cpuset_init_smp(void) | |||
| 2203 | cpumask_copy(top_cpuset.cpus_allowed, cpu_active_mask); | 2187 | cpumask_copy(top_cpuset.cpus_allowed, cpu_active_mask); |
| 2204 | top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY]; | 2188 | top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY]; |
| 2205 | 2189 | ||
| 2206 | hotcpu_notifier(cpuset_track_online_cpus, 0); | ||
| 2207 | hotplug_memory_notifier(cpuset_track_online_nodes, 10); | 2190 | hotplug_memory_notifier(cpuset_track_online_nodes, 10); |
| 2208 | 2191 | ||
| 2209 | cpuset_wq = create_singlethread_workqueue("cpuset"); | 2192 | cpuset_wq = create_singlethread_workqueue("cpuset"); |
