Peter Zijlstra 79b3feffb1 sched: fix regression with sched yield
Balbir Singh reported:

> 1:mon> t
> [c0000000e7677da0] c000000000067de0 .sys_sched_yield+0x6c/0xbc
> [c0000000e7677e30] c000000000008748 syscall_exit+0x0/0x40
> --- Exception: c01 (System Call) at 00000400001d09e4
> SP (4000664cb10) is in userspace
> 1:mon> r
> cpu 0x1: Vector: 300 (Data Access) at [c0000000e7677aa0]
>     pc: c000000000068e50: .yield_task_fair+0x94/0xc4
>     lr: c000000000067de0: .sys_sched_yield+0x6c/0xbc

the check that should have avoided that is:

        /*
         * Are we the only task in the tree?
         */
        if (unlikely(rq->load.weight == curr->se.load.weight))
                return;

But I guess that overlooks rt tasks, they also increase the load.
So I guess something like this ought to fix it..

Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-04-19 19:44:57 +02:00
..
2008-02-14 21:13:33 -08:00
2008-04-19 09:59:43 +10:00
2008-03-05 17:53:33 -08:00
2007-10-18 14:37:24 -07:00
2008-03-30 14:18:41 -07:00
2008-03-30 14:18:41 -07:00
2008-04-17 12:22:31 +02:00
2008-01-25 21:08:29 +01:00
2007-07-16 09:05:50 -07:00
2008-02-14 21:13:32 -08:00
2008-04-02 15:28:19 -07:00
2008-02-08 09:22:31 -08:00
2008-02-08 09:22:31 -08:00
2008-01-25 21:08:24 +01:00
2008-02-13 16:21:18 -08:00
2008-01-25 21:08:24 +01:00
2007-07-16 09:05:50 -07:00
2008-04-17 10:43:01 -04:00
2008-04-18 08:17:57 -07:00
2008-01-30 13:31:20 +01:00
2008-02-06 10:41:02 -08:00
2008-02-06 10:41:08 -08:00
2008-02-05 09:44:07 -08:00
2008-02-08 09:22:29 -08:00
2008-02-08 09:22:39 -08:00
2008-04-17 12:22:31 +02:00
2008-02-08 09:22:31 -08:00