Messages in this thread | | | Date | Sun, 19 Jun 2011 16:33:32 +0800 | Subject | Re: [PATCH] sched: update cpupri for runqueue when its priority changes | From | Hillf Danton <> |
| |
On Sun, Jun 19, 2011 at 1:11 AM, Steven Rostedt <rostedt@goodmis.org> wrote: >> There are two cases that NULL is returned in _pick_next_task_rt(), it is the >> second case, after checking rt_rq->rt_nr_running, that is captured, and if >> NULL is returned in the second case, the CPU priority does change. > > The two cases are: > > 1) no rt task exists > 2) the runqueue is throttled. > > We already talked about the throttled case. The case where no rt task > exists means that the last rt task has been dequeued. When that happens, > the cpupri is updated then. I don't see any bug. There's no need to > update cpupri at this point. >
In case 2) , the CPU will be held then by non-RT task, and we have to update priority.
I understand 1) and 2) to be, there has RT tasks on runqueue but they could not run at the moment.
If throttled RQ == no RT tasks, please drop this patch directly.
>> >> In another scenario that has little with {en, de}queue, as shown by >> requeue_task_rt(), the CPU priority will change if other RT tasks exist. >> > > The requeue_task_rt() does not change the priority of the CPU. It just > updates the task in its order of placement in the queue of other tasks > of the same priority. >
You are right, updating CPU priority for requeue is unnecessary.
thanks Hillf
| |