Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F99666
Fix_sched_balance_pair_comment_and_move_lock
No One
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Authored By
harrison-astrodog.net
Feb 26 2015, 11:45 AM
2015-02-26 11:45:01 (UTC+0)
Size
1 KB
Referenced Files
None
Subscribers
None
Fix_sched_balance_pair_comment_and_move_lock
View Options
Index: sys/kern/sched_ule.c
===================================================================
--- sys/kern/sched_ule.c (revision 278968)
+++ sys/kern/sched_ule.c (working copy)
@@ -908,15 +909,21 @@
{
int moved;
int cpu;
-
+
+ /*
+ * Don't bother to lock if balancing doesn't make sense.
+ */
+
+ if (high->tdq_load <= low->tdq_load)
+ return(0);
+
tdq_lock_pair(high, low);
moved = 0;
/*
- * Determine what the imbalance is and then adjust that to how many
- * threads we actually have to give up (transferable).
+ * Move one thread from high to low if high has at least 1
+ * transferable thread.
*/
- if (high->tdq_transferable != 0 && high->tdq_load > low->tdq_load &&
- (moved = tdq_move(high, low)) > 0) {
+ if (high->tdq_transferable == 0 && (moved = tdq_move(high, low)) > 0) {
/*
* In case the target isn't the current cpu IPI it to force a
* reschedule with the new workload.
File Metadata
Details
Attached
Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
99509
Default Alt Text
Fix_sched_balance_pair_comment_and_move_lock (1 KB)
Attached To
Mode
P51 Fix sched_balance_pair comment and move lock
Attached
Detach File
Event Timeline
Log In to Comment