lkml.org 
[lkml]   [2012]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [Question] sched/rt_mutex: re-enqueue_task on rt_mutex_setprio()
From
Date
On Sat, 2012-07-07 at 14:44 +0900, Namhyung Kim wrote:
> Hi,
>
> I have a question on the code below:
>
> void rt_mutex_setprio(struct task_struct *p, int prio)
> {
> ...
> if (on_rq)
> enqueue_task(rq, p, oldprio < prio ? ENQUEUE_HEAD : 0);
>
> When enqueueing @p with new @prio, it seems put @p at the head of a
> rq if appropriate. I guess it's the case of boosting @p with higher
> priority, right?

Actually, no. We put @p at the head of the queue when unboosting. If a
task is going from a high priority into a lower priority, it is still
treated as "important" for that priority, and is put to the front of the
queue (it was just higher than everything else on that queue). But if we
are boosting a task from a low priority, why put it to the head of other
tasks of its new priority, when those tasks were just higher than this
task, and this task is now just an "equal".

-- Steve

> So Should the conditional be a reverse form (provided
> that less number means higher priority)? Please shed some light on me.
>
> Thanks,
> Namhyung




\
 
 \ /
  Last update: 2012-07-08 04:01    [W:0.046 / U:0.604 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site