LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* CFS related question
@ 2008-10-18 20:03 Cyrill Gorcunov
  2008-10-18 20:28 ` Peter Zijlstra
  0 siblings, 1 reply; 5+ messages in thread
From: Cyrill Gorcunov @ 2008-10-18 20:03 UTC (permalink / raw)
  To: Ingo Molnar, Peter Zijlstra; +Cc: LKML

Hi Ingo, Peter,

I just curious, look we have the following

static struct sched_entity *pick_next_entity(struct cfs_rq *cfs_rq)
{
	struct sched_entity *se = NULL;

	if (first_fair(cfs_rq)) {
		se = __pick_next_entity(cfs_rq);
		se = pick_next(cfs_rq, se);
		set_next_entity(cfs_rq, se);
	}

	return se;
}

which I presume may return NULL so the following piece
could fail

static struct task_struct *pick_next_task_fair(struct rq *rq)
{
	struct task_struct *p;
	struct cfs_rq *cfs_rq = &rq->cfs;
	struct sched_entity *se;

	if (unlikely(!cfs_rq->nr_running))
		return NULL;

	do {
-->		se = pick_next_entity(cfs_rq);
--> OOPs	cfs_rq = group_cfs_rq(se);
	} while (cfs_rq);

	p = task_of(se);
	hrtick_start_fair(rq, p);

	return p;
}

Did I miss something? Or it comepletely can NOT happen?

		- Cyrill -

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-10-20 18:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-10-18 20:03 CFS related question Cyrill Gorcunov
2008-10-18 20:28 ` Peter Zijlstra
2008-10-19  5:29   ` Cyrill Gorcunov
2008-10-20 18:12   ` Hiroshi Shimamoto
2008-10-20 18:20     ` Cyrill Gorcunov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).