From: Michal Hocko <mhocko@kernel.org>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
Andrew Morton <akpm@linux-foundation.org>,
Vlastimil Babka <vbabka@suse.cz>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v1] mm: consider non-anonymous thp as unmovable page
Date: Tue, 3 Apr 2018 13:33:43 +0200 [thread overview]
Message-ID: <20180403113343.GQ5501@dhcp22.suse.cz> (raw)
In-Reply-To: <20180403111618.o2w44gtcfzvu3yjv@node.shutemov.name>
On Tue 03-04-18 14:16:18, Kirill A. Shutemov wrote:
> On Tue, Apr 03, 2018 at 12:58:15PM +0200, Michal Hocko wrote:
> > On Tue 03-04-18 13:54:11, Kirill A. Shutemov wrote:
> > > On Tue, Apr 03, 2018 at 10:34:51AM +0200, Michal Hocko wrote:
> > > > On Tue 03-04-18 08:24:06, Naoya Horiguchi wrote:
> > > > > On Tue, Apr 03, 2018 at 09:59:28AM +0200, Michal Hocko wrote:
> > > > > > On Tue 03-04-18 13:46:28, Naoya Horiguchi wrote:
> > > > > > > My testing for the latest kernel supporting thp migration found out an
> > > > > > > infinite loop in offlining the memory block that is filled with shmem
> > > > > > > thps. We can get out of the loop with a signal, but kernel should
> > > > > > > return with failure in this case.
> > > > > > >
> > > > > > > What happens in the loop is that scan_movable_pages() repeats returning
> > > > > > > the same pfn without any progress. That's because page migration always
> > > > > > > fails for shmem thps.
> > > > > >
> > > > > > Why does it fail? Shmem pages should be movable without any issues.
> > > > >
> > > > > .. because try_to_unmap_one() explicitly skips unmapping for migration.
> > > > >
> > > > > #ifdef CONFIG_ARCH_ENABLE_THP_MIGRATION
> > > > > /* PMD-mapped THP migration entry */
> > > > > if (!pvmw.pte && (flags & TTU_MIGRATION)) {
> > > > > VM_BUG_ON_PAGE(PageHuge(page) || !PageTransCompound(page), page);
> > > > >
> > > > > if (!PageAnon(page))
> > > > > continue;
> > > > >
> > > > > set_pmd_migration_entry(&pvmw, page);
> > > > > continue;
> > > > > }
> > > > > #endif
> > > > >
> > > > > When I implemented this code, I felt hard to work on both of anon thp
> > > > > and shmem thp at one time, so I separated the proposal into smaller steps.
> > > > > Shmem uses pagecache so we need some non-trivial effort (including testing)
> > > > > to extend thp migration for shmem. But I think it's a reasonable next step.
> > > >
> > > > OK, I see. I have forgot about this part. Please be explicit about that
> > > > in the changelog. Also the proper fix is to not use movable zone for
> > > > shmem page THP rather than hack around it in the hotplug specific code
> > > > IMHO.
> > >
> > > No. We should just split the page before running
> > > try_to_unmap(TTU_MIGRATION) on the page.
> >
> > If splitting is a preffered way then I do not have any objection. We
> > just cannot keep unmovable objects in the zone movable.
>
> We had anon-thp in movable zone for ages, long before THP migration was
> implemented.
Yeah, and it was a bug and kind of less serious before we made zone
movable kinda more serious. CMA wants to use it for its allocations and
the memory hotplug really depends on migrateability these days.
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2018-04-03 11:33 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-03 4:46 [PATCH v1] mm: consider non-anonymous thp as unmovable page Naoya Horiguchi
2018-04-03 7:59 ` Michal Hocko
2018-04-03 8:24 ` Naoya Horiguchi
2018-04-03 8:34 ` Michal Hocko
2018-04-03 10:54 ` Kirill A. Shutemov
2018-04-03 10:58 ` Michal Hocko
2018-04-03 11:16 ` Kirill A. Shutemov
2018-04-03 11:33 ` Michal Hocko [this message]
2018-04-05 8:59 ` Michal Hocko
2018-04-05 12:28 ` Kirill A. Shutemov
2018-04-05 12:48 ` Michal Hocko
2018-04-05 13:40 ` Kirill A. Shutemov
2018-04-05 15:05 ` Michal Hocko
2018-04-05 15:55 ` Kirill A. Shutemov
2018-04-05 16:03 ` Michal Hocko
2018-04-05 17:58 ` Zi Yan
2018-04-05 19:04 ` Michal Hocko
2018-04-05 19:09 ` Zi Yan
2018-04-06 3:07 ` [PATCH] mm: shmem: enable thp migration (Re: [PATCH v1] mm: consider non-anonymous thp as unmovable page) Naoya Horiguchi
2018-04-06 5:14 ` Naoya Horiguchi
2018-04-06 7:08 ` Michal Hocko
2018-04-09 7:14 ` Naoya Horiguchi
2018-04-10 11:16 ` Kirill A. Shutemov
2018-04-11 9:26 ` Michal Hocko
2018-04-11 19:27 ` Andrew Morton
2018-04-11 19:43 ` Michal Hocko
2018-04-23 3:03 ` Matthew Wilcox
2018-04-23 7:21 ` Naoya Horiguchi
2018-04-05 16:42 ` [PATCH v1] mm: consider non-anonymous thp as unmovable page Sasha Levin
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=20180403113343.GQ5501@dhcp22.suse.cz \
--to=mhocko@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=kirill@shutemov.name \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=n-horiguchi@ah.jp.nec.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 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).