Re: [PATCH] sched: try to rewrite tg_has_rt_tasks()

From: Yong Zhang
Date: Sat Apr 23 2011 - 10:11:46 EST


On Sat, Apr 23, 2011 at 09:39:40PM +0800, Hillf Danton wrote:
> It is reshuffled not based upon scanning the list of existing threads
> but upon the relevant info carried by the input task group. Compared
> with the original, it is simpler, and nothing important is missed.

Oh, no.

There may be sleep task which is attach this group.

Thanks,
Yong

>
> Signed-off-by: Hillf Danton <dhillf@xxxxxxxxx>
> ---
>
> --- a/kernel/sched.c 2011-03-30 03:09:48.000000000 +0800
> +++ b/kernel/sched.c 2011-04-23 21:48:14.000000000 +0800
> @@ -8756,13 +8756,11 @@ static unsigned long to_ratio(u64 period
> /* Must be called with tasklist_lock held */
> static inline int tg_has_rt_tasks(struct task_group *tg)
> {
> - struct task_struct *g, *p;
> -
> - do_each_thread(g, p) {
> - if (rt_task(p) && rt_rq_of_se(&p->rt)->tg == tg)
> + int cpu;
> + for_each_online_cpu(cpu) {
> + if (tg->rt_rq[cpu]->rt_nr_running != 0)
> return 1;
> - } while_each_thread(g, p);
> -
> + }
> return 0;
> }
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/