[PATCH] sched: try to rewrite tg_has_rt_tasks()

From: Hillf Danton
Date: Sat Apr 23 2011 - 09:39:56 EST


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.

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/