From patchwork Fri Jan 6 14:18:45 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Hocko X-Patchwork-Id: 9501215 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id C71C0606E0 for ; Fri, 6 Jan 2017 14:34:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9A94E284BB for ; Fri, 6 Jan 2017 14:34:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8F76C284C8; Fri, 6 Jan 2017 14:34:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.4 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 26693284BB for ; Fri, 6 Jan 2017 14:34:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754098AbdAFOTe (ORCPT ); Fri, 6 Jan 2017 09:19:34 -0500 Received: from mail-pg0-f65.google.com ([74.125.83.65]:32941 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752041AbdAFOTG (ORCPT ); Fri, 6 Jan 2017 09:19:06 -0500 Received: by mail-pg0-f65.google.com with SMTP id g1so44180887pgn.0; Fri, 06 Jan 2017 06:19:06 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=pDj7f+lwBevUOIDP6mqD10F1GgiUEpb1ad2KIfmfdB4=; b=FdxfUSP8GsCGDGhFG6PjmZWQ/mn3IS/hTwmW6hZb37XCR8A+yFnXFEHzEtrRDfeKxT wr6/xmvaa7n06JZX8xFyvHPZve3smkOTD2+Y4vu83USKu0TsWQ/uFCYcqe4iklH4hX9v RUCIBxD82y6fvoKHEhVRuZNPo74fwnx+rXPndOX77Iko+WScW7t61HRUIunehxYYzR9r lN/UroDkIIz1tNHsKSJRe3ZQgoQcqv2nx2PELsIMKX0DqUB3GS8VgslzOfoDOnR58/10 xlGLC7w3UwcVBiX8FFk60stivscc6i90QDWNh7jM2SStxt0tmH0/Tf1ttixzXbfeZmnu ZySQ== X-Gm-Message-State: AIkVDXLDiBs86G1nZ70vxWXtxseGcVtZdJ5AFkeu1lvDgDXTh+pswHwRk2VGb/ac8jN7/Q== X-Received: by 10.99.146.13 with SMTP id o13mr143666766pgd.3.1483712345942; Fri, 06 Jan 2017 06:19:05 -0800 (PST) Received: from tiehlicka.suse.cz ([213.151.95.130]) by smtp.gmail.com with ESMTPSA id p68sm160501937pfd.11.2017.01.06.06.19.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 06 Jan 2017 06:19:05 -0800 (PST) From: Michal Hocko To: , Cc: Andrew Morton , Dave Chinner , djwong@kernel.org, "Theodore Ts'o" , Chris Mason , David Sterba , Jan Kara , ceph-devel@vger.kernel.org, cluster-devel@redhat.com, linux-nfs@vger.kernel.org, logfs@logfs.org, linux-xfs@vger.kernel.org, linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-mtd@lists.infradead.org, reiserfs-devel@vger.kernel.org, linux-ntfs-dev@lists.sourceforge.net, linux-f2fs-devel@lists.sourceforge.net, linux-afs@lists.infradead.org, LKML , Michal Hocko Subject: [DEBUG PATCH 2/2] silent warnings which we cannot do anything about Date: Fri, 6 Jan 2017 15:18:45 +0100 Message-Id: <20170106141845.24362-3-mhocko@kernel.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170106141845.24362-1-mhocko@kernel.org> References: <20170106141107.23953-1-mhocko@kernel.org> <20170106141845.24362-1-mhocko@kernel.org> Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Michal Hocko THIS PATCH IS FOR TESTING ONLY AND NOT MEANT TO HIT LINUS TREE There are some code paths used by all the filesystems which we cannot change to drop the GFP_NOFS, yet they generate a lot of warnings. Provide {disable,enable}_scope_gfp_check to silence those. alloc_page_buffers and grow_dev_page are silenced right away. Signed-off-by: Michal Hocko --- fs/buffer.c | 4 ++++ include/linux/sched.h | 11 +++++++++++ mm/page_alloc.c | 3 +++ 3 files changed, 18 insertions(+) diff --git a/fs/buffer.c b/fs/buffer.c index 28484b3ebc98..dbe529e7881b 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -873,7 +873,9 @@ struct buffer_head *alloc_page_buffers(struct page *page, unsigned long size, head = NULL; offset = PAGE_SIZE; while ((offset -= size) >= 0) { + disable_scope_gfp_check(); bh = alloc_buffer_head(GFP_NOFS); + enable_scope_gfp_check(); if (!bh) goto no_grow; @@ -1003,7 +1005,9 @@ grow_dev_page(struct block_device *bdev, sector_t block, */ gfp_mask |= __GFP_NOFAIL; + disable_scope_gfp_check(); page = find_or_create_page(inode->i_mapping, index, gfp_mask); + enable_scope_gfp_check(); if (!page) return ret; diff --git a/include/linux/sched.h b/include/linux/sched.h index 59428926e989..f60294732ed5 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1988,6 +1988,7 @@ struct task_struct { /* A live task holds one reference. */ atomic_t stack_refcount; #endif + bool disable_scope_gfp_warn; unsigned long nofs_caller; unsigned long noio_caller; /* CPU-specific state of this task */ @@ -2390,6 +2391,16 @@ static inline unsigned int __memalloc_nofs_save(unsigned long caller) return flags; } +static inline void disable_scope_gfp_check(void) +{ + current->disable_scope_gfp_warn = true; +} + +static inline void enable_scope_gfp_check(void) +{ + current->disable_scope_gfp_warn = false; +} + #define memalloc_nofs_save() __memalloc_nofs_save(_RET_IP_) static inline void memalloc_nofs_restore(unsigned int flags) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 87a2bb5262b2..5405278bd733 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -3762,6 +3762,9 @@ void debug_scope_gfp_context(gfp_t gfp_mask) if (!(gfp_mask & __GFP_DIRECT_RECLAIM)) return; + if (current->disable_scope_gfp_warn) + return; + if (current->flags & PF_MEMALLOC_NOIO) restrict_mask = __GFP_IO; else if ((current->flags & PF_MEMALLOC_NOFS) && (gfp_mask & __GFP_IO))