From: Balbir Singh <bsingharora@gmail.com>
To: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
Hugh Dickins <hughd@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
Dave Hansen <dave.hansen@intel.com>,
Andrea Arcangeli <aarcange@redhat.com>,
Mel Gorman <mgorman@techsingularity.net>,
Michal Hocko <mhocko@kernel.org>,
Vlastimil Babka <vbabka@suse.cz>,
Pavel Emelyanov <xemul@parallels.com>,
Zi Yan <zi.yan@cs.rutgers.edu>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Naoya Horiguchi <nao.horiguchi@gmail.com>
Subject: Re: [PATCH v2 00/12] mm: page migration enhancement for thp
Date: Thu, 10 Nov 2016 08:28:54 +1100 [thread overview]
Message-ID: <db645410-c8ad-8cbb-9124-35e484775986@gmail.com> (raw)
In-Reply-To: <20161109045926.GB7770@hori1.linux.bs1.fc.nec.co.jp>
On 09/11/16 15:59, Naoya Horiguchi wrote:
> On Wed, Nov 09, 2016 at 01:32:04PM +1100, Balbir Singh wrote:
>> On 08/11/16 10:31, Naoya Horiguchi wrote:
>>> Hi everyone,
>>>
>>> I've updated thp migration patches for v4.9-rc2-mmotm-2016-10-27-18-27
>>> with feedbacks for ver.1.
>>>
>>> General description (no change since ver.1)
>>> ===========================================
>>>
>>> This patchset enhances page migration functionality to handle thp migration
>>> for various page migration's callers:
>>> - mbind(2)
>>> - move_pages(2)
>>> - migrate_pages(2)
>>> - cgroup/cpuset migration
>>> - memory hotremove
>>> - soft offline
>>>
>>> The main benefit is that we can avoid unnecessary thp splits, which helps us
>>> avoid performance decrease when your applications handles NUMA optimization on
>>> their own.
>>>
>>> The implementation is similar to that of normal page migration, the key point
>>> is that we modify a pmd to a pmd migration entry in swap-entry like format.
>>>
>>> Changes / Notes
>>> ===============
>>>
>>> - pmd_present() in x86 checks _PAGE_PRESENT, _PAGE_PROTNONE and _PAGE_PSE
>>> bits together, which makes implementing thp migration a bit hard because
>>> _PAGE_PSE bit is currently used by soft-dirty in swap-entry format.
>>> I was advised to dropping _PAGE_PSE in pmd_present(), but I don't think
>>> of the justification, so I keep it in this version. Instead, my approach
>>> is to move _PAGE_SWP_SOFT_DIRTY to bit 6 (unused) and reserve bit 7 for
>>> pmd non-present cases.
>>
>> Thanks, IIRC
>>
>> pmd_present = _PAGE_PRESENT | _PAGE_PROTNONE | _PAGE_PSE
>>
>> AutoNUMA balancing would change it to
>>
>> pmd_present = _PAGE_PROTNONE | _PAGE_PSE
>>
>> and PMD_SWP_SOFT_DIRTY would make it
>>
>> pmd_present = _PAGE_PSE
>>
>> What you seem to be suggesting in your comment is that
>>
>> pmd_present should be _PAGE_PRESENT | _PAGE_PROTNONE
>
> This (no _PAGE_PSE) was a possibile solution, and as I described I gave up
> this solution, because I noticed that what I actually wanted was that
> pmd_present() certainly returns false during thp migration and that's done
> by moving _PAGE_SWP_SOFT_DIRTY. So
>
> pmd_present = _PAGE_PRESENT | _PAGE_PROTNONE | _PAGE_PSE
>
> is still correct in this patchset.
>
Thanks, I was wondering if there is any advantage or you felt its
safer not to change pmd_present().
>>
>> Isn't that good enough?
>>
>> For THP migration I guess we use
>>
>> _PAGE_PRESENT | _PAGE_PROTNONE | is_migration_entry(pmd)
>
> Though I might misread your notations, I hope that the following code
> seems describe itself well.
>
> static inline int is_pmd_migration_entry(pmd_t pmd)
> {
> return !pmd_present(pmd) && is_migration_entry(pmd_to_swp_entry(pmd));
> }
>
Thanks, yes my notation is not the best.
Balbir Singh.
next prev parent reply other threads:[~2016-11-09 21:29 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-07 23:31 Naoya Horiguchi
2016-11-07 23:31 ` [PATCH v2 01/12] mm: x86: move _PAGE_SWP_SOFT_DIRTY from bit 7 to bit 6 Naoya Horiguchi
2016-11-10 23:29 ` Dave Hansen
2016-11-11 1:08 ` Naoya Horiguchi
2016-11-11 11:12 ` Kirill A. Shutemov
2016-11-07 23:31 ` [PATCH v2 02/12] mm: mempolicy: add queue_pages_node_check() Naoya Horiguchi
2016-11-07 23:31 ` [PATCH v2 03/12] mm: thp: introduce separate TTU flag for thp freezing Naoya Horiguchi
2016-11-10 8:31 ` Anshuman Khandual
2016-11-10 9:09 ` Naoya Horiguchi
2016-11-11 3:18 ` Anshuman Khandual
2016-11-11 11:16 ` Kirill A. Shutemov
2016-11-07 23:31 ` [PATCH v2 04/12] mm: thp: introduce CONFIG_ARCH_ENABLE_THP_MIGRATION Naoya Horiguchi
2016-11-11 11:18 ` Kirill A. Shutemov
2016-11-15 2:05 ` Naoya Horiguchi
2016-11-28 14:21 ` Michal Hocko
2016-11-29 7:50 ` Naoya Horiguchi
2016-11-29 8:45 ` Michal Hocko
2016-11-07 23:31 ` [PATCH v2 05/12] mm: thp: add core routines for thp/pmd migration Naoya Horiguchi
2016-11-08 3:05 ` kbuild test robot
2016-11-08 6:46 ` Naoya Horiguchi
2016-11-08 8:13 ` Anshuman Khandual
2016-11-08 8:16 ` Naoya Horiguchi
2016-11-10 8:29 ` Anshuman Khandual
2016-11-10 9:43 ` Naoya Horiguchi
2016-11-14 11:45 ` Kirill A. Shutemov
2016-11-15 4:57 ` Naoya Horiguchi
2016-11-28 14:31 ` Michal Hocko
2016-11-29 7:57 ` Naoya Horiguchi
2016-11-07 23:31 ` [PATCH v2 06/12] mm: thp: enable thp migration in generic path Naoya Horiguchi
2016-11-28 14:33 ` Michal Hocko
2016-11-29 8:16 ` Naoya Horiguchi
2016-11-07 23:31 ` [PATCH v2 07/12] mm: thp: check pmd migration entry in common path Naoya Horiguchi
2016-11-08 0:23 ` kbuild test robot
2016-11-08 1:22 ` Naoya Horiguchi
2016-11-10 8:36 ` Anshuman Khandual
2016-11-10 9:12 ` Naoya Horiguchi
2016-11-10 9:08 ` Hillf Danton
2016-11-10 9:21 ` Naoya Horiguchi
2016-11-10 9:28 ` Hillf Danton
2016-11-10 9:34 ` Naoya Horiguchi
2016-11-17 23:56 ` Kirill A. Shutemov
2016-11-29 6:46 ` Naoya Horiguchi
2016-11-28 14:35 ` Michal Hocko
2016-11-07 23:31 ` [PATCH v2 08/12] mm: soft-dirty: keep soft-dirty bits over thp migration Naoya Horiguchi
2016-11-10 8:38 ` Anshuman Khandual
2016-11-10 9:13 ` Naoya Horiguchi
2016-11-07 23:31 ` [PATCH v2 09/12] mm: hwpoison: soft offline supports " Naoya Horiguchi
2016-11-10 10:31 ` Balbir Singh
2016-11-10 23:58 ` Naoya Horiguchi
2016-11-14 23:22 ` Balbir Singh
2016-11-07 23:31 ` [PATCH v2 10/12] mm: mempolicy: mbind and migrate_pages support " Naoya Horiguchi
2016-11-25 12:27 ` Anshuman Khandual
2016-11-29 7:07 ` Naoya Horiguchi
2016-11-07 23:31 ` [PATCH v2 11/12] mm: migrate: move_pages() supports " Naoya Horiguchi
2016-11-18 0:01 ` Kirill A. Shutemov
2016-11-07 23:31 ` [PATCH v2 12/12] mm: memory_hotplug: memory hotremove " Naoya Horiguchi
2016-11-08 0:29 ` kbuild test robot
2016-11-08 0:30 ` kbuild test robot
2016-11-08 1:36 ` Naoya Horiguchi
2016-11-08 1:41 ` [PATCH] mm: fix unused variable warning Naoya Horiguchi
2016-11-09 2:32 ` [PATCH v2 00/12] mm: page migration enhancement for thp Balbir Singh
2016-11-09 4:59 ` Naoya Horiguchi
2016-11-09 21:28 ` Balbir Singh [this message]
2016-11-09 10:33 ` Anshuman Khandual
2016-11-09 23:52 ` Naoya Horiguchi
2016-11-10 14:01 ` Zi Yan
2016-11-11 3:48 ` Anshuman Khandual
2017-01-30 10:47 ` Anshuman Khandual
2017-01-31 19:54 ` Zi Yan
2017-02-03 3:12 ` Hillf Danton
2017-02-03 3:24 ` Zi Yan
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=db645410-c8ad-8cbb-9124-35e484775986@gmail.com \
--to=bsingharora@gmail.com \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=dave.hansen@intel.com \
--cc=hughd@google.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=mhocko@kernel.org \
--cc=n-horiguchi@ah.jp.nec.com \
--cc=nao.horiguchi@gmail.com \
--cc=vbabka@suse.cz \
--cc=xemul@parallels.com \
--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
all inboxes | Powered by JetHome®