• Ingo Molnar's avatar
    sched: fix init_idle()'s use of sched_clock() · 5cbd54ef
    Ingo Molnar authored
    Maciej Rutecki reported:
    
    > I have this bug during suspend to disk:
    >
    > [  188.592151] Enabling non-boot CPUs ...
    > [  188.592151] SMP alternatives: switching to SMP code
    > [  188.666058] BUG: using smp_processor_id() in preemptible
    > [00000000]
    > code: suspend_to_disk/2934
    > [  188.666064] caller is native_sched_clock+0x2b/0x80
    
    Which, as noted by Linus, was caused by me, via:
    
      7cbaef9c "sched: optimize sched_clock() a bit"
    
    Move the rq locking a bit earlier in the initialization sequence,
    that will make the sched_clock() call in init_idle() non-preemptible.
    Reported-by: default avatarMaciej Rutecki <maciej.rutecki@gmail.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    5cbd54ef
sched.c 225 KB