From: "Kirill A. Shutemov" <kirill@shutemov.name>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
Dmitry Vyukov <dvyukov@google.com>,
Vlastimil Babka <vbabka@suse.cz>,
David Rientjes <rientjes@google.com>,
Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
Michal Hocko <mhocko@suse.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCHv2 2/2] mm: downgrade VM_BUG in isolate_lru_page() to warning
Date: Wed, 3 Feb 2016 00:03:23 +0200 [thread overview]
Message-ID: <20160202220323.GA7561@node.shutemov.name> (raw)
In-Reply-To: <20160202125844.43f23e2f8637b5a304b887dc@linux-foundation.org>
On Tue, Feb 02, 2016 at 12:58:44PM -0800, Andrew Morton wrote:
> On Tue, 2 Feb 2016 19:21:01 +0300 "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> 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 <kirill.shutemov@linux.intel.com>
> > ---
> > 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?
We will.
If we try to isolate tail page something went wrong. It just shouldn't
happen. Compound pages should be isolated by head page as only whole
compound page is on LRU, not subpages.
If we see tail page here it's most probably from broken driver which
forgot to set VM_IO. With setting VM_IO on such VMA we would avoid useless
scan through pte in them and save some time.
Or maybe something else is broken. Like we forgot to split THP before
migration.
--
Kirill A. Shutemov
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2016-02-02 22:03 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-02 16:20 [PATCHv2 0/2] Fix another VM_BUG_ON_PAGE(PageTail(page)) on mbind(2) Kirill A. Shutemov
2016-02-02 16:21 ` [PATCHv2 1/2] mempolicy: do not try to queue pages from !vma_migratable() Kirill A. Shutemov
2016-02-02 16:21 ` [PATCHv2 2/2] mm: downgrade VM_BUG in isolate_lru_page() to warning Kirill A. Shutemov
2016-02-02 20:58 ` Andrew Morton
2016-02-02 22:03 ` Kirill A. Shutemov [this message]
2016-02-03 14:58 ` Michal Hocko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160202220323.GA7561@node.shutemov.name \
--to=kirill@shutemov.name \
--cc=akpm@linux-foundation.org \
--cc=dvyukov@google.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.com \
--cc=n-horiguchi@ah.jp.nec.com \
--cc=rientjes@google.com \
--cc=vbabka@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox