From: Michal Hocko <mhocko@suse.com>
To: Li Wang <liwang@redhat.com>
Cc: linux-mm@kvack.org, ltp@lists.linux.it,
"Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>,
Zi Yan <zi.yan@cs.rutgers.edu>
Subject: Re: [RFC PATCH] mm: correct status code which move_pages() returns for zero page
Date: Tue, 17 Apr 2018 16:14:42 +0200 [thread overview]
Message-ID: <20180417141442.GG17484@dhcp22.suse.cz> (raw)
In-Reply-To: <20180417130300.GF17484@dhcp22.suse.cz>
On Tue 17-04-18 15:03:00, Michal Hocko wrote:
> On Tue 17-04-18 19:06:15, Li Wang wrote:
> [...]
> > diff --git a/mm/migrate.c b/mm/migrate.c
> > index f65dd69..2b315fc 100644
> > --- a/mm/migrate.c
> > +++ b/mm/migrate.c
> > @@ -1608,7 +1608,7 @@ static int do_pages_move(struct mm_struct *mm, nodemask_t task_nodes,
> > continue;
> >
> > err = store_status(status, i, err, 1);
> > - if (err)
> > + if (!err)
> > goto out_flush;
>
> This change just doesn't make any sense to me. Why should we bail out if
> the store_status is successul? I am trying to wrap my head around the
> test case. 6b9d757ecafc ("mm, numa: rework do_pages_move") tried to
> explain that move_pages has some semantic issues and the new
> implementation might be not 100% replacement. Anyway I am studying the
> test case to come up with a proper fix.
OK, I get what the test cases does. I've failed to see the subtle
difference between alloc_pages_on_node and numa_alloc_onnode. The later
doesn't faul in anything.
Why are we getting EPERM is quite not yet clear to me.
add_page_for_migration uses FOLL_DUMP which should return EFAULT on
zero pages (no_page_table()).
err = PTR_ERR(page);
if (IS_ERR(page))
goto out;
therefore bails out from add_page_for_migration and store_status should
store that value. There shouldn't be any EPERM on the way.
Let me try to reproduce and see what is going on. Btw. which kernel do
you try this on?
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2018-04-17 14:14 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-17 11:06 Li Wang
2018-04-17 13:03 ` Michal Hocko
2018-04-17 14:14 ` Michal Hocko [this message]
2018-04-17 14:28 ` Li Wang
2018-04-17 19:00 ` Michal Hocko
2018-04-17 20:09 ` Zi Yan
2018-04-18 9:07 ` Michal Hocko
2018-04-18 9:19 ` Michal Hocko
2018-04-18 10:39 ` Li Wang
2018-04-18 11:29 ` Michal Hocko
2018-04-18 11:46 ` Li Wang
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=20180417141442.GG17484@dhcp22.suse.cz \
--to=mhocko@suse.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-mm@kvack.org \
--cc=liwang@redhat.com \
--cc=ltp@lists.linux.it \
--cc=zi.yan@cs.rutgers.edu \
/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