Re: [RFC][PATCH 1/7] sched: Replace post_schedule with a balance callback list

From: Peter Zijlstra
Date: Wed Jun 03 2015 - 04:55:46 EST


A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?

On Wed, Jun 03, 2015 at 04:24:05PM +0800, pang.xunlei@xxxxxxxxxx wrote:
> Hi Peter,
>
> This may increase the overhead of schedule() a bit, as it will have
> more work to do.

How so? It replaces the post_schedule() muck and should not be more
expensive than that.

It will make sched_setscheduler() etc.. a little more expensive, but
that doesn't matter, those are not critical things at all.

> check_class_changed():
> if (prev_class->switched_from)
> prev_class->switched_from(rq, p);
> /* Possble rq->lock 'hole'. */
> p->sched_class->switched_to(rq, p);
>
> For above cases, why can't we just add a judgement in switched_to_fair()
> as follows:
> if (rq != task_rq(p))
> return;

Because its too easy to get wrong. There have been many instances of
bugs caused by this dropping of rq->lock.

And sure you can patch it up, once you find it, but I would really
rather prevent these things if at all possible.
--
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/