diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-22 21:27:32 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-22 21:27:32 -0400 |
commit | d79ee93de909dfb252279b9a95978bbda9a814a9 (patch) | |
tree | bfccca60fd36259ff4bcc5e78a2c272fbd680065 /include/linux/topology.h | |
parent | 2ff2b289a695807e291e1ed9f639d8a3ba5f4254 (diff) | |
parent | 1c2927f18576d65631d8e0ddd19e1d023183222e (diff) |
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler changes from Ingo Molnar:
"The biggest change is the cleanup/simplification of the load-balancer:
instead of the current practice of architectures twiddling scheduler
internal data structures and providing the scheduler domains in
colorfully inconsistent ways, we now have generic scheduler code in
kernel/sched/core.c:sched_init_numa() that looks at the architecture's
node_distance() parameters and (while not fully trusting it) deducts a
NUMA topology from it.
This inevitably changes balancing behavior - hopefully for the better.
There are various smaller optimizations, cleanups and fixlets as well"
* 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched: Taint kernel with TAINT_WARN after sleep-in-atomic bug
sched: Remove stale power aware scheduling remnants and dysfunctional knobs
sched/debug: Fix printing large integers on 32-bit platforms
sched/fair: Improve the ->group_imb logic
sched/nohz: Fix rq->cpu_load[] calculations
sched/numa: Don't scale the imbalance
sched/fair: Revert sched-domain iteration breakage
sched/x86: Rewrite set_cpu_sibling_map()
sched/numa: Fix the new NUMA topology bits
sched/numa: Rewrite the CONFIG_NUMA sched domain support
sched/fair: Propagate 'struct lb_env' usage into find_busiest_group
sched/fair: Add some serialization to the sched_domain load-balance walk
sched/fair: Let minimally loaded cpu balance the group
sched: Change rq->nr_running to unsigned int
x86/numa: Check for nonsensical topologies on real hw as well
x86/numa: Hard partition cpu topology masks on node boundaries
x86/numa: Allow specifying node_distance() for numa=fake
x86/sched: Make mwait_usable() heed to "idle=" kernel parameters properly
sched: Update documentation and comments
sched_rt: Avoid unnecessary dequeue and enqueue of pushable tasks in set_cpus_allowed_rt()
Diffstat (limited to 'include/linux/topology.h')
-rw-r--r-- | include/linux/topology.h | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/include/linux/topology.h b/include/linux/topology.h index 9dc427cdb6ff..e91cd43394df 100644 --- a/include/linux/topology.h +++ b/include/linux/topology.h | |||
@@ -70,7 +70,6 @@ int arch_update_cpu_topology(void); | |||
70 | * Below are the 3 major initializers used in building sched_domains: | 70 | * Below are the 3 major initializers used in building sched_domains: |
71 | * SD_SIBLING_INIT, for SMT domains | 71 | * SD_SIBLING_INIT, for SMT domains |
72 | * SD_CPU_INIT, for SMP domains | 72 | * SD_CPU_INIT, for SMP domains |
73 | * SD_NODE_INIT, for NUMA domains | ||
74 | * | 73 | * |
75 | * Any architecture that cares to do any tuning to these values should do so | 74 | * Any architecture that cares to do any tuning to these values should do so |
76 | * by defining their own arch-specific initializer in include/asm/topology.h. | 75 | * by defining their own arch-specific initializer in include/asm/topology.h. |
@@ -99,7 +98,6 @@ int arch_update_cpu_topology(void); | |||
99 | | 0*SD_BALANCE_WAKE \ | 98 | | 0*SD_BALANCE_WAKE \ |
100 | | 1*SD_WAKE_AFFINE \ | 99 | | 1*SD_WAKE_AFFINE \ |
101 | | 1*SD_SHARE_CPUPOWER \ | 100 | | 1*SD_SHARE_CPUPOWER \ |
102 | | 0*SD_POWERSAVINGS_BALANCE \ | ||
103 | | 1*SD_SHARE_PKG_RESOURCES \ | 101 | | 1*SD_SHARE_PKG_RESOURCES \ |
104 | | 0*SD_SERIALIZE \ | 102 | | 0*SD_SERIALIZE \ |
105 | | 0*SD_PREFER_SIBLING \ | 103 | | 0*SD_PREFER_SIBLING \ |
@@ -135,8 +133,6 @@ int arch_update_cpu_topology(void); | |||
135 | | 0*SD_SHARE_CPUPOWER \ | 133 | | 0*SD_SHARE_CPUPOWER \ |
136 | | 1*SD_SHARE_PKG_RESOURCES \ | 134 | | 1*SD_SHARE_PKG_RESOURCES \ |
137 | | 0*SD_SERIALIZE \ | 135 | | 0*SD_SERIALIZE \ |
138 | | sd_balance_for_mc_power() \ | ||
139 | | sd_power_saving_flags() \ | ||
140 | , \ | 136 | , \ |
141 | .last_balance = jiffies, \ | 137 | .last_balance = jiffies, \ |
142 | .balance_interval = 1, \ | 138 | .balance_interval = 1, \ |
@@ -168,56 +164,18 @@ int arch_update_cpu_topology(void); | |||
168 | | 0*SD_SHARE_CPUPOWER \ | 164 | | 0*SD_SHARE_CPUPOWER \ |
169 | | 0*SD_SHARE_PKG_RESOURCES \ | 165 | | 0*SD_SHARE_PKG_RESOURCES \ |
170 | | 0*SD_SERIALIZE \ | 166 | | 0*SD_SERIALIZE \ |
171 | | sd_balance_for_package_power() \ | ||
172 | | sd_power_saving_flags() \ | ||
173 | , \ | 167 | , \ |
174 | .last_balance = jiffies, \ | 168 | .last_balance = jiffies, \ |
175 | .balance_interval = 1, \ | 169 | .balance_interval = 1, \ |
176 | } | 170 | } |
177 | #endif | 171 | #endif |
178 | 172 | ||
179 | /* sched_domains SD_ALLNODES_INIT for NUMA machines */ | ||
180 | #define SD_ALLNODES_INIT (struct sched_domain) { \ | ||
181 | .min_interval = 64, \ | ||
182 | .max_interval = 64*num_online_cpus(), \ | ||
183 | .busy_factor = 128, \ | ||
184 | .imbalance_pct = 133, \ | ||
185 | .cache_nice_tries = 1, \ | ||
186 | .busy_idx = 3, \ | ||
187 | .idle_idx = 3, \ | ||
188 | .flags = 1*SD_LOAD_BALANCE \ | ||
189 | | 1*SD_BALANCE_NEWIDLE \ | ||
190 | | 0*SD_BALANCE_EXEC \ | ||
191 | | 0*SD_BALANCE_FORK \ | ||
192 | | 0*SD_BALANCE_WAKE \ | ||
193 | | 0*SD_WAKE_AFFINE \ | ||
194 | | 0*SD_SHARE_CPUPOWER \ | ||
195 | | 0*SD_POWERSAVINGS_BALANCE \ | ||
196 | | 0*SD_SHARE_PKG_RESOURCES \ | ||
197 | | 1*SD_SERIALIZE \ | ||
198 | | 0*SD_PREFER_SIBLING \ | ||
199 | , \ | ||
200 | .last_balance = jiffies, \ | ||
201 | .balance_interval = 64, \ | ||
202 | } | ||
203 | |||
204 | #ifndef SD_NODES_PER_DOMAIN | ||
205 | #define SD_NODES_PER_DOMAIN 16 | ||
206 | #endif | ||
207 | |||
208 | #ifdef CONFIG_SCHED_BOOK | 173 | #ifdef CONFIG_SCHED_BOOK |
209 | #ifndef SD_BOOK_INIT | 174 | #ifndef SD_BOOK_INIT |
210 | #error Please define an appropriate SD_BOOK_INIT in include/asm/topology.h!!! | 175 | #error Please define an appropriate SD_BOOK_INIT in include/asm/topology.h!!! |
211 | #endif | 176 | #endif |
212 | #endif /* CONFIG_SCHED_BOOK */ | 177 | #endif /* CONFIG_SCHED_BOOK */ |
213 | 178 | ||
214 | #ifdef CONFIG_NUMA | ||
215 | #ifndef SD_NODE_INIT | ||
216 | #error Please define an appropriate SD_NODE_INIT in include/asm/topology.h!!! | ||
217 | #endif | ||
218 | |||
219 | #endif /* CONFIG_NUMA */ | ||
220 | |||
221 | #ifdef CONFIG_USE_PERCPU_NUMA_NODE_ID | 179 | #ifdef CONFIG_USE_PERCPU_NUMA_NODE_ID |
222 | DECLARE_PER_CPU(int, numa_node); | 180 | DECLARE_PER_CPU(int, numa_node); |
223 | 181 | ||