linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
To: zhong jiang <zhongjiang@huawei.com>
Cc: Michal Hocko <mhocko@kernel.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	"qiuxishi@huawei.com" <qiuxishi@huawei.com>,
	"vbabka@suse.cz" <vbabka@suse.cz>,
	"mm-commits@vger.kernel.org" <mm-commits@vger.kernel.org>,
	Mike Kravetz <mike.kravetz@oracle.com>,
	Mel Gorman <mgorman@suse.de>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>
Subject: Re: + mm-hugetlb-fix-race-when-migrate-pages.patch added to -mm tree
Date: Fri, 22 Jul 2016 07:17:37 +0000	[thread overview]
Message-ID: <20160722071737.GA3785@hori1.linux.bs1.fc.nec.co.jp> (raw)
In-Reply-To: <5790DD4B.2060000@huawei.com>

On Thu, Jul 21, 2016 at 10:33:47PM +0800, zhong jiang wrote:
> On 2016/7/21 22:27, Michal Hocko wrote:
> > On Thu 21-07-16 22:13:55, zhong jiang wrote:
> >> On 2016/7/21 22:01, Michal Hocko wrote:
> >>> On Thu 21-07-16 21:58:23, zhong jiang wrote:
> >>>> On 2016/7/21 21:40, Michal Hocko wrote:
> >>>>> On Thu 21-07-16 21:25:38, zhong jiang wrote:
> >>>>>> On 2016/7/21 20:55, Michal Hocko wrote:
> >>>>> [...]
> >>>>>>> OK, now I understand what you mean. So you mean that a different process
> >>>>>>> initiates the migration while this path copies to pte. That is certainly
> >>>>>>> possible but I still fail to see what is the problem about that.
> >>>>>>> huge_pte_alloc will return the identical pte whether it is regular or
> >>>>>>> migration one. So what exactly is the problem?
> >>>>>>>
> >>>>>> copy_hugetlb_page_range obtain the shared dst_pte, it may be not equal
> >>>>>> to the src_pte.  The dst_pte can come from other process sharing the
> >>>>>> mapping.
> >>>>> So you mean that the parent doesn't have the shared pte while the child
> >>>>> would get one?
> >>>>>  
> >>>>  no, parent must have the shared pte because the the child copy the
> >>>> parent. but parent is not the only source pte we can get. when we
> >>>> scan the maping->i_mmap, firstly ,it can obtain a shared pte from
> >>>> other process. but I am not sure.
> >>> But then all the shared ptes should be identical, no? Or am I missing
> >>> something?
> >>  all the shared ptes should be identical, but  there is  a possibility that new process
> >>  want to share the pte from other process ,  other than the parent,  For the first time
> >>  the process is about to share pte with it.   is it possiblity?
> > I do not see how. They are opperating on the same mapping so I really do
> > not see how different process makes any difference.
> >
>    ok , In a words . the new process get the shared pte, The shared pte not come from the parent process.
>   so , src_pte is not equal to dst_pte.  because src_pte come from the parent, while dst_pte come from
>   other process.    obviously, it is not same. 

I think that (src_pte != dst_pte) can happen and that's ok if there's no
migration entry.  But even if we have both of normal entry and migration entry
for one hugepage, that still looks fine to me because the running migration
operation fails (because there remains mapcounts on the source hugepage),
and all migration entries are turned back to normal entries pointing to the
source hugepage.

Could you try to see and share what happens on your workload with Michal's patch?
If something weird/critical still happens, let's merge your patch.
# I'm trying to write some test cases for it, but might take some time ...

Thanks,
Naoya Horiguchi
--
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>

  reply	other threads:[~2016-07-22  7:19 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <578eb28b.YbRUDGz5RloTVlrE%akpm@linux-foundation.org>
2016-07-21  7:43 ` + mm-hugetlb-fix-race-when-migrate-pages.patch added to -mm tree Michal Hocko
2016-07-21  8:13   ` Naoya Horiguchi
2016-07-21 10:29     ` Michal Hocko
2016-07-21 10:54   ` zhong jiang
2016-07-21 11:27     ` Michal Hocko
2016-07-21 12:14       ` zhong jiang
2016-07-21 12:30         ` Michal Hocko
2016-07-21 12:45           ` zhong jiang
2016-07-21 12:55             ` Michal Hocko
2016-07-21 13:25               ` zhong jiang
2016-07-21 13:40                 ` Michal Hocko
2016-07-21 13:58                   ` zhong jiang
2016-07-21 14:01                     ` Michal Hocko
2016-07-21 14:13                       ` zhong jiang
2016-07-21 14:27                         ` Michal Hocko
2016-07-21 14:33                           ` zhong jiang
2016-07-22  7:17                             ` Naoya Horiguchi [this message]
2016-07-26  7:58                               ` Michal Hocko
2016-07-26 14:04                                 ` zhong jiang
2016-07-27 14:44                                   ` Michal Hocko
2016-07-29 11:27   ` Michal Hocko
2016-07-30  6:33     ` zhong jiang
2016-08-01 11:02       ` Michal Hocko
2016-08-01 15:04         ` zhong jiang
2016-08-01 15:31           ` Michal Hocko
     [not found] <003701d1e328$202ca9d0$6085fd70$@alibaba-inc.com>
2016-07-21  8:19 ` Hillf Danton

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=20160722071737.GA3785@hori1.linux.bs1.fc.nec.co.jp \
    --to=n-horiguchi@ah.jp.nec.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=mhocko@kernel.org \
    --cc=mike.kravetz@oracle.com \
    --cc=mm-commits@vger.kernel.org \
    --cc=qiuxishi@huawei.com \
    --cc=vbabka@suse.cz \
    --cc=zhongjiang@huawei.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).