diff options
author | Gregory Haskins <ghaskins@novell.com> | 2008-12-29 09:39:51 -0500 |
---|---|---|
committer | Gregory Haskins <ghaskins@novell.com> | 2008-12-29 09:39:51 -0500 |
commit | 8f45e2b516201d1bf681e6026fa5276385def565 (patch) | |
tree | b50d5cc2d6932d1f33f222bdf6052cfa32cddc8c /kernel/sched_rt.c | |
parent | 7e96fa5875d4a9be18d74d3ca7b90518d05bc426 (diff) |
sched: make double-lock-balance fair
double_lock balance() currently favors logically lower cpus since they
often do not have to release their own lock to acquire a second lock.
The result is that logically higher cpus can get starved when there is
a lot of pressure on the RQs. This can result in higher latencies on
higher cpu-ids.
This patch makes the algorithm more fair by forcing all paths to have
to release both locks before acquiring them again. Since callsites to
double_lock_balance already consider it a potential preemption/reschedule
point, they have the proper logic to recheck for atomicity violations.
Signed-off-by: Gregory Haskins <ghaskins@novell.com>
Diffstat (limited to 'kernel/sched_rt.c')
0 files changed, 0 insertions, 0 deletions