From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751271AbdBWQMm (ORCPT ); Thu, 23 Feb 2017 11:12:42 -0500 Received: from mail-sn1nam02on0103.outbound.protection.outlook.com ([104.47.36.103]:38603 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751207AbdBWQMk (ORCPT ); Thu, 23 Feb 2017 11:12:40 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=zi.yan@cs.rutgers.edu; Message-ID: <58AF09D9.3050401@cs.rutgers.edu> Date: Thu, 23 Feb 2017 10:12:09 -0600 From: Zi Yan User-Agent: Postbox 5.0.10 (Windows/20170123) MIME-Version: 1.0 To: , Andrea Arcangeli , Michal Hocko CC: , , , , , , , Subject: Re: [PATCH v3 00/14] mm: page migration enhancement for thp References: <20170205161252.85004-1-zi.yan@sent.com> In-Reply-To: <20170205161252.85004-1-zi.yan@sent.com> X-Enigmail-Version: 1.2.3 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enigE8B6B278229F6B3388EF32F3" X-Originating-IP: [12.1.252.66] X-ClientProxiedBy: CY4PR21CA0005.namprd21.prod.outlook.com (10.172.122.143) To MWHPR14MB1661.namprd14.prod.outlook.com (10.171.146.143) X-MS-Office365-Filtering-Correlation-Id: a31535ab-0964-4122-02d6-08d45c06c12b X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:MWHPR14MB1661; X-Microsoft-Exchange-Diagnostics: 1;MWHPR14MB1661;3:QJhirsIpet2ZeCYqCCgJxUIVtTgAoks5yu4y1aJSqINIJBu9Z5nsSDsP5U5KbNuP2xSp+w6i3w7RwEbmiDwhceKjjsS+vSJ908rmCg0I6xtDlR8WC7JkuaMDA2agpwDwVgNkgyo2d+ZRdukB7WxmSeZkemaAl/ZLh9/OgzUgx7laBb96VS8Li4ShdnmeQFVEMchALM/RkSpA9QqRg528MEvmGuywgGzU/RzCVpR4Jf2RtDHp4xFmA9oCb3wbGLBhmHuLqQm5Ou6dzSHXfA/Duw==;25:kDThU1C1K9QvQVuAVAoYX/8qeUoOL7M6rYlhUsrPrWfdK2KnawHEhrZAhY+thI3+0bgkM2ksUR1+0QO47tsop2lanqEhDGuSHe/TviAvm8BE070kaZffDuzqv2CdvO9COIQgICp0aJecwDC2sV2CFhDiK0CnAT13cT9k9eaQKEY+vO3ugrRj8lo8pFiR+Me+IjX5mo7pOY2pn/pj6sUGU22lW6Y25tBARTlsjSfx/799PwqIPEvzpLSpGmGRzfzMTbsNf4xdQOxWl7tOhRlAVXxMAwlzeMq9mtouXGjrQjoSwTRxSAPMGeq9s3PRzM7gAO9Pozef2Esy1FFaVeItiEpqFiGVUe+IgGWGItsIRNWPZd1Ktl00Q7P8ResylPkzbI/pn9bHZSGdDtChRxnclwdWcfDrmjS47zJFfffM8K9xS1iAnPtUBFfra2yDEyR/++XGXHkTGS6eDLTe1qTICw== X-Microsoft-Exchange-Diagnostics: 1;MWHPR14MB1661;31:eIwFaYowG8+0sLL8WESAddmmsCaL1ImFT6uXsR2HEeQgNEvRXXLw5VX9b3YteD/3qR244cRWlWo2IerL4qPJ0EgUxYgDQ4lRkyaK1W/g9Ur7Ffd75wQg2IMhIWbah8qCejqrQ0UZDIoAZzhEsL7+1o1DWvNNf9wLyDbduugwq9MxU2xOJ1z3cDj0KvwBgf8fLAH1JPbMGSJuwVOkf8jaWm11IqNf7ZS8CF2mhIzFJGfncQDtfazg+HwV0B1UTmuS;20:ce+8KAHTlKZcXardgw7nB6gIms+3rOCetwNLnUHGg+LYi9Wr2q1kXnvLNXcUTcVF9gMjLhk+LGb+MBzRRUhQXRmPOZ15s7pBEBAmohlVHpNPtpZYZFlu/lfGXbrb+VkY9/noiP/ADMrtoe6cIRfMyNi0b/sO7tLeNBW0fj5niJJajaUMwluhSf/C3KZJOj57vz2eFw56m5z6jwPM5n1Cb+XwDHZ86DVrk2Sv1oRHGiK4/yYNAWNs8WPAWBWsgOubr3n/EpVVB+QBkpv0ysXXGjTkpfWRjblMPp3qoi/0OSGVSAPkT802StKGrp9tjRmJlrrT+xoWo+tWLJcSZJOAqicPSuzO/WJVpHdm14E/Ou1UmZYCNgA/pN0pz1nA4JVCf8puZ3+o0tXmxhyDh04CmWH9hbUJ+zetjFYBLFUisdd1o45e3SWy27eA8hJBVBhYbMLpZ/HLTdHm2ZyBRqddUIXURcyJcXeGhBh68gMPtnziBAp6P5zBVkB9Ayt48Wyy X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(278428928389397)(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123560025)(20161123558025)(20161123564025)(20161123562025)(20161123555025)(6072148);SRVR:MWHPR14MB1661;BCL:0;PCL:0;RULEID:;SRVR:MWHPR14MB1661; X-Microsoft-Exchange-Diagnostics: 1;MWHPR14MB1661;4:mziaUO/4bFAqqUyzrxylfCFyQwq50msypj5W8glyybJOiCGX6TsrAz2n2NyhixE4VIv6cNmAibTKwPZSsAMoVAgF25+KQ1kT0fN01xrMC7kCJs+Tq5WF1flburMglBqzmMI1Lhd7fWMaGF42Lz3WQDlB3/5khmbxtiH2CkPZ0Roib2WkN8gm4AgvfEksQXkPotHowcyF3rHj7c/qE3SdaSlS1CIf/lE7xcF8L4t1JMaJAorU6OyyIewx7pIPFF9KAW4bR3vjB/KxY2peFfmuULD+O13CB7gHuprebeTwBBScbjaHwopn5LPImBasxQOXd+7Pk4fns8voj4wJY0lUYPk44I4XqXsGoRnDQoMu7BCm8WdaAO2baBt0dRrua4HDhxnbj/Nna8QPgGRocOt6CMY7VtyQPaZMVMB2TLgqutqor1ZoYbPXZZjyO+wNPpKAxr6MAorrEc5MkfpPRF5l0kGqMYX+2L3zNTYn2hQPFBewps+gvZodumkEAeQT0YKPaTuhMd7S40UKl8qw4k2nrVo3Git2BJe3HsvZx/YBli5LHmamvZmM/8kB7FmMQXKSTOMQRtAiK9O26bbb2VNkcDDtvhq8JH8GAXYNLaxEQySkGDkIBw0q6kwtpheYuCgnoTZAmgYZWvLVN2V7cTDtYZPyV48MR4gzg6/I8uJ6/FCYLFh0DZSpUX48Rpa/0nJl X-Forefront-PRVS: 02272225C5 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(39450400003)(39830400002)(39410400002)(199003)(53754006)(24454002)(189002)(305945005)(25786008)(101416001)(229853002)(50986999)(77096006)(76176999)(90366009)(3846002)(86362001)(6116002)(97736004)(54356999)(5660300001)(66066001)(68736007)(65816999)(87266999)(6486002)(7736002)(8676002)(512874002)(568964002)(59896002)(75432002)(7416002)(83506001)(5890100001)(54906002)(21480400002)(84326002)(80316001)(33656002)(42186005)(106356001)(92566002)(38730400002)(105586002)(189998001)(88552002)(81156014)(81166006)(4001350100001)(53936002)(4326007)(2950100002)(6666003)(6246003)(42882006)(2906002);DIR:OUT;SFP:1102;SCL:1;SRVR:MWHPR14MB1661;H:[10.20.179.104];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:3;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR14MB1661;23:yt1RybfiKX4xVBvYm+zg5qkwlg0eZqC9oPLVw7mf9?= =?us-ascii?Q?GFAr4k+zf/6cUaW9gmZORG+swQm72I9QnL1Af3zZS/3xWmbvCYgyuHIVkiX7?= =?us-ascii?Q?8Xat/HRN9+KhF12+zSkvNRtiQW6VOl+c9g+rnEcdtzVPdm37Q9z5aDUyt/ef?= =?us-ascii?Q?YFAcqoIATKg4E2HL3Mj4EP9YfBbys1VQM8Lw2bVqPHchfpCPFhzGr/i58GaC?= =?us-ascii?Q?Fz5R1tfN3nP8E6M3NGizx4IYbzUga5mpeLVF47xaqcHU1RaQItfOueSfhbTj?= =?us-ascii?Q?y13WD487Cr28e3Jm0Oc+3neg2EmqaycCymuOA54JnFxE/yxyVxTVFKpXmkmE?= =?us-ascii?Q?aAQjt+DrAAAStQ3/FYG0l9XVWfzMudv4qD7zZPFrLX3Vk79JUztyBZgCdg6v?= =?us-ascii?Q?ypZbDeO2+oJAm/fpJCWPcg5NRXAUTwA6dsrbf1UEw9HHdXewlc6asJetiSm+?= =?us-ascii?Q?rdiV/iezWfATSxaM3n/O9hxIPA0h8/vlO9IYqjsW49VZf6vjKQcWnk5prO/e?= =?us-ascii?Q?4NSeflGqLk3P5/r6VSYw4UqVX+vWGS6scyLFz8ITXsvdOyyUkZdw7sH5Wt5Q?= =?us-ascii?Q?sbHJN4a7O9/VbWtH80s0vLT3Zlyv1j29AmQgjJQWHtgBpjCFOSGgW+NRCYRs?= =?us-ascii?Q?VqQS6E9TsTbecyEc5SJoigriH6elnTeRgfaGz9lLa6W8rLVLPE+0mv2yF1c4?= =?us-ascii?Q?dayZlnd6c6IVo1wo4riKuhVKBwejg38kJwoi5UUWUrXzLY27FBZbm+E9KNjm?= =?us-ascii?Q?QpTNsPFsjrB1f53FuXOHQfwKWtWwOXL/rafutJsP+UTC29ADX1X1fwvdv4Ub?= =?us-ascii?Q?EFNjrEMi6AwcjiiXhF2VOjyJuhzMq75FIGJJgTGPnG2jjmRNTqFtAMOlCgLu?= =?us-ascii?Q?9I28/2UfC1VVcQzSa+kV7CTCZQnD+Ypki/bqJZqok1Z8WHr24Bh1w2UPf3mi?= =?us-ascii?Q?t3aR2veWxmiyarUKfj+s4vwr9caPj04NuDvhdDvbFGn3RcOm7nK/CpQDDzh5?= =?us-ascii?Q?FWllwTNkf0pXKcwwyQKzQGGbsj5fzQcVHJthvXQ/+KQ/0iEkUXxM52xGJngC?= =?us-ascii?Q?FrDj3H57hfs6gqT3FcQ1bpRCH+a2WltLAmenL/gGT/Ah2xhwOn+JirFUvTqL?= =?us-ascii?Q?aM9xO5OIhFJx42kF3sRdm17qmU3CB+FCTLa6eJ3ZIGcJv2WCfh/wO41DXLFD?= =?us-ascii?Q?q91K8lQ85L+QJgbSVO3ub15PxIDMnPKx73i9pkBhSJ+8nrDuOUVL8i3kUaRk?= =?us-ascii?Q?hmdIwWYM+HVxQy0YWnHIKkBDheo7wuz6U38oq4g1GCgwHrUJ25NUICCv2vXr?= =?us-ascii?Q?lqdwTfhsLzD3nPLhAbOXKL/MlRaMHSQDQ7tVeN8DHLCGBWRsS2eeGXK8JZzd?= =?us-ascii?Q?oDXMUyN0qUkPjzDFY2BYXXToBDrd+OfIMRvCH6I7fH8xl5Gu0SK3lhR6oEWf?= =?us-ascii?Q?4/+dhRBxKbIyVyM5EW1FtzBBqT2qM3FwkxIVKiW3iiBjCZEq9ad?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR14MB1661;6:bGaz/eMOSo5icLMewyob/9jxzpORexRopp13qu9CM4xGnw3nNLfeHNaQEKErgVB2xg0WHyHNCLErizqWQ0s1T+HIuXUljCpb03YGY3mvT43iLbkn5cc3CfotM90ysywPSp8JuBYyBUyfglol29FMbgC8COrKsKODquj+U8KNUm5fyYL1xG9JQDcvI+lxAVUI44j9djnmMEJao6sCcpODbzDxymwUdQiWM9HaTibxjb5u8K+SFYWtLQHgUFW+73rXUGry1gUFAx+wN9YgfOLSjfJIRy9uij5Ok5Lmg9sFgJ3RdzzUOOzHhn3fOY6EP0aBY7b0R0nbvfbYDY1aXDVHqlL7LegeHak0GAdKHBTlyIbCmRQBS9cVyTk3w+Pl8Ub/iEfw+oLIG6IqLsh4ZOHXFg==;5:P1JFEo2yVKMrwMe+OO1A+9fT9HOxhWj/n9U/HgE8We96GrUijJhxBT01FPzXrFwezy7jyKkceVNBSdX20LFbzkwm1SKZA2E6HNx+g6dbgliNPQJ1g8ncm/KbBOEStcwZuWgopIJnMMn0e02+R8K2TdYuDihCT2uxxGoaF12fjsI=;24:ta0n4mr3k1GhoAo3oGc6snVANnkkNgF04X1miizJODSOG8OUoEnzWlmhdK9O82pdYCxMYG5qa2Ge97p2lyrvDjdYD0tq/WF+eISkU+LWzGM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR14MB1661;7:MMkocHrDW8gT0uJCUoiDqEVawrtKXbg33mLWXXL+GiTVi5m0BZ8zCegIyDGd9u61sJz2p3dQTfRYEC6iVejR9gi5NjAulkOjKxBpiu1fo2nVES4dJpcRcqej81psHBgvUExgpgnrJ/4MzW3KcZ2frW8Yo5xv+P3LK8qLHoLJ+y+qgtccM9yF5BHjLoaEv6zWc98YAcghtLA7emXSwt2QSZ3HNWRQ7cLMYc/f4hFglfcJI9lfn1q41QWp3nFXdP1zX4DJBBA2d3j83tR9SGUZ1eAUwCIePXjX2T32RaqJG2ocg9o/z6snHm4y2nUlVYem+gRpwjyrw3abr4nWSYKXMg== X-OriginatorOrg: cs.rutgers.edu X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2017 16:12:20.3337 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR14MB1661 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --------------enigE8B6B278229F6B3388EF32F3 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Ping. Just want to get comments on THP migration part (Patch 4-14). If they look OK, I can rebase THP migration part on mmotm-2017-02-22-16-28 and send them out for merging. Thanks. Zi Yan wrote: > From: Zi Yan >=20 > Hi all, >=20 > The patches are rebased on mmotm-2017-02-01-15-35 with feedbacks from=20 > Naoya Horiguchi's v2 patches. >=20 > I fix a bug in zap_pmd_range() and include the fixes in Patches 1-3. > The racy check in zap_pmd_range() can miss pmd_protnone and pmd_migrati= on_entry, > which leads to PTE page table not freed. >=20 > In Patch 4, I move _PAGE_SWP_SOFT_DIRTY to bit 1. Because bit 6 (used i= n v2) > can be set by some CPUs by mistake and the new swap entry format does n= ot use > bit 1-4. >=20 > I also adjust two core migration functions, set_pmd_migration_entry() a= nd > remove_migration_pmd(), to use Kirill A. Shutemov's page_vma_mapped_wal= k() > function. Patch 8 needs Kirill's comments, since I also add changes > to his page_vma_mapped_walk() function with pmd_migration_entry handlin= g. >=20 > In Patch 8, I replace pmdp_huge_get_and_clear() with pmdp_huge_clear_fl= ush() > in set_pmd_migration_entry() to avoid data corruption after page migrat= ion. >=20 > In Patch 9, I include is_pmd_migration_entry() in pmd_none_or_trans_hug= e_or_clear_bad(). > Otherwise, a pmd_migration_entry is treated as pmd_bad and cleared, whi= ch > leads to deposited PTE page table not freed. >=20 > I personally use this patchset with my customized kernel to test freque= nt > page migrations by replacing page reclaim with page migration. > The bugs fixed in Patches 1-3 and 8 was discovered while I am testing m= y kernel. > I did a 16-hour stress test that has ~7 billion total page migrations. > No error or data corruption was found.=20 >=20 >=20 > General description=20 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 > This patchset enhances page migration functionality to handle thp migra= tion > for various page migration's callers: > - mbind(2) > - move_pages(2) > - migrate_pages(2) > - cgroup/cpuset migration > - memory hotremove > - soft offline >=20 > The main benefit is that we can avoid unnecessary thp splits, which hel= ps us > avoid performance decrease when your applications handles NUMA optimiza= tion on > their own. >=20 > 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 for= mat. >=20 >=20 > Any comments or advices are welcomed. >=20 > Best Regards, > Yan Zi >=20 > Naoya Horiguchi (11): > mm: x86: move _PAGE_SWP_SOFT_DIRTY from bit 7 to bit 1 > mm: mempolicy: add queue_pages_node_check() > mm: thp: introduce separate TTU flag for thp freezing > mm: thp: introduce CONFIG_ARCH_ENABLE_THP_MIGRATION > mm: thp: enable thp migration in generic path > mm: thp: check pmd migration entry in common path > mm: soft-dirty: keep soft-dirty bits over thp migration > mm: hwpoison: soft offline supports thp migration > mm: mempolicy: mbind and migrate_pages support thp migration > mm: migrate: move_pages() supports thp migration > mm: memory_hotplug: memory hotremove supports thp migration >=20 > Zi Yan (3): > mm: thp: make __split_huge_pmd_locked visible. > mm: thp: create new __zap_huge_pmd_locked function. > mm: use pmd lock instead of racy checks in zap_pmd_range() >=20 > arch/x86/Kconfig | 4 + > arch/x86/include/asm/pgtable.h | 17 ++ > arch/x86/include/asm/pgtable_64.h | 2 + > arch/x86/include/asm/pgtable_types.h | 10 +- > arch/x86/mm/gup.c | 4 +- > fs/proc/task_mmu.c | 37 +++-- > include/asm-generic/pgtable.h | 105 ++++-------- > include/linux/huge_mm.h | 36 ++++- > include/linux/rmap.h | 1 + > include/linux/swapops.h | 146 ++++++++++++++++- > mm/Kconfig | 3 + > mm/gup.c | 20 ++- > mm/huge_memory.c | 302 +++++++++++++++++++++++++++= ++------ > mm/madvise.c | 2 + > mm/memcontrol.c | 2 + > mm/memory-failure.c | 31 ++-- > mm/memory.c | 33 ++-- > mm/memory_hotplug.c | 17 +- > mm/mempolicy.c | 124 ++++++++++---- > mm/migrate.c | 66 ++++++-- > mm/mprotect.c | 6 +- > mm/mremap.c | 2 +- > mm/page_vma_mapped.c | 13 +- > mm/pagewalk.c | 2 + > mm/pgtable-generic.c | 3 +- > mm/rmap.c | 21 ++- > 26 files changed, 770 insertions(+), 239 deletions(-) >=20 --=20 Best Regards, Yan Zi --------------enigE8B6B278229F6B3388EF32F3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBCAAGBQJYrwnZAAoJEEGLLxGcTqbMsmcH/R8UUSIQRS573AkfTRdrWpCP 3pdoTD9m3DTUEwKUiEDs6oRY4h3wt+mRRmFURf4yDKLkmReQJ0M1EBdaSmet7hzr EXJvSfGZc6tT1qoVEWoYRrxmdun+kNh0X0iV5CHlFzFT1cZMiUUybOK7tn+qwNxw db568YnbGGRJb0bA06nGGLs1u52yVhnO4WCOFdGv1FRGXKRsXVgVrs2bIjMCDGmr QQaNzkss2vjEXSNHoZqSL379T26xxalBSNYZ1d1sJyvM/xtRePgFgFrgYm3d1o5h 7dYF5pCi0fErGXAkMHrDJEWAaJ4JLiFfxqlcXJywdEeg3wzkfcqn8pRBDDPhHhM= =Bzuf -----END PGP SIGNATURE----- --------------enigE8B6B278229F6B3388EF32F3-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-it0-f71.google.com (mail-it0-f71.google.com [209.85.214.71]) by kanga.kvack.org (Postfix) with ESMTP id BBB4D6B0038 for ; Thu, 23 Feb 2017 11:12:31 -0500 (EST) Received: by mail-it0-f71.google.com with SMTP id w185so2478111ita.5 for ; Thu, 23 Feb 2017 08:12:31 -0800 (PST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0097.outbound.protection.outlook.com. [104.47.36.97]) by mx.google.com with ESMTPS id s27si5155520ioi.18.2017.02.23.08.12.27 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 23 Feb 2017 08:12:27 -0800 (PST) Message-ID: <58AF09D9.3050401@cs.rutgers.edu> Date: Thu, 23 Feb 2017 10:12:09 -0600 From: Zi Yan MIME-Version: 1.0 Subject: Re: [PATCH v3 00/14] mm: page migration enhancement for thp References: <20170205161252.85004-1-zi.yan@sent.com> In-Reply-To: <20170205161252.85004-1-zi.yan@sent.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enigE8B6B278229F6B3388EF32F3" Sender: owner-linux-mm@kvack.org List-ID: To: kirill.shutemov@linux.intel.com, Andrea Arcangeli , Michal Hocko Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, minchan@kernel.org, vbabka@suse.cz, mgorman@techsingularity.net, n-horiguchi@ah.jp.nec.com, khandual@linux.vnet.ibm.com, akpm@linux-foundation.org --------------enigE8B6B278229F6B3388EF32F3 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Ping. Just want to get comments on THP migration part (Patch 4-14). If they look OK, I can rebase THP migration part on mmotm-2017-02-22-16-28 and send them out for merging. Thanks. Zi Yan wrote: > From: Zi Yan >=20 > Hi all, >=20 > The patches are rebased on mmotm-2017-02-01-15-35 with feedbacks from=20 > Naoya Horiguchi's v2 patches. >=20 > I fix a bug in zap_pmd_range() and include the fixes in Patches 1-3. > The racy check in zap_pmd_range() can miss pmd_protnone and pmd_migrati= on_entry, > which leads to PTE page table not freed. >=20 > In Patch 4, I move _PAGE_SWP_SOFT_DIRTY to bit 1. Because bit 6 (used i= n v2) > can be set by some CPUs by mistake and the new swap entry format does n= ot use > bit 1-4. >=20 > I also adjust two core migration functions, set_pmd_migration_entry() a= nd > remove_migration_pmd(), to use Kirill A. Shutemov's page_vma_mapped_wal= k() > function. Patch 8 needs Kirill's comments, since I also add changes > to his page_vma_mapped_walk() function with pmd_migration_entry handlin= g. >=20 > In Patch 8, I replace pmdp_huge_get_and_clear() with pmdp_huge_clear_fl= ush() > in set_pmd_migration_entry() to avoid data corruption after page migrat= ion. >=20 > In Patch 9, I include is_pmd_migration_entry() in pmd_none_or_trans_hug= e_or_clear_bad(). > Otherwise, a pmd_migration_entry is treated as pmd_bad and cleared, whi= ch > leads to deposited PTE page table not freed. >=20 > I personally use this patchset with my customized kernel to test freque= nt > page migrations by replacing page reclaim with page migration. > The bugs fixed in Patches 1-3 and 8 was discovered while I am testing m= y kernel. > I did a 16-hour stress test that has ~7 billion total page migrations. > No error or data corruption was found.=20 >=20 >=20 > General description=20 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 > This patchset enhances page migration functionality to handle thp migra= tion > for various page migration's callers: > - mbind(2) > - move_pages(2) > - migrate_pages(2) > - cgroup/cpuset migration > - memory hotremove > - soft offline >=20 > The main benefit is that we can avoid unnecessary thp splits, which hel= ps us > avoid performance decrease when your applications handles NUMA optimiza= tion on > their own. >=20 > 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 for= mat. >=20 >=20 > Any comments or advices are welcomed. >=20 > Best Regards, > Yan Zi >=20 > Naoya Horiguchi (11): > mm: x86: move _PAGE_SWP_SOFT_DIRTY from bit 7 to bit 1 > mm: mempolicy: add queue_pages_node_check() > mm: thp: introduce separate TTU flag for thp freezing > mm: thp: introduce CONFIG_ARCH_ENABLE_THP_MIGRATION > mm: thp: enable thp migration in generic path > mm: thp: check pmd migration entry in common path > mm: soft-dirty: keep soft-dirty bits over thp migration > mm: hwpoison: soft offline supports thp migration > mm: mempolicy: mbind and migrate_pages support thp migration > mm: migrate: move_pages() supports thp migration > mm: memory_hotplug: memory hotremove supports thp migration >=20 > Zi Yan (3): > mm: thp: make __split_huge_pmd_locked visible. > mm: thp: create new __zap_huge_pmd_locked function. > mm: use pmd lock instead of racy checks in zap_pmd_range() >=20 > arch/x86/Kconfig | 4 + > arch/x86/include/asm/pgtable.h | 17 ++ > arch/x86/include/asm/pgtable_64.h | 2 + > arch/x86/include/asm/pgtable_types.h | 10 +- > arch/x86/mm/gup.c | 4 +- > fs/proc/task_mmu.c | 37 +++-- > include/asm-generic/pgtable.h | 105 ++++-------- > include/linux/huge_mm.h | 36 ++++- > include/linux/rmap.h | 1 + > include/linux/swapops.h | 146 ++++++++++++++++- > mm/Kconfig | 3 + > mm/gup.c | 20 ++- > mm/huge_memory.c | 302 +++++++++++++++++++++++++++= ++------ > mm/madvise.c | 2 + > mm/memcontrol.c | 2 + > mm/memory-failure.c | 31 ++-- > mm/memory.c | 33 ++-- > mm/memory_hotplug.c | 17 +- > mm/mempolicy.c | 124 ++++++++++---- > mm/migrate.c | 66 ++++++-- > mm/mprotect.c | 6 +- > mm/mremap.c | 2 +- > mm/page_vma_mapped.c | 13 +- > mm/pagewalk.c | 2 + > mm/pgtable-generic.c | 3 +- > mm/rmap.c | 21 ++- > 26 files changed, 770 insertions(+), 239 deletions(-) >=20 --=20 Best Regards, Yan Zi --------------enigE8B6B278229F6B3388EF32F3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBCAAGBQJYrwnZAAoJEEGLLxGcTqbMsmcH/R8UUSIQRS573AkfTRdrWpCP 3pdoTD9m3DTUEwKUiEDs6oRY4h3wt+mRRmFURf4yDKLkmReQJ0M1EBdaSmet7hzr EXJvSfGZc6tT1qoVEWoYRrxmdun+kNh0X0iV5CHlFzFT1cZMiUUybOK7tn+qwNxw db568YnbGGRJb0bA06nGGLs1u52yVhnO4WCOFdGv1FRGXKRsXVgVrs2bIjMCDGmr QQaNzkss2vjEXSNHoZqSL379T26xxalBSNYZ1d1sJyvM/xtRePgFgFrgYm3d1o5h 7dYF5pCi0fErGXAkMHrDJEWAaJ4JLiFfxqlcXJywdEeg3wzkfcqn8pRBDDPhHhM= =Bzuf -----END PGP SIGNATURE----- --------------enigE8B6B278229F6B3388EF32F3-- -- 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: email@kvack.org