Re: [PATCH v2 (RESEND)] lockdep: Fix fs_reclaim warning.

From: Andrew Morton
Date: Wed Mar 07 2018 - 18:33:12 EST


On Wed, 28 Feb 2018 06:50:02 +0900 Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx> wrote:

>
> This warning is caused by commit d92a8cfcb37ecd13 ("locking/lockdep: Rework
> FS_RECLAIM annotation") which replaced lockdep_set_current_reclaim_state()/
> lockdep_clear_current_reclaim_state() in __perform_reclaim() and
> lockdep_trace_alloc() in slab_pre_alloc_hook() with fs_reclaim_acquire()/
> fs_reclaim_release(). Since __kmalloc_reserve() from __alloc_skb() adds
> __GFP_NOMEMALLOC | __GFP_NOWARN to gfp_mask, and all reclaim path simply
> propagates __GFP_NOMEMALLOC, fs_reclaim_acquire() in slab_pre_alloc_hook()
> is trying to grab the 'fake' lock again when __perform_reclaim() already
> grabbed the 'fake' lock.

That's quite an audit trail.

Shouldn't we be doing a cc:stable here? If so, which patch do we
identify as being fixed, with "Fixes:"? d92a8cfcb37ecd13, I assume?

I'd never even noticed fs_reclaim_acquire() and friends before. I do
wish they had "lockdep" in their names, and a comment to explain what
they do and why they exist.