From: Dave Jones <davej@redhat.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Sasha Levin <sasha.levin@oracle.com>,
Wanpeng Li <liwanp@linux.vnet.ibm.com>,
Hugh Dickins <hughd@google.com>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] mm/rmap: fix BUG at rmap_walk
Date: Wed, 18 Dec 2013 20:30:32 -0500 [thread overview]
Message-ID: <20131219013032.GA1156@redhat.com> (raw)
In-Reply-To: <20131218165049.32462271f314185aed81de39@linux-foundation.org>
On Wed, Dec 18, 2013 at 04:50:49PM -0800, Andrew Morton wrote:
> On Wed, 18 Dec 2013 19:41:44 -0500 Sasha Levin <sasha.levin@oracle.com> wrote:
>
> > On 12/18/2013 07:28 PM, Andrew Morton wrote:
> > > On Thu, 19 Dec 2013 08:16:35 +0800 Wanpeng Li <liwanp@linux.vnet.ibm.com> wrote:
> > >
> > >> page_get_anon_vma() called in page_referenced_anon() will lock and
> > >> increase the refcount of anon_vma, page won't be locked for anonymous
> > >> page. This patch fix it by skip check anonymous page locked.
> > >>
> > >> [ 588.698828] kernel BUG at mm/rmap.c:1663!
> > >
> > > Why is all this suddenly happening. Did we change something, or did a
> > > new test get added to trinity?
> >
> > Dave has improved mmap testing in trinity, maybe it's related?
>
> Dave, can you please summarise recent trinity changes for us?
In the past, the only mmaps we did were created on startup by the initial process,
and were then inherited by the child processes when they fork()'d.
After the recent changes, that's still true, but in addition, we now have
some smarts so that when a child does a random mmap() call, if it succeeds,
we store the result in a per-child list for re-use in subsequent syscalls by
that same child process.
Another reason that a lot of hugepage stuff seems to be falling out is that
trinity didn't do big mmaps before, because after a few children forked
and the maps got touched, we'd run into oom's pretty quickly.
Now that we have per-child mmapping, sometimes it successfully does a hugepage map.
http://git.codemonkey.org.uk/?p=trinity.git;a=blob_plain;f=syscalls/mmap.c;hb=HEAD
is the code that's generating the random map arguments. It should be pretty obvious,
but holler if there's something that needs explaining.
dirty_mapping() is here http://git.codemonkey.org.uk/?p=trinity.git;a=blob_plain;f=maps.c;hb=HEAD
Dave
--
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:[~2013-12-19 1:30 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-19 0:16 [PATCH] mm/rmap: fix BUG at rmap_walk Wanpeng Li
2013-12-19 0:28 ` Andrew Morton
2013-12-19 0:41 ` Sasha Levin
2013-12-19 0:50 ` Andrew Morton
2013-12-19 1:30 ` Dave Jones [this message]
2013-12-19 0:56 ` Wanpeng Li
2013-12-19 0:58 ` Joonsoo Kim
2013-12-19 1:04 ` Andrew Morton
2013-12-19 1:12 ` Wanpeng Li
2013-12-19 1:14 ` Joonsoo Kim
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=20131219013032.GA1156@redhat.com \
--to=davej@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=hughd@google.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=liwanp@linux.vnet.ibm.com \
--cc=sasha.levin@oracle.com \
/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;
as well as URLs for NNTP newsgroup(s).