Files
android_kernel_xiaomi_sm8450/kernel
Chen, Kenneth W c96d145e71 [PATCH] sched: fix smt nice lock contention and optimization
Initial report and lock contention fix from Chris Mason:

Recent benchmarks showed some performance regressions between 2.6.16 and
2.6.5.  We tracked down one of the regressions to lock contention in
schedule heavy workloads (~70,000 context switches per second)

kernel/sched.c:dependent_sleeper() was responsible for most of the lock
contention, hammering on the run queue locks.  The patch below is more of a
discussion point than a suggested fix (although it does reduce lock
contention significantly).  The dependent_sleeper code looks very expensive
to me, especially for using a spinlock to bounce control between two
different siblings in the same cpu.

It is further optimized:

* perform dependent_sleeper check after next task is determined
* convert wake_sleeping_dependent to use trylock
* skip smt runqueue check if trylock fails
* optimize double_rq_lock now that smt nice is converted to trylock
* early exit in searching first SD_SHARE_CPUPOWER domain
* speedup fast path of dependent_sleeper

[akpm@osdl.org: cleanup]
Signed-off-by: Ken Chen <kenneth.w.chen@intel.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Con Kolivas <kernel@kolivas.org>
Signed-off-by: Nick Piggin <npiggin@suse.de>
Acked-by: Chris Mason <mason@suse.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-27 17:32:44 -07:00
..
2006-06-27 17:32:35 -07:00
2006-06-27 17:32:39 -07:00
2006-06-27 17:32:39 -07:00
2005-04-16 15:20:36 -07:00
2006-03-26 08:57:03 -08:00
2005-10-30 17:37:32 -08:00
2005-10-08 15:00:57 -07:00
2006-06-26 09:58:22 -07:00
2006-06-26 10:51:09 -07:00
2006-06-25 10:01:13 -07:00
2005-04-16 15:20:36 -07:00
2006-06-25 10:01:06 -07:00
2006-04-19 16:27:18 -07:00
2005-04-16 15:20:36 -07:00