From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932163AbdBGRPh (ORCPT ); Tue, 7 Feb 2017 12:15:37 -0500 Received: from mail-sn1nam01on0132.outbound.protection.outlook.com ([104.47.32.132]:22880 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754199AbdBGRPf (ORCPT ); Tue, 7 Feb 2017 12:15:35 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=zi.yan@cs.rutgers.edu; Message-ID: <589A0090.3050406@cs.rutgers.edu> Date: Tue, 7 Feb 2017 11:14:56 -0600 From: Zi Yan User-Agent: Postbox 5.0.10 (Windows/20170123) MIME-Version: 1.0 To: "Kirill A. Shutemov" CC: Zi Yan , Andrea Arcangeli , Minchan Kim , , , , , , , , , Zi Yan Subject: Re: [PATCH v3 03/14] mm: use pmd lock instead of racy checks in zap_pmd_range() References: <20170205161252.85004-1-zi.yan@sent.com> <20170205161252.85004-4-zi.yan@sent.com> <20170207141956.GA4789@node.shutemov.name> <5899E389.3040801@cs.rutgers.edu> <20170207163734.GA5578@node.shutemov.name> In-Reply-To: <20170207163734.GA5578@node.shutemov.name> X-Enigmail-Version: 1.2.3 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enig12A575DBDA3D22B8D2E4BE74" X-Originating-IP: [12.1.252.66] X-ClientProxiedBy: MWHPR10CA0013.namprd10.prod.outlook.com (10.172.48.23) To MWHPR14MB1664.namprd14.prod.outlook.com (10.171.146.146) X-MS-Office365-Filtering-Correlation-Id: c1cbee8d-9f32-40a2-0b59-08d44f7cecbd X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:MWHPR14MB1664; X-Microsoft-Exchange-Diagnostics: 1;MWHPR14MB1664;3:f/ZmPNzx/Tg4iAmxX3n02Xaasp9R5aiAM2BbDb1B0U1aevB2bOan8DWV9kza1T8fLSD8FcX1cZkDxJPdsdoX1T0J0MLmyPiWwTilWqtz2+Y3jfOIWsOMmH4OV7xS88MhGtGSv6dcTYQxTCpds1Rl0ZoZmjhpoIlpFPHEwLpB26+LHMSOluGrRF8B6egg5NbXlDxcdMCpPI3yvNlgmERib2UIOUHGqj5mXELNlPtroT5kN0jfkFijgeoDb6K5TSIBHvyEGo0Hfu/JyErlzXtsmQ==;25:VtymsPaNNBHM8naI5w+RrtqUvWdCVrCzN24mHOX568XbRQWqf3gwsSi6+ZWL+MQMMjCvCMq1rZLh0gPxsN1GoiU1BzwLOFPhO8FXJtaUnrM2Yf0rURlOs+3UTQMea5Tsf9ZOV1xkfbiJn1n+M4bcc4aDwzQvJ6uPFMpilOjZnt3pQ5IM64ifyaisuahoWby3c6YZztwHEP6zTY18UcMJNoOFxApZfPSJsv7id7TqsHgM28Sgq7nDN28WBO5AKbmW5xpwmrE0c0jvLkjlM18tXI0Zk6IJVwcyqYTrwvkR3Gt7smdZuGzi1btSvAZB1qjiEkoTs0/ucGzw85HBxkIJYnpLp0FHy9Ps4qkc+GgeQn6C1JawhxHfDl6tFpRY943RsTysahTSQ4T1zKBI0CQnZmiUG/KP5SQN5AKfQVrnb+yZj6CU2fmNymn6ITsEJRrxCqx99WvgOiBjj/++WId2lQ== X-Microsoft-Exchange-Diagnostics: 1;MWHPR14MB1664;31:VBuzVMuI5+Wrx9SzVGtQ92ITrYY/6nnNQE1EFVSezO8/6pYNs0UFcUFcE3pGzQkyWnr1FMCt8wDipbP6dWp/SWxE64zFOOpQ0dKKp8I4cuNPXfinohAsZ6pECoOc+N2/la+OGYwdQydG7ocdYQUJ46u9XpjEBxpoWC+X+/oXAuM28B3XFr6yCuPYB36ucsWuDscMM4fgVlL5IQ2x5LZQEfBbeLPXo0lzgspzU5eQBrpmQA1QQiwcRxaThTZlICQP;20:/VziCFrnZ9i72hJ4F1raPBhkHgwiC6qRyQlQVCn/GCEeXHah9feUjomXWP3HfzFwEPFBDadj9rDvodXOe24tNjN68bcm8F24prmYoAJQOXoOf2oyWB38hYldpJp5k3AjBlGBc/wu27La8YZNQgW76x51AQ6l1KF8TultQmUgRXf8udHl/WnQFNADBYOU8pVNm6E3fpJWaenAGSrzLJZ7/QPBU1/Idcy1GrvLx9FSkkbGSFPM10I8jAA/U7jJ5Voom255cHDtEBAukQJRCQ1l6oCr6XJ1pQVF6r/wekpy1/Mb8MrCP0NbAYNI+QojE4w9TWuJQisdIM64/CjO1DTTjjoayRPREBKIkh99pYSxZ6Qe3PyoLEbq0+xUfHE4HTi/yZR1G6nIMJBhOziAIlMeUzRP1g602cspoWpUjfUxPcfINiCC9rUzlAe0h5C3Yc5/DwaAYoI0mGF5nLhTrKFPT6RC6zoZ4w2g0RqVovsjT/6Wa1wzdBq3yata2o+sLef7 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(20170203043)(2017020603029)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123558025)(20161123560025)(6072148);SRVR:MWHPR14MB1664;BCL:0;PCL:0;RULEID:;SRVR:MWHPR14MB1664; X-Microsoft-Exchange-Diagnostics: 1;MWHPR14MB1664;4:2we13qdbyw9/XjGYdOJC8VvdC7Pszdq0fw42P1p14tTSFqbYwtr8bLRcu1gbIsnvqE2XITibT4QeyDDJ91to9CLtYVjveJQgov16/J0Ht5qbw/3dDGVZrKXiDlGG/Y0OLoSUmSDLvNYG1hDd9vm5RwwcgI/Wy4F5u/KVmDgTeFGXb5PJiKXapjAsGbDowqU3OIp51qDvZehb4SM85MI1CSL5PAw+fd99F2C5Iz9X3O+bG+X8aX/KJ+7Nt2tARh9jnYvKHEpMux/OnkCKeWD8qyKcYI/NdijEoQhjFXITtP409ZO5ScM8hMBgoxeFXx3Q+LZvACnsWQMD19uG+73NJmEyxJ+lkmewB1BlMyPWVYuYMljgmkyO5dnxqvzXVNXejQoPQ506oUPgp17KJe9R9DJ0coBGa/mzZs4UeM63AuCDwpGtJTdBkV3q6c8pp8OJLnUEIVeC4u6TL+H+Sa5bBBu4rkPoy397SL08af88zn40onyGYYG7/VhrquyIUPMadvWK+24bFNNNt5RPz4Yn7/spPiCDG60cRgApv5LV7YuL6Q0LX8BNQAefM9ZlLlApSGq+rw33MNvLua5+2X7MT6u8eqSL3z5Kdc/t3uq/h31TqJXe6Mqe6fdwJwOg1ROJmNOvLJSFJXTeudrincWkXrVULgUDsh28/dqKYf/i+7k= X-Forefront-PRVS: 0211965D06 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(39410400002)(39830400002)(39450400003)(189002)(199003)(24454002)(65816999)(4326007)(8676002)(87266999)(54356999)(6246003)(76176999)(81166006)(81156014)(42186005)(53936002)(7416002)(66066001)(21480400002)(2906002)(7736002)(88552002)(68736007)(305945005)(101416001)(80316001)(75432002)(59896002)(512874002)(93886004)(50986999)(33656002)(105586002)(3846002)(106356001)(6116002)(5660300001)(92566002)(2950100002)(42882006)(6916009)(6666003)(568964002)(86362001)(189998001)(83506001)(4001350100001)(90366009)(6486002)(54906002)(77096006)(97736004)(110136004)(25786008)(5890100001)(84326002)(8656002)(229853002)(38730400002);DIR:OUT;SFP:1102;SCL:1;SRVR:MWHPR14MB1664;H:[10.20.179.32];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR14MB1664;23:umskjk5NoZUhqdFKjFxVjz4WfTfqg5KWJufBCdcVr?= =?us-ascii?Q?KgzIXGEf2byAtcmHa3MhEsB9aGD821BnP608Er7loRIgU9PYdWZgitS/bfkg?= =?us-ascii?Q?b83qbILc71zVpNP9HTydBJRs6SujK38jxZ/xTQmCoXIDlXxiGF7WupEsIXoO?= =?us-ascii?Q?FTI7nlj+VaRYgqaCaaP6PPpWHoA24+EsOAWwfXxHmpCARtXvoO9mHccxd+Il?= =?us-ascii?Q?DH2NgyVw8azoJvicmd4Hfp3+EWtLWGhjWJewprHHWPAujNNKyyqRtSTD+vYG?= =?us-ascii?Q?58aTQE6DJjcYqpm9ORFlsXJC+CSpvhqsu4DNMFZAyZ41rORBepDn1p9bTJTw?= =?us-ascii?Q?h8yeSUqB7KUe4l1IP4JocTirAm+gK40Sq55smwMQAnb23wOBHHirBiSsKgUY?= =?us-ascii?Q?J6qMj97nPnUPAAJKk7WCfG4zDcN6Gyo7UUu5GwMXFHvTy9NmMKbMb4r8tWlT?= =?us-ascii?Q?Zcx0g63buu+7IgXb444yZl3ndgnq5TZPBNzgLqtS2LD2mnvbrfPvF2RHCD45?= =?us-ascii?Q?SLTwFe6c08K/4KYWWeqt41E/lR0gPjqpdtkJEzlcxg51T18UfIxHS75fTf8S?= =?us-ascii?Q?ZDhOf7On8mZDgShQkgSJCFrbFx5aIntpOInGGIGO4RdV+VNeOi8U3x7ucs35?= =?us-ascii?Q?OE5Sarry60H7SVsSWopNr9unAEIMI6CvZpjjSYmBbb/riZGV6blVNvGBAuVY?= =?us-ascii?Q?o0hvm2S0Ha1xrEOt8xonxyVQ/03/CLOkqgWnUMShbj10y5B0VHI9cK54ImFY?= =?us-ascii?Q?aVOO6NED6SIMYFXgNNQIVCl4L3PEwxTn8rtNHqlHTU9s/DRDQ+x/ZPeYt8aT?= =?us-ascii?Q?XXy9YY1oaxpsZP4+bALHiQliqILprRnTShxf7p+GPONiS0ZYkYtRjiLwUla1?= =?us-ascii?Q?GiLw+UPuuIpXj+Tia2aMzcqwGN6NpsCvuQ0zjXIRse5iUml9tKIY4bG315+7?= =?us-ascii?Q?epViJM7xzAWJ0Y7v9iIfbS/j8WCocv9vSr8IL2iIMmobG5QJvyFE28yvXoJ6?= =?us-ascii?Q?hxEZaTVwlbFwJoK/92M9ZPGKzZmtVUwrbRPJ3LFxr66pQwkRj5SGXOQo7GAr?= =?us-ascii?Q?tY06Wpda1QjaHROT+C+RJXpWCQ0R3fAPzYhXou8lkY82qE2JFEmrdwCruaqs?= =?us-ascii?Q?SvIKtYxZRVndnhjwM+IzcyrmEpGyM3Y11Pok1rbxcPuoU9SpNR1z+iC8GeAY?= =?us-ascii?Q?h3OkC3PMKmD1KGsktnTZyIuHNwyFkSjTe9mUNbpWNiLf9nUVAFIfqhq0aT58?= =?us-ascii?Q?pfx3/med83E10o+m6U6EVMeqRYKxq1cw+JmA3G+Ijv7XAUK9gl1iJqE1PcdP?= =?us-ascii?Q?ioHHCygw23tbI3nVpwdNf9LVYd1GC2mQsledP7/dfT5vxxp8ojwFurtum2Zr?= =?us-ascii?Q?oIhifygokpoP8koNUrJXarnjYAMiu5ARC7d5kArUJ+ylx/g43fSalsKkrKt1?= =?us-ascii?Q?Yk5Qsv62zWXFVkYs4RrMj26c3gry7V618BZccOTTM0bD+LUX/RRZG2MsecO5?= =?us-ascii?Q?pLVBMHxBjfaIr8ssONlA48Z1kATpukJNdFqZo8KvbZ6SAt+cS8UoSin?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR14MB1664;6:egAX8sYWj6zsIqPFhHxIYVDu9yQUvzgEzs1iWil7txxC/g7WsTtsvchzK34PpAyQiJsZaH1LTmWTGaKZG/EZZg1a0vhySGM9sMLJ91yAimybduA7bVL53cJixEEYOKOCaRh73vWqjKs59uWm6srUncfOZDPndoz0CPN6fd/I9MbubFVTkBrQ/wb42LnVQBQ5Qrrdcn7+1G6+SCi6BjIsuyxAOVxN/DsvSQopAZBl6Rk7wkgKjVqdoTBFRwIplOvxFMfg1G0kXPWNpx1sMquiFZR0ncZWfN1XriqBfwf8dGwEY9/9AfoB6Y7mPstwFkSgRmGD+l1NGoJB5G+aTay4idD3BuY4hxErmaYAIZOK8oNNA/TQHBQqdOdMiZ1Vg6J2aUup0cZZNISQNjiF9CZrdA==;5:hxEZLcPxu61B9z4jUQT36dqfKTjQARLRD+z/tAK27CmyyC88b5XxHMyy2rNxIASs9yuKZFTO/D4rkB9tkYI+etP8n+1oaWV+BCfV5rhcZs3dk/LhKiFW2ihYJGIye8eyLUNE6SBx0btKUSR38vAzt6OmuovHCcUyqpU4iAJjGaI=;24:HGoQQ8Jooqd8k1DPCDwD07IPj5j8gmZBDcMoS/E6wmrR48QDFvWZzxQJF8e8Z91v0AHQpvEXsyFqjva/JdZtypaa/koTJcgCjQEgS4DnE1s= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR14MB1664;7:gLIa3i2v/iVnLZSb2fHqaoL8ZzOGPCV8g7uMYeyL6RwzKp5sSlezOQ1BaXbS7RSty6c54LsmhgkbQh/qkgJTkpAjbjBaUukGWyumW0JKupSaNsd6z8WfrQtHcQ+n07un/IxkANYEI6Y90OiPmT3WuQhfhm0fZAQOdXusRv0A6UrwZAud5K1/PM0PUZ7cj5mkaYl0C7oOdNudeZCcQY797abE5mnPSiFJZGk2zm9D8wGjURx2nQPMPWRhf5ZraAy5eeg4LytBB2+KB4b+qCphygsLIJS4JUNAPB9F8MtlnX+MQtNy4gVmQbnPl//jsq+bE0YyXYYIqHpkbp8isYT9OBg15hMNoMHJMbmY/fIgdzyMRsbs8EsehI2lI0mLHx9BvOE6KX4SYbzSL2P9QQ8zifg13Pztel5Dys9//5+9TwuuE2D89BdGZqA0ES8UrulmGJu2HkymUWLyGHgb5jaY5cVTJ3tCpzjre6BgqHNMwJQtV2FlEfAa4pZ6h7POWYMM20z5+Mj0bwxKuMSO7FeTRg== X-OriginatorOrg: cs.rutgers.edu X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Feb 2017 17:15:30.6942 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR14MB1664 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --------------enig12A575DBDA3D22B8D2E4BE74 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Kirill A. Shutemov wrote: > On Tue, Feb 07, 2017 at 09:11:05AM -0600, Zi Yan wrote: >>>> This causes memory leak or kernel crashing, if VM_BUG_ON() is enable= d. >>> The problem is that numabalancing calls change_huge_pmd() under >>> down_read(mmap_sem), not down_write(mmap_sem) as the rest of users do= =2E >>> It makes numabalancing the only code path beyond page fault that can = turn >>> pmd_none() into pmd_trans_huge() under down_read(mmap_sem). >>> >>> This can lead to race when MADV_DONTNEED miss THP. That's not critica= l for >>> pagefault vs. MADV_DONTNEED race as we will end up with clear page in= that >>> case. Not so much for change_huge_pmd(). >>> >>> Looks like we need pmdp_modify() or something to modify protection bi= ts >>> inplace, without clearing pmd. >>> >>> Not sure how to get crash scenario. >>> >>> BTW, Zi, have you observed the crash? Or is it based on code inspecti= on? >>> Any backtraces? >> The problem should be very rare in the upstream kernel. I discover the= >> problem in my customized kernel which does very frequent page migratio= n >> and uses numa_protnone. >> >> The crash scenario I guess is like: >> 1. A huge page pmd entry is in the middle of being changed into either= a >> pmd_protnone or a pmd_migration_entry. It is cleared to pmd_none. >> >> 2. At the same time, the application frees the vma this page belongs t= o. >=20 > Em... no. >=20 > This shouldn't be possible: your 1. must be done under down_read(mmap_s= em). > And we only be able to remove vma under down_write(mmap_sem), so the > scenario should be excluded. >=20 > What do I miss? You are right. This problem will not happen in the upstream kernel. The problem comes from my customized kernel, where I migrate pages away instead of reclaiming them when memory is under pressure. I did not take any mmap_sem when I migrate pages. So I got this error. It is a false alarm. Sorry about that. Thanks for clarifying the problem.= --=20 Best Regards, Yan Zi --------------enig12A575DBDA3D22B8D2E4BE74 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/ iQEcBAEBCAAGBQJYmgCtAAoJEEGLLxGcTqbMZ4MH+gL1ffwmLMamJAA2C6JQWJep Eg7dlxR5s+qx9qn9eHFM+7nBfqYaB+zajW3gvoLruFqbn4jRBgaq+KxWAgqRH+Ul WiFu53nsBoAZMe1U8MWEdOJWRuOH+m2ex9T0JZ2cI7U7318BbGpzPQ/W41Wf1c/y A86z/mXJO0bw+1R6OvZuGK++zoLv0kTwgaMmazRbcPxfTHlNRoTMcJO9cqNe8eik MNtLeAOeYdqSnaJJSp5LXNnlhfmmbUqGsfPxvfnZdHFBVRYSPg4hosKZwUduVWT+ R3JuLD+RMrdhE9+IB06syAlIWNIGuQszHxt10wYh3f8iYrOn7wN66CoSWqNeWRA= =k5dq -----END PGP SIGNATURE----- --------------enig12A575DBDA3D22B8D2E4BE74--