Re: [PATCH] mm/slub: fix a deadlock in shuffle_freelist()

From: Sebastian Andrzej Siewior
Date: Mon Sep 16 2019 - 05:03:50 EST


On 2019-09-13 12:27:44 [-0400], Qian Cai wrote:
â
> Chain exists of:
> random_write_wait.lock --> &rq->lock --> batched_entropy_u32.lock
>
> Possible unsafe locking scenario:
>
> CPU0 CPU1
> ---- ----
> lock(batched_entropy_u32.lock);
> lock(&rq->lock);
> lock(batched_entropy_u32.lock);
> lock(random_write_wait.lock);

would this deadlock still occur if lockdep knew that
batched_entropy_u32.lock on CPU0 could be acquired at the same time
as CPU1 acquired its batched_entropy_u32.lock?

Sebastian