• J
    sched/core: Make dl_b->lock IRQ safe · 49516342
    Juri Lelli 提交于
    Fix this lockdep warning:
    
    [   44.804600] =========================================================
    [   44.805746] [ INFO: possible irq lock inversion dependency detected ]
    [   44.805746] 3.14.0-rc2-test+ #14 Not tainted
    [   44.805746] ---------------------------------------------------------
    [   44.805746] bash/3674 just changed the state of lock:
    [   44.805746]  (&dl_b->lock){+.....}, at: [<ffffffff8106ad15>] sched_rt_handler+0x132/0x248
    [   44.805746] but this lock was taken by another, HARDIRQ-safe lock in the past:
    [   44.805746]  (&rq->lock){-.-.-.}
    
    and interrupts could create inverse lock ordering between them.
    
    [   44.805746]
    [   44.805746] other info that might help us debug this:
    [   44.805746]  Possible interrupt unsafe locking scenario:
    [   44.805746]
    [   44.805746]        CPU0                    CPU1
    [   44.805746]        ----                    ----
    [   44.805746]   lock(&dl_b->lock);
    [   44.805746]                                local_irq_disable();
    [   44.805746]                                lock(&rq->lock);
    [   44.805746]                                lock(&dl_b->lock);
    [   44.805746]   <Interrupt>
    [   44.805746]     lock(&rq->lock);
    
    by making dl_b->lock acquiring always IRQ safe.
    
    Cc: Ingo Molnar <mingo@redhat.com>
    Signed-off-by: NJuri Lelli <juri.lelli@gmail.com>
    Signed-off-by: NPeter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1392107067-19907-3-git-send-email-juri.lelli@gmail.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
    49516342
core.c 187.6 KB