From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752728AbdCAQo5 (ORCPT ); Wed, 1 Mar 2017 11:44:57 -0500 Received: from merlin.infradead.org ([205.233.59.134]:43380 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752233AbdCAQov (ORCPT ); Wed, 1 Mar 2017 11:44:51 -0500 Date: Wed, 1 Mar 2017 17:01:23 +0100 From: Peter Zijlstra To: Nikolay Borisov Cc: linux-kernel@vger.kernel.org, mhocko@kernel.org, vbabka.lkml@gmail.com, linux-mm@kvack.org, mingo@redhat.com Subject: Re: [PATCH v3] lockdep: Teach lockdep about memalloc_noio_save Message-ID: <20170301160123.GE6536@twins.programming.kicks-ass.net> References: <1488367797-27278-1-git-send-email-nborisov@suse.com> <20170301154659.GL6515@twins.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20170301154659.GL6515@twins.programming.kicks-ass.net> User-Agent: Mutt/1.5.23.1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Mar 01, 2017 at 04:46:59PM +0100, Peter Zijlstra wrote: > On Wed, Mar 01, 2017 at 01:29:57PM +0200, Nikolay Borisov wrote: > > Commit 21caf2fc1931 ("mm: teach mm by current context info to not do I/O > > during memory allocation") added the memalloc_noio_(save|restore) functions > > to enable people to modify the MM behavior by disbaling I/O during memory > > allocation. This was further extended in Fixes: 934f3072c17c ("mm: clear > > __GFP_FS when PF_MEMALLOC_NOIO is set"). memalloc_noio_* functions prevent > > allocation paths recursing back into the filesystem without explicitly > > changing the flags for every allocation site. However, lockdep hasn't been > > keeping up with the changes and it entirely misses handling the memalloc_noio > > adjustments. Instead, it is left to the callers of __lockdep_trace_alloc to > > call the functino after they have shaven the respective GFP flags. > > > > Let's fix this by making lockdep explicitly do the shaving of respective > > GFP flags. > > I edited that to look like the below, then my compiler said: > > ../kernel/locking/lockdep.c: In function ‘lockdep_set_current_reclaim_state’: > ../kernel/locking/lockdep.c:3866:33: error: implicit declaration of function ‘memalloc_noio_flags’ [-Werror=implicit-function-declaration] > current->lockdep_reclaim_gfp = memalloc_noio_flags(gfp_mask); > ^~~~~~~~~~~~~~~~~~~ > cc1: some warnings being treated as errors > ../scripts/Makefile.build:294: recipe for target 'kernel/locking/lockdep.o' failed > OK, its because Ingo moved crud around. Ingo, this patch ought to go in tip/locking/core where it will actually compile, but once you merge that sched.h header mucking in things go *boom*. How do you want this?