From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935265AbdEVPGh (ORCPT ); Mon, 22 May 2017 11:06:37 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:55030 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934539AbdEVPGf (ORCPT ); Mon, 22 May 2017 11:06:35 -0400 Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=fb.com; Date: Mon, 22 May 2017 16:06:06 +0100 From: Roman Gushchin To: Michal Hocko CC: Tetsuo Handa , , , , , Subject: Re: [PATCH 1/2] mm, oom: make sure that the oom victim uses memory reserves Message-ID: <20170522150606.GA22625@castle> References: <20170519112604.29090-1-mhocko@kernel.org> <20170519112604.29090-2-mhocko@kernel.org> <201705192112.IAF69238.OQOHSJLFOFFMtV@I-love.SAKURA.ne.jp> <20170519124632.GD29839@dhcp22.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20170519124632.GD29839@dhcp22.suse.cz> User-Agent: Mutt/1.5.24 (2015-08-30) X-Originating-IP: [2620:10d:c092:200::1:a336] X-ClientProxiedBy: AM4PR0202CA0006.eurprd02.prod.outlook.com (10.171.80.16) To SN2PR15MB1085.namprd15.prod.outlook.com (10.169.192.135) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN2PR15MB1085: X-MS-Office365-Filtering-Correlation-Id: b93c2c72-060b-4097-64fb-08d4a1241b92 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:SN2PR15MB1085; X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1085;3:u7eEvKX+Ou5qK6eGTuW8WvjXnBO4zY+82h57gKs6+D97Z2tkLGNTx5R2gBPaKOmgqqkEUh2ojPQyjZ/2S3ytwy6iKn3jWE62ynRCycU2p8E6IuJL43R8iBtarzQdWhOOE81qhLZPMMiBTZr5A1udGK+8GcnGlTQeL60NGpZlhZKGeQeUC5t3Bk6VFQS4InAt21BmWZTMxPLxTDCA3jZM7JkqRkFPY9mocKUnnNNBO5dHHFxUqD098Pmmt2XyYnP8RwY4yzw6GOOZQzru52C8yS9TiAr6PzpHG03++ToUOW7/l1cLhMIxL5xEa480wDDRqS4WjgHIIV1qwLWGh7yi0A==;25:2OEs0U2LyVjwUl0QeIGVK55lijvTqTbjnCYqQrBs/DlGdQbDhCeevNrnA7N0Zg6Bxu0Jok7zYeUadVuodzlRe9ZoajS8Nir8YLY3f7Q7ph176yFCburkH8AOXk7zcUUg/YPt3osoyhlz2+7fdq7pk3ruPFmlPgx07KAJYorFFSXzvfFnCvcppgEUCIdfn0z1/rFIecLop2Pv7rqA2ScNZbKvlNtNVCO1uZnxM4luxaYvJNNEzo1dMbaK3SkLVYcCeseXx3+XBJg9Q6GidnQqJM6nSfJiEAPlzY+zBjQpY9lIPv/BLKdnKqOinTBS5nh7hF1bFcBwEi9Pf4iJ3HMgH3rLUW1AYxalvz1Zi2A7yctNnecQJ33mn/gcQq/CO2gBln+MeV/gm000AgnNoixvtjUiZI/Zk2tYlCoVHb6IBr7HpMd3fTDktnohglkNG5ZH8sMQ/WLOBN/6X7VfJRZI3Xw+6pO38hkQFia/m4hsylg= X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1085;31:858P7LpbMduqswBbaeS3qzNNb8brs4bT3KYdwIEt/awV1QplU1pB02XdZv/R+cwxLQ293TtOAjT3i4RvcrtVEY/930qshy2SZcq8ZaeUkxkmBrZxw1LiTLMkg+/KUvdHgyy8bTzHPa9UG6iTsI+a67wwUGV+7971yBt2fKuDdh1phRp+yEMf8qTnO3XFvPlAs5vOWhxPTDjK0Cy6Vsn1gXxpcuabcNrsHFzRsIcS3hLW0Tdp4Gh59gVXSg+kxBLDYOHi9Ak8iPbJL540O822VytH6Ca5rFzuHI9lryvQ6Io=;20:7aRptVPSQNbxjRgUy/OEi+ZbtJmhvY3Z8BZShcZbtadNw73Vl53jAnsAB5IhBZUs057MtZPZRMs/FMetqvxO8JksKv1uL4ixFoL9y1IRNEd7sadg3WAmxcKOMEVhROTljQt2nQFEsh5E/Zqt4UO35+UPnA/XE4IdHBKpXMvGweFN/5R0Mkq6heBeN8ak4xDkWozqBmE1lWbvi1BjR+IiNY3FzMtcS8wmvHFqEZqvAA7MxzU9YdLeM3zwywzef1zjEc1A0sfLlBG1xbpCNaCd09kk/vggrulSS3aS/xtxG3uuDmmGC4toNIOfxHul/nxXMWOPGSITQepRlhDN3GnrL4UBgPfFELgHyxJGGovz/VkxkEDp+kuLaGsEmWV+5AdqBqEllIG4zlbPczCd5pLp2NDkPfimipjOMN62fcIuzNcERNqftadTHSTlPxHLlnUXxlv44HMxItPxMTF4RsqMXtfhwAVgvOtH8t/mOjycuCpA9et8uXTpkzrkFhaih4hm X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192374486261705)(67672495146484)(17755550239193); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123560025)(20161123564025)(20161123558100)(6072148);SRVR:SN2PR15MB1085;BCL:0;PCL:0;RULEID:;SRVR:SN2PR15MB1085; X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1085;4:wKE9G7dcFH3TzAUSYAYmUkkGzPGnaHc6llgIpue3GSMbPPSAuMxD7kw2jTnatJZx79eaXiP0bUESeoDawx9F+0uvcC6eQrwuxMOTkk1FwsoyAWCKD5pm4Sky4t2fh4Tj3mMjN9Ga/cpWvt2No471wR5GJhMi/krcrM7iaO5BgLwFAMBi3H6HJEojeLHhMYPPqYMn06VpzhPpM6gzaHLKAfTdYTY4VR1nmmWi+7abiRSbLJwGvaXH/6QgUzNL76XshKVDrix9UdspbdyqpLNP7bGGWHg6HVoC/XuFrbUv6q0zVmrNFeNjYuojLFm/K9HubyJjIG5+W/ur+ZcOqWr//iFfo5hgezmfD85l1m/iWsUJEt0NUU7SexhzMIPSgBU4YOf3jPHNj4oVuyUUfhQBnr5v7E85AezhYMQIKC0US2UynfZZkskQyKkbuSXgWR9h+JsU+QYvyh8SyKDXAhGXhlhm9WrF7FN9wLrN0VQQd10Ci4UO598pbxwoLloZzUb8ZSiMP1tnhrrszqgIdmqT8qrbTKB2axqDCL45Qw0P9izk5Ey7M0kg9WnJA6uVv9IF9os0rBIBxXd+LcasBqxhAzobGVub/cLT6i14turWV9XI8lKQDdbnazk5cqGJUZqK8fgkLrZeLLa1KcoRtZbiy1tss0pCymD9ACbiV0IzPbCKvscba8ss2hxAiab8QHGEhCyZ+b4ERmhuYSnnHfIGDnjLFCz8O+AzYOocj2OHwVXfRhY+I1fbgcEdKnINDs5U1DxiynPal1cueqFq7m0lSt71Lu90v1N+pprkcFPvfJnzXdrbALO1HJP7Tl5gAM+RA86ZF8uLbXLjH2A4M3dez9Y8gN0pn32KaPbtrowW4FjrakjR3FOVYr65Qjk3HqXMjHqWCEEgyFJmYPZJv7xjxQ== X-Forefront-PRVS: 03152A99FF X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(39840400002)(39850400002)(39450400003)(39410400002)(39400400002)(24454002)(377424004)(189002)(199003)(5660300001)(4001350100001)(53546009)(9686003)(25786009)(53936002)(23726003)(6116002)(54356999)(86362001)(83506001)(6666003)(2950100002)(50986999)(229853002)(76176999)(478600001)(6916009)(50466002)(93886004)(33716001)(305945005)(7736002)(47776003)(42186005)(4326008)(1076002)(2906002)(189998001)(38730400002)(6496005)(6246003)(8676002)(110136004)(81166006)(33656002)(55016002)(18370500001)(60764002)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:SN2PR15MB1085;H:castle;FPR:;SPF:None;MLV:nov;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN2PR15MB1085;23:v0ILcaood5fY3VQYwmYPxEcmg4/4lLWQfUNPuzNOk?= =?us-ascii?Q?SFybtIPOsaHSzveq9sVoS/hsFj/o4k8xfxLFe2zSZNCVbTCNF/JCljqzSC59?= =?us-ascii?Q?PT6UWww5hrpR3e4Bp0LhEMOcZux/BmXnwoTMv9EsQSTOowYHn3Q/CudyeKDD?= =?us-ascii?Q?HXh4jSaRJPPgR2dzUBeaSRmFUwJ1Sys1/Vx8xUKuhm23GR2fwcOjEqqLVgiY?= =?us-ascii?Q?U9TvVELqESSIbMBxUo22vpFbo7UcEmz0l5YNyHTi7FGerqM2T4+iPFnHF9Qq?= =?us-ascii?Q?vt4JN1tValJg3w2EuIlAyOH83TwDkotFeEMTrMyeb3E29+lyTr18DiPtuGdL?= =?us-ascii?Q?qojz68vWpHkrVY3PXQ345K0XHp7X5jfO94LcapEJDxxYdH3HhUgrPLiVwqGa?= =?us-ascii?Q?xWsJ9StV5NbyqkzmQjLdiQLduCtGmB9O7wKG1q1E/OGKulf90mjwbNxYIeRL?= =?us-ascii?Q?jNsOoDliD0awSpA3GX93Z2DQEC8NIv8lRecUiTAzGS9CDsRW3R7GcnyZvCwa?= =?us-ascii?Q?AbwXMY88m2jQIt32KSyvPbP3XIpZwSew4HEAodbN3pu5NHZ+AAmfNIfI7RXo?= =?us-ascii?Q?hmC+6C0qm6EtxqPWGvLCuquahHo3h2OUtCN7mziaK4O5HajPLuLi+5UChph7?= =?us-ascii?Q?cK3Brtmk1oRHY13kWXZeT4wFzhsbFEohTAYUVTUDryh7TObSkokJGdDtOtgg?= =?us-ascii?Q?pfJFvQgSFVuPrVSciw0bLrvuWWk0/fSRhhtWgMjyibZNtWTIQ4leyVsTX9cv?= =?us-ascii?Q?8fTo1dmm1vDNae+kejufDdgi1t1u83Q82w2+/mtzNN8IWuxcVadSOl1itLf2?= =?us-ascii?Q?O/SzRmkAmwEJrX/xKYVh5AqSTH1HGgxcI9kvkM9xa/855GxuKnmd3CifMplr?= =?us-ascii?Q?yMl5VlFjI2MPe5/9vZWYaSuF/mvkrHm7Zm8C0aEkgnGrQhb98FkZZz+cjxEK?= =?us-ascii?Q?/3nyMDwRD3rXjFoLtaP4ITYkND3YlqwtixQ5UL6FRQPN0521wP5/3LjxnQUm?= =?us-ascii?Q?ZDODIcc0olPxO+PK4VCiDZvuIy8zmTZ8BVJQgiCtjc1yfmKUoe1Cu7qsHCLF?= =?us-ascii?Q?TFZQoQ6GJHwUr2JjUgYFLN4eg/jce5bHLRYBDj78ROSiEaZcFW372ulPyi2f?= =?us-ascii?Q?CjgWgjRsdw6hS2lKIBcOt4hVh7vzEULGIYkXTjvxT0W6plNxhdEdkmsHC8X+?= =?us-ascii?Q?8M53EwA5svSuFwPCZfgj5cBnJt6RlHE2b0yFpF11wqkQiFET7e1LxkRc63v1?= =?us-ascii?Q?StYuevRRBIE0qx+fANBZojk1dlbxTpXv3OlYc9P?= X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1085;6:YyQKU5S/cTD9ZB/jhZhGnf/+7fn5zax5yrBmLdEf3HT31vqMPlEDWeOYSbz7g1owNFSNM9+WeekYdi/IZzCDDvZdbgUS0gBwL3sZRx8KKK5Md2CPMagxcXTwqzVKwSfH6b+7wqDBo9bkb5ABm/E9PK8VXS0gNfw2ruXU4W34QSbO6URRJ+7h8yn66Ae038kkzxewjHC6prgaqs4PNxqLcFKAKomlqWFEzeN8gEOj5P3t4BJMv4tZWAMOp+kBQ/yOFS3auAviTm2NUmBvYVZWUN0VFhL+xsV5VotyEQgNDOct4Ycolx4VOWFl3qt3VagbbcKpKV3qSd8VB3QrEz4dmma2YWhk71BzjTITGtQv8Gdj+WjpDL7QrdgS3m59tnmjzGtTWyurazJjOhezRjF6/P8uHJUoF2cOdi7L/rZTBFuknRnJcEmqmf3PJIK4DMUwdkxbsvFBLeJUXBxP5Clw5NArStlWNGPl3G9oHBLrCEtnWijA54P+1fxE8hqbkyr/SqCw/rd+KgeO3Gi32KxhHg==;5:W9WnbNHy8ddQ+YLIKmkud+aUDEcfUhIQVFAdf+NNZIvLs7aOdbwvRVL15aZOmJVuWkoYuOqDWtxF2i1t4OR9JhTtzrOLSz5yHV0sgcE/HKzDZ0NVqPod1FWhR3tUITdBTt+ksJBh5WxUiLVXwILQ1Q==;24:6KxV+fYvZrLn3AYVxAVFv4cs78OkdU63iJRiFx2n6Zm8BPCsM1gybsgVHrxSUr2xV3WG8BiuO4cztmRVWVsZtJRzns9gsmilz78u9dH4cDs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1085;7:YvZTBN1PbeRiKnuw7Xbx7Q2kk6ch5lIWvcYAzmbg92DhTmrduflL0XjQ7zyzawOLpzp+JaZ0dP/v3kMH9BKzH7vB+X0qWpGya6eUdm0l0UXSZ8bFKXip908uSVXXaHKYM9eq2b2/sxfvVDem0hfGYmv3yBFstFHvt3uBlcAsXm5jBJGqItMZEKto5BzJBLtu4T4+WrRziocim+BeG+O80M2zfHZhMA0/b2CnCH+ER6dcMO0exsG3/i05JLOMwTZLInHvGJi99vI2JnTdss46SN+G1n7LsB3G1UQzBKwP+/W5M7VimmVBcljl7ggaW4+RG4jgc5c0PeBNE2fglRmZAw==;20:/LzSSa4HdswycePNjgliaYkXzDFW9xr43mpRNIwmq5OYC5CrCya7/RlXfKS8llCx6AfGq3MKhi8L+pNWQbeZQavkXAYymiLc7RSm0eBEGu7VRCMFrbVZd2IeIisuhHD0TDckhm+WDX1J/1MmHyj3MkpBKoTOd1SRz2r0fjaCsdo= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2017 15:06:20.7836 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN2PR15MB1085 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-05-22_09:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, May 19, 2017 at 02:46:32PM +0200, Michal Hocko wrote: > On Fri 19-05-17 21:12:36, Tetsuo Handa wrote: > > >From 41b663d0324bbaa29c01d7fee01e897b8b3b7397 Mon Sep 17 00:00:00 2001 > > From: Tetsuo Handa > > Date: Fri, 19 May 2017 21:06:49 +0900 > > Subject: [PATCH] mm,page_alloc: Make sure OOM victim can try allocations with > > no watermarks once > > > > Roman Gushchin has reported that the OOM killer can trivially selects next > > OOM victim when a thread doing memory allocation from page fault path was > > selected as first OOM victim. > > > > ---------- > > [ 25.721494] allocate invoked oom-killer: gfp_mask=0x14280ca(GFP_HIGHUSER_MOVABLE|__GFP_ZERO), nodemask=(null), order=0, oom_score_adj=0 > > [ 25.725658] allocate cpuset=/ mems_allowed=0 > > [ 25.727033] CPU: 1 PID: 492 Comm: allocate Not tainted 4.12.0-rc1-mm1+ #181 > > [ 25.729215] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014 > > [ 25.729598] Call Trace: > > [ 25.729598] dump_stack+0x63/0x82 > > [ 25.729598] dump_header+0x97/0x21a > > [ 25.729598] ? do_try_to_free_pages+0x2d7/0x360 > > [ 25.729598] ? security_capable_noaudit+0x45/0x60 > > [ 25.729598] oom_kill_process+0x219/0x3e0 > > [ 25.729598] out_of_memory+0x11d/0x480 > > [ 25.729598] __alloc_pages_slowpath+0xc84/0xd40 > > [ 25.729598] __alloc_pages_nodemask+0x245/0x260 > > [ 25.729598] alloc_pages_vma+0xa2/0x270 > > [ 25.729598] __handle_mm_fault+0xca9/0x10c0 > > [ 25.729598] handle_mm_fault+0xf3/0x210 > > [ 25.729598] __do_page_fault+0x240/0x4e0 > > [ 25.729598] trace_do_page_fault+0x37/0xe0 > > [ 25.729598] do_async_page_fault+0x19/0x70 > > [ 25.729598] async_page_fault+0x28/0x30 > > (...snipped...) > > [ 25.781882] Out of memory: Kill process 492 (allocate) score 899 or sacrifice child > > [ 25.783874] Killed process 492 (allocate) total-vm:2052368kB, anon-rss:1894576kB, file-rss:4kB, shmem-rss:0kB > > [ 25.785680] allocate: page allocation failure: order:0, mode:0x14280ca(GFP_HIGHUSER_MOVABLE|__GFP_ZERO), nodemask=(null) > > [ 25.786797] allocate cpuset=/ mems_allowed=0 > > [ 25.787246] CPU: 1 PID: 492 Comm: allocate Not tainted 4.12.0-rc1-mm1+ #181 > > [ 25.787935] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014 > > [ 25.788867] Call Trace: > > [ 25.789119] dump_stack+0x63/0x82 > > [ 25.789451] warn_alloc+0x114/0x1b0 > > [ 25.789451] __alloc_pages_slowpath+0xd32/0xd40 > > [ 25.789451] __alloc_pages_nodemask+0x245/0x260 > > [ 25.789451] alloc_pages_vma+0xa2/0x270 > > [ 25.789451] __handle_mm_fault+0xca9/0x10c0 > > [ 25.789451] handle_mm_fault+0xf3/0x210 > > [ 25.789451] __do_page_fault+0x240/0x4e0 > > [ 25.789451] trace_do_page_fault+0x37/0xe0 > > [ 25.789451] do_async_page_fault+0x19/0x70 > > [ 25.789451] async_page_fault+0x28/0x30 > > (...snipped...) > > [ 25.810868] oom_reaper: reaped process 492 (allocate), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB > > (...snipped...) > > [ 25.817589] allocate invoked oom-killer: gfp_mask=0x0(), nodemask=(null), order=0, oom_score_adj=0 > > [ 25.818821] allocate cpuset=/ mems_allowed=0 > > [ 25.819259] CPU: 1 PID: 492 Comm: allocate Not tainted 4.12.0-rc1-mm1+ #181 > > [ 25.819847] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014 > > [ 25.820549] Call Trace: > > [ 25.820733] dump_stack+0x63/0x82 > > [ 25.820961] dump_header+0x97/0x21a > > [ 25.820961] ? security_capable_noaudit+0x45/0x60 > > [ 25.820961] oom_kill_process+0x219/0x3e0 > > [ 25.820961] out_of_memory+0x11d/0x480 > > [ 25.820961] pagefault_out_of_memory+0x68/0x80 > > [ 25.820961] mm_fault_error+0x8f/0x190 > > [ 25.820961] ? handle_mm_fault+0xf3/0x210 > > [ 25.820961] __do_page_fault+0x4b2/0x4e0 > > [ 25.820961] trace_do_page_fault+0x37/0xe0 > > [ 25.820961] do_async_page_fault+0x19/0x70 > > [ 25.820961] async_page_fault+0x28/0x30 > > (...snipped...) > > [ 25.863078] Out of memory: Kill process 233 (firewalld) score 10 or sacrifice child > > [ 25.863634] Killed process 233 (firewalld) total-vm:246076kB, anon-rss:20956kB, file-rss:0kB, shmem-rss:0kB > > ---------- > > > > There is a race window that the OOM reaper completes reclaiming the first > > victim's memory while nothing but mutex_trylock() prevents the first victim > > from calling out_of_memory() from pagefault_out_of_memory() after memory > > allocation for page fault path failed due to being selected as an OOM > > victim. > > > > This is a side effect of commit 9a67f6488eca926f ("mm: consolidate > > GFP_NOFAIL checks in the allocator slowpath") because that commit > > silently changed the behavior from > > > > /* Avoid allocations with no watermarks from looping endlessly */ > > > > to > > > > /* > > * Give up allocations without trying memory reserves if selected > > * as an OOM victim > > */ > > > > in __alloc_pages_slowpath() by moving the location to check TIF_MEMDIE > > flag. I have noticed this change but I didn't post a patch because > > I thought it is an acceptable change other than noise by warn_alloc() > > because !__GFP_NOFAIL allocations are allowed to fail. > > But we overlooked that failing memory allocation from page fault path > > makes difference due to the race window explained above. > > > > While it might be possible to add a check to pagefault_out_of_memory() > > that prevents the first victim from calling out_of_memory() or remove > > out_of_memory() from pagefault_out_of_memory(), changing > > pagefault_out_of_memory() does not suppress noise by warn_alloc() when > > allocating thread was selected as an OOM victim. There is little point > > with printing similar backtraces and memory information from both > > out_of_memory() and warn_alloc(). > > > > Instead, if we guarantee that current thread can try allocations with > > no watermarks once when current thread looping inside > > __alloc_pages_slowpath() was selected as an OOM victim, we can follow > > "who can use memory reserves" rules and suppress noise by warn_alloc() > > and prevent memory allocations from page fault path from calling > > pagefault_out_of_memory(). > > > > If we take the comment literally, this patch would do > > > > - if (test_thread_flag(TIF_MEMDIE)) > > - goto nopage; > > + if (alloc_flags == ALLOC_NO_WATERMARKS || (gfp_mask & __GFP_NOMEMALLOC)) > > + goto nopage; > > > > because gfp_pfmemalloc_allowed() returns false if __GFP_NOMEMALLOC is > > given. But if I recall correctly (I couldn't find the message), the > > condition is meant to apply to only OOM victims despite the comment. > > Therefore, this patch preserves TIF_MEMDIE check. > > > > Reported-by: Roman Gushchin > > Signed-off-by: Tetsuo Handa > > Cc: Michal Hocko > > Fixes: 9a67f6488eca926f ("mm: consolidate GFP_NOFAIL checks in the allocator slowpath") > > Cc: stable # v4.11 > > I cannot say I would love how this gets convoluted but let's go with > what you have here and think about a cleaner version later. > > Acked-by: Michal Hocko > > Thanks! Tested-by: Roman Gushchin Thank you!