* Ingo Molnar <[email protected]> wrote:
> there's an even simpler way: only do wakeup-balancing if this_cpu is
> idle. (tbench results are still OK, and other workloads improved.)
here's an updated patch. It handles one more detail: on SCHED_SMT we
should check the idleness of siblings too. Benchmark numbers still look
good.
Ingo
----
do wakeup-balancing only if the wakeup-CPU (or any of its siblings)
is idle.
this prevents excessive wakeup-balancing while the system is highly
loaded, but helps spread out the workload on partly idle systems.
Signed-off-by: Ingo Molnar <[email protected]>
kernel/sched.c | 6 ++++++
1 files changed, 6 insertions(+)
Index: linux-sched-curr/kernel/sched.c
===================================================================
--- linux-sched-curr.orig/kernel/sched.c
+++ linux-sched-curr/kernel/sched.c
@@ -1253,7 +1253,13 @@ static int try_to_wake_up(task_t *p, uns
if (unlikely(task_running(rq, p)))
goto out_activate;
+ /*
+ * Only do wakeup-balancing (== potentially migrate the task)
+ * if this CPU (or any SMT sibling) is idle:
+ */
new_cpu = cpu;
+ if (!idle_cpu(this_cpu) && this_cpu == wake_idle(this_cpu, p))
+ goto out_set_cpu;
schedstat_inc(rq, ttwu_cnt);
if (cpu == this_cpu) {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
|
|