From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934281AbcBBU6u (ORCPT ); Tue, 2 Feb 2016 15:58:50 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:53054 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755459AbcBBU6p (ORCPT ); Tue, 2 Feb 2016 15:58:45 -0500 Date: Tue, 2 Feb 2016 12:58:44 -0800 From: Andrew Morton To: "Kirill A. Shutemov" Cc: Dmitry Vyukov , Vlastimil Babka , David Rientjes , Naoya Horiguchi , Michal Hocko , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCHv2 2/2] mm: downgrade VM_BUG in isolate_lru_page() to warning Message-Id: <20160202125844.43f23e2f8637b5a304b887dc@linux-foundation.org> In-Reply-To: <1454430061-116955-3-git-send-email-kirill.shutemov@linux.intel.com> References: <1454430061-116955-1-git-send-email-kirill.shutemov@linux.intel.com> <1454430061-116955-3-git-send-email-kirill.shutemov@linux.intel.com> X-Mailer: Sylpheed 3.4.1 (GTK+ 2.24.23; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 2 Feb 2016 19:21:01 +0300 "Kirill A. Shutemov" wrote: > Calling isolate_lru_page() is wrong and shouldn't happen, but it not > nessesary fatal: the page just will not be isolated if it's not on LRU. > > Let's downgrade the VM_BUG_ON_PAGE() to WARN_RATELIMIT(). > > Signed-off-by: Kirill A. Shutemov > --- > mm/vmscan.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/vmscan.c b/mm/vmscan.c > index eb3dd37ccd7c..71b1c29948db 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -1443,7 +1443,7 @@ int isolate_lru_page(struct page *page) > int ret = -EBUSY; > > VM_BUG_ON_PAGE(!page_count(page), page); > - VM_BUG_ON_PAGE(PageTail(page), page); > + WARN_RATELIMIT(PageTail(page), "trying to isolate tail page"); > > if (PageLRU(page)) { > struct zone *zone = page_zone(page); Confused. I thought mm-fix-bogus-vm_bug_on_page-in-isolate_lru_page.patch: --- a/mm/vmscan.c~mm-fix-bogus-vm_bug_on_page-in-isolate_lru_page +++ a/mm/vmscan.c @@ -1443,7 +1443,7 @@ int isolate_lru_page(struct page *page) int ret = -EBUSY; VM_BUG_ON_PAGE(!page_count(page), page); - VM_BUG_ON_PAGE(PageTail(page), page); + VM_BUG_ON_PAGE(PageLRU(page) && PageTail(page), page); if (PageLRU(page)) { struct zone *zone = page_zone(page); was better. We *know* that we sometimes encounter LRU pages here and we know that we handle them correctly. So why scare users by blurting out a warning about something for which we won't be taking any action?