Siddha, Suresh B wrote:
On Fri, Apr 21, 2006 at 02:22:57PM +1000, Peter Williams wrote:
@@ -2052,7 +2055,13 @@ static int move_tasks(runqueue_t *this_r
rem_load_move = max_load_move;
pinned = 1;
- this_min_prio = this_rq->curr->prio;
+ this_best_prio = rq_best_prio(this_rq);
+ busiest_best_prio = rq_best_prio(busiest);
+ /*
+ * Enable handling of the case where there is more than one task
+ * with the best priority.
+ */
+ busiest_best_prio_seen = busiest_best_prio == busiest->curr->prio;
From this hunk, it seems like we don't want to override the skip of highest
priority task as long as there is one such task in active list(even though
there may be few such tasks on expired list). Right?
No, but nearly. We don't want to override the skip of a task with the
highest priority until we've skipped one such task OR we're sure one
such task will be skipped (e.g. because it's the currently running task).
And why?
If there are more than one task with the highest priority then it is
desirable to move one of them by overriding the skip mechanism as it can
be considered the second highest priority task. This initialization
just checks to see if the currently running task is one of the highest
priority tasks. If it is then it's OK to move the first task we find
that also has the same priority otherwise we wait until we've skipped
one before we move one.
If we fix the above, we don't need busiest_best_prio_seen. Once we move one
highest priority task, we are changing this_best_prio anyhow right?
Yes, but this is recording the fact that we've skipped one and that it's
now OK to move one.
This patch doesn't address the issue where we can skip the highest priority
task movement if there is only one such task on the busy runqueue
(and is on the expired list..)
I think that it does.
I can send a fix if I understand your intention for the above hunk.
If you think that there's still a problem after the above explanation
then sending a patch might help me understand why you think it's wrong.
Peter
--
Peter Williams [email protected]
"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce
-
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]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]