From: Minchan Kim <minchan@kernel.org>
To: yalin wang <yalin.wang2010@gmail.com>
Cc: Hugh Dickins <hughd@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
"open list:MEMORY MANAGEMENT" <linux-mm@kvack.org>,
lkml <linux-kernel@vger.kernel.org>,
Rik van Riel <riel@redhat.com>, Mel Gorman <mgorman@suse.de>,
Michal Hocko <mhocko@suse.cz>,
Johannes Weiner <hannes@cmpxchg.org>,
"Kirill A. Shutemov" <kirill@shutemov.name>,
Vlastimil Babka <vbabka@suse.cz>
Subject: Re: [PATCH 4/5] mm: simplify reclaim path for MADV_FREE
Date: Tue, 27 Oct 2015 17:10:59 +0900 [thread overview]
Message-ID: <20151027081059.GE26803@bbox> (raw)
In-Reply-To: <32537EDE-3EE6-4C44-B820-5BCAF7A5D535@gmail.com>
On Tue, Oct 27, 2015 at 03:39:16PM +0800, yalin wang wrote:
>
> > On Oct 27, 2015, at 15:09, Minchan Kim <minchan@kernel.org> wrote:
> >
> > Hello Yalin,
> >
> > Sorry for missing you in Cc list.
> > IIRC, mails to send your previous mail address(Yalin.Wang@sonymobile.com)
> > were returned.
> >
> > You added comment bottom line so I'm not sure what PageDirty you meant.
> >
> >> it is wrong here if you only check PageDirty() to decide if the page is freezable or not .
> >> The Anon page are shared by multiple process, _mapcount > 1 ,
> >> so you must check all pt_dirty bit during page_referenced() function,
> >> see this mail thread:
> >> http://ns1.ske-art.com/lists/kernel/msg1934021.html
> >
> > If one of pte among process sharing the page was dirty, the dirtiness should
> > be propagated from pte to PG_dirty by try_to_unmap_one.
> > IOW, if the page doesn't have PG_dirty flag, it means all of process did
> > MADV_FREE.
> >
> > Am I missing something from you question?
> > If so, could you show exact scenario I am missing?
> >
> > Thanks for the interest.
> oh, yeah , that is right , i miss that , pte_dirty will propagate to PG_dirty ,
> so that is correct .
> Generic to say this patch move set_page_dirty() from add_to_swap() to
> try_to_unmap(), i think can change a little about this patch:
>
> @@ -1476,6 +1446,8 @@ static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma,
> ret = SWAP_FAIL;
> goto out_unmap;
> }
> + if (!PageDirty(page))
> + SetPageDirty(page);
> if (list_empty(&mm->mmlist)) {
> spin_lock(&mmlist_lock);
> if (list_empty(&mm->mmlist))
>
> i think this 2 lines can be removed ,
> since pte_dirty have propagated to set_page_dirty() , we dona??t need this line here ,
> otherwise you will always dirty a AnonPage, even it is clean,
> then we will page out this clean page to swap partition one more , this is not needed.
> am i understanding correctly ?
Your understanding is correct.
I will fix it in next spin.
>
> By the way, please change my mail address to yalin.wang2010@gmail.com in CC list .
> Thanks a lot. :)
Thanks for the review!
>
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Minchan Kim <minchan@kernel.org>
To: yalin wang <yalin.wang2010@gmail.com>
Cc: Hugh Dickins <hughd@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
"open list:MEMORY MANAGEMENT" <linux-mm@kvack.org>,
lkml <linux-kernel@vger.kernel.org>,
Rik van Riel <riel@redhat.com>, Mel Gorman <mgorman@suse.de>,
Michal Hocko <mhocko@suse.cz>,
Johannes Weiner <hannes@cmpxchg.org>,
"Kirill A. Shutemov" <kirill@shutemov.name>,
Vlastimil Babka <vbabka@suse.cz>
Subject: Re: [PATCH 4/5] mm: simplify reclaim path for MADV_FREE
Date: Tue, 27 Oct 2015 17:10:59 +0900 [thread overview]
Message-ID: <20151027081059.GE26803@bbox> (raw)
In-Reply-To: <32537EDE-3EE6-4C44-B820-5BCAF7A5D535@gmail.com>
On Tue, Oct 27, 2015 at 03:39:16PM +0800, yalin wang wrote:
>
> > On Oct 27, 2015, at 15:09, Minchan Kim <minchan@kernel.org> wrote:
> >
> > Hello Yalin,
> >
> > Sorry for missing you in Cc list.
> > IIRC, mails to send your previous mail address(Yalin.Wang@sonymobile.com)
> > were returned.
> >
> > You added comment bottom line so I'm not sure what PageDirty you meant.
> >
> >> it is wrong here if you only check PageDirty() to decide if the page is freezable or not .
> >> The Anon page are shared by multiple process, _mapcount > 1 ,
> >> so you must check all pt_dirty bit during page_referenced() function,
> >> see this mail thread:
> >> http://ns1.ske-art.com/lists/kernel/msg1934021.html
> >
> > If one of pte among process sharing the page was dirty, the dirtiness should
> > be propagated from pte to PG_dirty by try_to_unmap_one.
> > IOW, if the page doesn't have PG_dirty flag, it means all of process did
> > MADV_FREE.
> >
> > Am I missing something from you question?
> > If so, could you show exact scenario I am missing?
> >
> > Thanks for the interest.
> oh, yeah , that is right , i miss that , pte_dirty will propagate to PG_dirty ,
> so that is correct .
> Generic to say this patch move set_page_dirty() from add_to_swap() to
> try_to_unmap(), i think can change a little about this patch:
>
> @@ -1476,6 +1446,8 @@ static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma,
> ret = SWAP_FAIL;
> goto out_unmap;
> }
> + if (!PageDirty(page))
> + SetPageDirty(page);
> if (list_empty(&mm->mmlist)) {
> spin_lock(&mmlist_lock);
> if (list_empty(&mm->mmlist))
>
> i think this 2 lines can be removed ,
> since pte_dirty have propagated to set_page_dirty() , we don’t need this line here ,
> otherwise you will always dirty a AnonPage, even it is clean,
> then we will page out this clean page to swap partition one more , this is not needed.
> am i understanding correctly ?
Your understanding is correct.
I will fix it in next spin.
>
> By the way, please change my mail address to yalin.wang2010@gmail.com in CC list .
> Thanks a lot. :)
Thanks for the review!
>
next prev parent reply other threads:[~2015-10-27 8:10 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-19 6:31 [PATCH 0/5] MADV_FREE refactoring and fix KSM page Minchan Kim
2015-10-19 6:31 ` Minchan Kim
2015-10-19 6:31 ` [PATCH 1/5] mm: MADV_FREE trivial clean up Minchan Kim
2015-10-19 6:31 ` Minchan Kim
2015-10-19 6:31 ` [PATCH 2/5] mm: skip huge zero page in MADV_FREE Minchan Kim
2015-10-19 6:31 ` Minchan Kim
2015-10-19 6:31 ` [PATCH 3/5] mm: clear PG_dirty to mark page freeable Minchan Kim
2015-10-19 6:31 ` Minchan Kim
2015-10-27 1:28 ` Hugh Dickins
2015-10-27 1:28 ` Hugh Dickins
2015-10-27 6:50 ` Minchan Kim
2015-10-27 6:50 ` Minchan Kim
2015-10-19 6:31 ` [PATCH 4/5] mm: simplify reclaim path for MADV_FREE Minchan Kim
2015-10-19 6:31 ` Minchan Kim
2015-10-27 2:09 ` Hugh Dickins
2015-10-27 2:09 ` Hugh Dickins
2015-10-27 3:44 ` yalin wang
2015-10-27 3:44 ` yalin wang
2015-10-27 7:09 ` Minchan Kim
2015-10-27 7:09 ` Minchan Kim
2015-10-27 7:39 ` yalin wang
2015-10-27 7:39 ` yalin wang
2015-10-27 8:10 ` Minchan Kim [this message]
2015-10-27 8:10 ` Minchan Kim
2015-10-27 8:52 ` yalin wang
2015-10-27 8:52 ` yalin wang
2015-10-28 4:03 ` yalin wang
2015-10-28 4:03 ` yalin wang
2015-10-27 6:54 ` Minchan Kim
2015-10-27 6:54 ` Minchan Kim
2015-10-19 6:31 ` [PATCH 5/5] mm: mark stable page dirty in KSM Minchan Kim
2015-10-19 6:31 ` Minchan Kim
2015-10-27 2:23 ` Hugh Dickins
2015-10-27 2:23 ` Hugh Dickins
2015-10-27 6:58 ` Minchan Kim
2015-10-27 6:58 ` Minchan Kim
2015-10-19 10:01 ` [PATCH 0/5] MADV_FREE refactoring and fix KSM page Minchan Kim
2015-10-19 10:01 ` Minchan Kim
2015-10-20 1:38 ` Minchan Kim
2015-10-20 1:38 ` Minchan Kim
2015-10-20 7:21 ` Minchan Kim
2015-10-20 7:21 ` Minchan Kim
2015-10-20 7:27 ` Minchan Kim
2015-10-20 7:27 ` Minchan Kim
2015-10-20 21:36 ` Andrew Morton
2015-10-20 21:36 ` Andrew Morton
2015-10-20 22:43 ` Kirill A. Shutemov
2015-10-20 22:43 ` Kirill A. Shutemov
2015-10-21 5:11 ` Minchan Kim
2015-10-21 5:11 ` Minchan Kim
2015-10-21 7:50 ` Kirill A. Shutemov
2015-10-21 7:50 ` Kirill A. Shutemov
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=20151027081059.GE26803@bbox \
--to=minchan@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=kirill@shutemov.name \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=mhocko@suse.cz \
--cc=riel@redhat.com \
--cc=vbabka@suse.cz \
--cc=yalin.wang2010@gmail.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 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.