• Peter Zijlstra's avatar
    cpuset: Fix memory allocator deadlock · 0fc0287c
    Peter Zijlstra authored
    Juri hit the below lockdep report:
    
    [    4.303391] ======================================================
    [    4.303392] [ INFO: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected ]
    [    4.303394] 3.12.0-dl-peterz+ #144 Not tainted
    [    4.303395] ------------------------------------------------------
    [    4.303397] kworker/u4:3/689 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
    [    4.303399]  (&p->mems_allowed_seq){+.+...}, at: [<ffffffff8114e63c>] new_slab+0x6c/0x290
    [    4.303417]
    [    4.303417] and this task is already holding:
    [    4.303418]  (&(&q->__queue_lock)->rlock){..-...}, at: [<ffffffff812d2dfb>] blk_execute_rq_nowait+0x5b/0x100
    [    4.303431] which would create a new lock dependency:
    [    4.303432]  (&(&q->__queue_lock)->rlock){..-...} -> (&p->mems_allowed_seq){+.+...}
    [    4.303436]
    
    [    4.303898] the dependencies between the lock to be acquired and SOFTIRQ-irq-unsafe lock:
    [    4.303918] -> (&p->mems_allowed_seq){+.+...} ops: 2762 {
    [    4.303922]    H...
    0fc0287c
cpuset.c 77.6 KB