All of lore.kernel.org
 help / color / mirror / Atom feed
From: Minchan Kim <minchan@kernel.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Hugh Dickins <hughd@google.com>, 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 0/5] MADV_FREE refactoring and fix KSM page
Date: Mon, 19 Oct 2015 19:01:50 +0900	[thread overview]
Message-ID: <20151019100150.GA5194@bbox> (raw)
In-Reply-To: <1445236307-895-1-git-send-email-minchan@kernel.org>

On Mon, Oct 19, 2015 at 03:31:42PM +0900, Minchan Kim wrote:
> Hello, it's too late since I sent previos patch.
> https://lkml.org/lkml/2015/6/3/37
> 
> This patch is alomost new compared to previos approach.
> I think this is more simple, clear and easy to review.
> 
> One thing I should notice is that I have tested this patch
> and couldn't find any critical problem so I rebased patchset
> onto recent mmotm(ie, mmotm-2015-10-15-15-20) to send formal
> patchset. Unfortunately, I start to see sudden discarding of
> the page we shouldn't do. IOW, application's valid anonymous page
> was disappeared suddenly.
> 
> When I look through THP changes, I think we could lose
> dirty bit of pte between freeze_page and unfreeze_page
> when we mark it as migration entry and restore it.
> So, I added below simple code without enough considering
> and cannot see the problem any more.
> I hope it's good hint to find right fix this problem.
> 
> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> index d5ea516ffb54..e881c04f5950 100644
> --- a/mm/huge_memory.c
> +++ b/mm/huge_memory.c
> @@ -3138,6 +3138,9 @@ static void unfreeze_page_vma(struct vm_area_struct *vma, struct page *page,
>  		if (is_write_migration_entry(swp_entry))
>  			entry = maybe_mkwrite(entry, vma);
>  
> +		if (PageDirty(page))
> +			SetPageDirty(page);

The condition of PageDirty was typo. I didn't add the condition.
Just added.

                SetPageDirty(page);

--
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: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Hugh Dickins <hughd@google.com>, 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 0/5] MADV_FREE refactoring and fix KSM page
Date: Mon, 19 Oct 2015 19:01:50 +0900	[thread overview]
Message-ID: <20151019100150.GA5194@bbox> (raw)
In-Reply-To: <1445236307-895-1-git-send-email-minchan@kernel.org>

On Mon, Oct 19, 2015 at 03:31:42PM +0900, Minchan Kim wrote:
> Hello, it's too late since I sent previos patch.
> https://lkml.org/lkml/2015/6/3/37
> 
> This patch is alomost new compared to previos approach.
> I think this is more simple, clear and easy to review.
> 
> One thing I should notice is that I have tested this patch
> and couldn't find any critical problem so I rebased patchset
> onto recent mmotm(ie, mmotm-2015-10-15-15-20) to send formal
> patchset. Unfortunately, I start to see sudden discarding of
> the page we shouldn't do. IOW, application's valid anonymous page
> was disappeared suddenly.
> 
> When I look through THP changes, I think we could lose
> dirty bit of pte between freeze_page and unfreeze_page
> when we mark it as migration entry and restore it.
> So, I added below simple code without enough considering
> and cannot see the problem any more.
> I hope it's good hint to find right fix this problem.
> 
> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> index d5ea516ffb54..e881c04f5950 100644
> --- a/mm/huge_memory.c
> +++ b/mm/huge_memory.c
> @@ -3138,6 +3138,9 @@ static void unfreeze_page_vma(struct vm_area_struct *vma, struct page *page,
>  		if (is_write_migration_entry(swp_entry))
>  			entry = maybe_mkwrite(entry, vma);
>  
> +		if (PageDirty(page))
> +			SetPageDirty(page);

The condition of PageDirty was typo. I didn't add the condition.
Just added.

                SetPageDirty(page);

  parent reply	other threads:[~2015-10-19  9:58 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
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 ` Minchan Kim [this message]
2015-10-19 10:01   ` [PATCH 0/5] MADV_FREE refactoring and fix KSM page 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=20151019100150.GA5194@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 \
    /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.