On Thu, Aug 22, 2019 at 10:51:30AM +0200, Peter Zijlstra wrote: > On Thu, Aug 22, 2019 at 12:59:48AM -0700, Christoph Hellwig wrote: > > On Thu, Aug 22, 2019 at 10:31:32AM +1000, Dave Chinner wrote: > > > > Btw, I think we should eventually kill off KM_NOFS and just use > > > > PF_MEMALLOC_NOFS in XFS, as the interface makes so much more sense. > > > > But that's something for the future. > > > > > > Yeah, and it's not quite as simple as just using PF_MEMALLOC_NOFS > > > at high levels - we'll still need to annotate callers that use KM_NOFS > > > to avoid lockdep false positives. i.e. any code that can be called from > > > GFP_KERNEL and reclaim context will throw false positives from > > > lockdep if we don't annotate tehm correctly.... > > > > Oh well. For now we have the XFS kmem_wrappers to turn that into > > GFP_NOFS so we shouldn't be too worried, but I think that is something > > we should fix in lockdep to ensure it is generally useful. I've added > > the maintainers and relevant lists to kick off a discussion. > > Strictly speaking the fs_reclaim annotation is no longer part of the > lockdep core, but is simply a fake lock in page_alloc.c and thus falls > under the mm people's purview. > > That said; it should be fairly straight forward to teach > __need_fs_reclaim() about PF_MEMALLOC_NOFS, much like how it already > knows about PF_MEMALLOC. Ah, current_gfp_context() already seems to transfer PF_MEMALLOC_NOFS into the GFP flags. So are we sure it is broken and needs mending?