Re: [PATCH] sched: properly account IRQ and RT load in SCHED_OTHER load balancing

Ingo Molnar
2008-08-21T10:47:54Z

* Peter Zijlstra <peterz@infradead.org> wrote:

> Subject: sched: properly account IRQ and RT load in SCHED_OTHER load balancing
> From: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Date: Thu Aug 14 09:31:20 CEST 2008
>
> We used to account for RT tasks in SCHED_OTHER load-balancing by giving
> them some phantom weight.
>
> This is incorrect because there is no saying how much time a RT task
> will actually consume. Also, it doesn't take IRQ time into account.
>
> This patch tries to solve this issue by accounting the time spend on
> both Real-Time tasks and IRQ handling, and using that to
> proportionally inflate the SCHED_OTHER load.

applied it to tip/sched/devel for more testing.

this bit:

> +void sched_irq_enter(void)
> +{
> + if (!in_irq()) {
> + struct rq *rq = this_rq();
> +
> + update_rq_clock(rq);
> + rq->irq_stamp = rq->clock;
> + }

if we do this we might as well use the opportunity to do accurate IRQ
(and softirq) CPU time accounting. I.e. right now it only drives
balancing, but isnt fed into the wider IRQ/softirq /proc usage stats.

Ingo