All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@suse.cz>
To: "Wang, Yalin" <Yalin.Wang@sonymobile.com>
Cc: "'Minchan Kim'" <minchan@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Rik van Riel <riel@redhat.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Mel Gorman <mgorman@suse.de>, Shaohua Li <shli@kernel.org>
Subject: Re: [RFC] mm: change mm_advise_free to clear page dirty
Date: Mon, 2 Mar 2015 13:33:28 +0100	[thread overview]
Message-ID: <20150302123328.GB26334@dhcp22.suse.cz> (raw)
In-Reply-To: <35FD53F367049845BC99AC72306C23D10458D6173BE0@CNBJMBX05.corpusers.net>

On Sat 28-02-15 10:11:13, Wang, Yalin wrote:
> > -----Original Message-----
> > From: Michal Hocko [mailto:mstsxfx@gmail.com] On Behalf Of Michal Hocko
> > Sent: Saturday, February 28, 2015 5:03 AM
> > To: Wang, Yalin
> > Cc: 'Minchan Kim'; Andrew Morton; linux-kernel@vger.kernel.org; linux-
> > mm@kvack.org; Rik van Riel; Johannes Weiner; Mel Gorman; Shaohua Li
> > Subject: Re: [RFC] mm: change mm_advise_free to clear page dirty
> > 
> > On Fri 27-02-15 11:37:18, Wang, Yalin wrote:
> > > This patch add ClearPageDirty() to clear AnonPage dirty flag,
> > > the Anonpage mapcount must be 1, so that this page is only used by
> > > the current process, not shared by other process like fork().
> > > if not clear page dirty for this anon page, the page will never be
> > > treated as freeable.
> > 
> > Very well spotted! I haven't noticed that during the review.
> > 
> > > Signed-off-by: Yalin Wang <yalin.wang@sonymobile.com>
> > > ---
> > >  mm/madvise.c | 15 +++++----------
> > >  1 file changed, 5 insertions(+), 10 deletions(-)
> > >
> > > diff --git a/mm/madvise.c b/mm/madvise.c
> > > index 6d0fcb8..257925a 100644
> > > --- a/mm/madvise.c
> > > +++ b/mm/madvise.c
> > > @@ -297,22 +297,17 @@ static int madvise_free_pte_range(pmd_t *pmd,
> > unsigned long addr,
> > >  			continue;
> > >
> > >  		page = vm_normal_page(vma, addr, ptent);
> > > -		if (!page)
> > > +		if (!page || !PageAnon(page) || !trylock_page(page))
> > >  			continue;
> > 
> > PageAnon check seems to be redundant because we are not allowing
> > MADV_FREE on any !anon private mappings AFAIR.
> I only see this check:
> /* MADV_FREE works for only anon vma at the moment */
> 	if (vma->vm_file)
> 		return -EINVAL;
> 
> but for file private map, there are also AnonPage sometimes,

AFAIR MADV_FREE was intended only for private anon mappings. What would
be the use case for MADV_FREE on file backed private mappings?

[...]

-- 
Michal Hocko
SUSE Labs

WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@suse.cz>
To: "Wang, Yalin" <Yalin.Wang@sonymobile.com>
Cc: 'Minchan Kim' <minchan@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Rik van Riel <riel@redhat.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Mel Gorman <mgorman@suse.de>, Shaohua Li <shli@kernel.org>
Subject: Re: [RFC] mm: change mm_advise_free to clear page dirty
Date: Mon, 2 Mar 2015 13:33:28 +0100	[thread overview]
Message-ID: <20150302123328.GB26334@dhcp22.suse.cz> (raw)
In-Reply-To: <35FD53F367049845BC99AC72306C23D10458D6173BE0@CNBJMBX05.corpusers.net>

On Sat 28-02-15 10:11:13, Wang, Yalin wrote:
> > -----Original Message-----
> > From: Michal Hocko [mailto:mstsxfx@gmail.com] On Behalf Of Michal Hocko
> > Sent: Saturday, February 28, 2015 5:03 AM
> > To: Wang, Yalin
> > Cc: 'Minchan Kim'; Andrew Morton; linux-kernel@vger.kernel.org; linux-
> > mm@kvack.org; Rik van Riel; Johannes Weiner; Mel Gorman; Shaohua Li
> > Subject: Re: [RFC] mm: change mm_advise_free to clear page dirty
> > 
> > On Fri 27-02-15 11:37:18, Wang, Yalin wrote:
> > > This patch add ClearPageDirty() to clear AnonPage dirty flag,
> > > the Anonpage mapcount must be 1, so that this page is only used by
> > > the current process, not shared by other process like fork().
> > > if not clear page dirty for this anon page, the page will never be
> > > treated as freeable.
> > 
> > Very well spotted! I haven't noticed that during the review.
> > 
> > > Signed-off-by: Yalin Wang <yalin.wang@sonymobile.com>
> > > ---
> > >  mm/madvise.c | 15 +++++----------
> > >  1 file changed, 5 insertions(+), 10 deletions(-)
> > >
> > > diff --git a/mm/madvise.c b/mm/madvise.c
> > > index 6d0fcb8..257925a 100644
> > > --- a/mm/madvise.c
> > > +++ b/mm/madvise.c
> > > @@ -297,22 +297,17 @@ static int madvise_free_pte_range(pmd_t *pmd,
> > unsigned long addr,
> > >  			continue;
> > >
> > >  		page = vm_normal_page(vma, addr, ptent);
> > > -		if (!page)
> > > +		if (!page || !PageAnon(page) || !trylock_page(page))
> > >  			continue;
> > 
> > PageAnon check seems to be redundant because we are not allowing
> > MADV_FREE on any !anon private mappings AFAIR.
> I only see this check:
> /* MADV_FREE works for only anon vma at the moment */
> 	if (vma->vm_file)
> 		return -EINVAL;
> 
> but for file private map, there are also AnonPage sometimes,

AFAIR MADV_FREE was intended only for private anon mappings. What would
be the use case for MADV_FREE on file backed private mappings?

[...]

-- 
Michal Hocko
SUSE Labs

--
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>

  parent reply	other threads:[~2015-03-02 12:33 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-24  8:18 [PATCH RFC 1/4] mm: throttle MADV_FREE Minchan Kim
2015-02-24  8:18 ` Minchan Kim
2015-02-24  8:18 ` [PATCH RFC 2/4] mm: change deactivate_page with deactivate_file_page Minchan Kim
2015-02-24  8:18   ` Minchan Kim
2015-02-24  8:18 ` [PATCH RFC 3/4] mm: move lazy free pages to inactive list Minchan Kim
2015-02-24  8:18   ` Minchan Kim
2015-02-24 16:14   ` Michal Hocko
2015-02-24 16:14     ` Michal Hocko
2015-02-25  0:27     ` Minchan Kim
2015-02-25  0:27       ` Minchan Kim
2015-02-25 15:17       ` Michal Hocko
2015-02-25 15:17         ` Michal Hocko
2015-02-24  8:18 ` [PATCH RFC 4/4] mm: support MADV_FREE in swapless system Minchan Kim
2015-02-24  8:18   ` Minchan Kim
2015-02-24 16:51   ` Michal Hocko
2015-02-24 16:51     ` Michal Hocko
2015-02-25  1:41     ` Minchan Kim
2015-02-25  1:41       ` Minchan Kim
2015-02-24 15:43 ` [PATCH RFC 1/4] mm: throttle MADV_FREE Michal Hocko
2015-02-24 15:43   ` Michal Hocko
2015-02-24 22:54   ` Shaohua Li
2015-02-24 22:54     ` Shaohua Li
2015-02-25 14:13     ` Michal Hocko
2015-02-25 14:13       ` Michal Hocko
2015-02-25  0:08   ` Minchan Kim
2015-02-25  0:08     ` Minchan Kim
2015-02-25  7:11     ` Minchan Kim
2015-02-25  7:11       ` Minchan Kim
2015-02-25 15:07       ` Michal Hocko
2015-02-25 15:07         ` Michal Hocko
2015-02-25 18:37       ` Shaohua Li
2015-02-25 18:37         ` Shaohua Li
2015-02-26  0:42         ` Minchan Kim
2015-02-26  0:42           ` Minchan Kim
2015-02-26 19:04           ` Shaohua Li
2015-02-26 19:04             ` Shaohua Li
2015-02-27  3:37     ` [RFC] mm: change mm_advise_free to clear page dirty Wang, Yalin
2015-02-27  3:37       ` Wang, Yalin
2015-02-27  5:28       ` Minchan Kim
2015-02-27  5:28         ` Minchan Kim
2015-02-27  5:48         ` Wang, Yalin
2015-02-27  5:48           ` Wang, Yalin
2015-02-27  6:44           ` Minchan Kim
2015-02-27  6:44             ` Minchan Kim
2015-02-27  7:50             ` Wang, Yalin
2015-02-27  7:50               ` Wang, Yalin
2015-02-27 13:37               ` Minchan Kim
2015-02-27 13:37                 ` Minchan Kim
2015-02-28 13:50                 ` Minchan Kim
2015-02-28 13:50                   ` Minchan Kim
2015-03-02  1:59                   ` Wang, Yalin
2015-03-02  1:59                     ` Wang, Yalin
2015-03-03  0:42                     ` Minchan Kim
2015-03-03  0:42                       ` Minchan Kim
2015-02-28 13:50                 ` [RFC] mm: change mm_advise_free to clear page dirty, " Minchan Kim
2015-02-27 21:02       ` Michal Hocko
2015-02-27 21:02         ` Michal Hocko
2015-02-28  2:11         ` Wang, Yalin
2015-02-28  2:11           ` Wang, Yalin
2015-02-28  6:01           ` [RFC V2] " Wang, Yalin
2015-02-28  6:01             ` Wang, Yalin
2015-03-02 12:38             ` Michal Hocko
2015-03-02 12:38               ` Michal Hocko
2015-03-03  2:06               ` [RFC V3] " Wang, Yalin
2015-03-03  2:06                 ` Wang, Yalin
2015-02-28 13:55           ` [RFC] " Minchan Kim
2015-02-28 13:55             ` Minchan Kim
2015-03-02  1:53             ` Wang, Yalin
2015-03-02  1:53               ` Wang, Yalin
2015-03-02 12:33           ` Michal Hocko [this message]
2015-03-02 12:33             ` 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=20150302123328.GB26334@dhcp22.suse.cz \
    --to=mhocko@suse.cz \
    --cc=Yalin.Wang@sonymobile.com \
    --cc=akpm@linux-foundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=minchan@kernel.org \
    --cc=riel@redhat.com \
    --cc=shli@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.