summaryrefslogtreecommitdiffstats
path: root/include/linux/sched.h
diff options
context:
space:
mode:
authorakpm@osdl.org2006-01-12 10:05:32 +0100
committerLinus Torvalds2006-01-12 18:08:50 +0100
commitd7102e95b7b9c00277562c29aad421d2d521c5f6 (patch)
tree3ad3d94c329095962c6cd6dcea41e1ccf2db5a7e /include/linux/sched.h
parent[PATCH] scheduler cache-hot-autodetect (diff)
downloadkernel-qcow2-linux-d7102e95b7b9c00277562c29aad421d2d521c5f6.tar.gz
kernel-qcow2-linux-d7102e95b7b9c00277562c29aad421d2d521c5f6.tar.xz
kernel-qcow2-linux-d7102e95b7b9c00277562c29aad421d2d521c5f6.zip
[PATCH] sched: filter affine wakeups
) From: Nick Piggin <nickpiggin@yahoo.com.au> Track the last waker CPU, and only consider wakeup-balancing if there's a match between current waker CPU and the previous waker CPU. This ensures that there is some correlation between two subsequent wakeup events before we move the task. Should help random-wakeup workloads on large SMP systems, by reducing the migration attempts by a factor of nr_cpus. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/sched.h')
-rw-r--r--include/linux/sched.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 5d6b9228bba9..b5ef92a043a6 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -696,9 +696,12 @@ struct task_struct {
int lock_depth; /* BKL lock depth */
-#if defined(CONFIG_SMP) && defined(__ARCH_WANT_UNLOCKED_CTXSW)
+#if defined(CONFIG_SMP)
+ int last_waker_cpu; /* CPU that last woke this task up */
+#if defined(__ARCH_WANT_UNLOCKED_CTXSW)
int oncpu;
#endif
+#endif
int prio, static_prio;
struct list_head run_list;
prio_array_t *array;