From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753428AbdF2SsP (ORCPT ); Thu, 29 Jun 2017 14:48:15 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:56270 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752729AbdF2SsL (ORCPT ); Thu, 29 Jun 2017 14:48:11 -0400 Authentication-Results: I-love.SAKURA.ne.jp; dkim=none (message not signed) header.d=none;I-love.SAKURA.ne.jp; dmarc=none action=none header.from=fb.com; Date: Thu, 29 Jun 2017 14:47:48 -0400 From: Roman Gushchin To: Tetsuo Handa CC: , , , , , , , , Subject: Re: [v3 1/6] mm, oom: use oom_victims counter to synchronize oom victim selection Message-ID: <20170629184748.GB27714@castle> References: <1498079956-24467-1-git-send-email-guro@fb.com> <1498079956-24467-2-git-send-email-guro@fb.com> <201706220040.v5M0eSnK074332@www262.sakura.ne.jp> <20170622165858.GA30035@castle> <201706230537.IDB21366.SQHJVFOOFOMFLt@I-love.SAKURA.ne.jp> <201706230652.FDH69263.OtOLFSFMHFOQJV@I-love.SAKURA.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <201706230652.FDH69263.OtOLFSFMHFOQJV@I-love.SAKURA.ne.jp> User-Agent: Mutt/1.5.24 (2015-08-30) X-Originating-IP: [2620:10d:c091:200::3:63e5] X-ClientProxiedBy: BN6PR06CA0059.namprd06.prod.outlook.com (10.174.93.48) To SN2PR15MB1087.namprd15.prod.outlook.com (10.169.192.137) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a05bb1f9-c794-4ab6-8948-08d4bf1f59b3 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:SN2PR15MB1087; X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1087;3:T5rLFVBS1qg5QinWdvP+C9k4L+ky63JIr00KIishE3SlyaJ5ZpVTyCShZssXb0NDwxxEehVHWQhiqpqQci/DydGaIydHYfD7zxkvr/dkhJsu7v/b+I0BLuZAEwyRnqEuJD8a4K1kbcHt0ArBz1M+6I89JhhTFfa0DhOkyEeZ3QsQ4gLDcwAalJY+SyZavfPKR2RNhm1BAniIfWstkVYwvL4CJ2G8ITg2gfUz+C77OJf21vAHtWC/PxE0SSyFilVkbHoa+mwaUAPI36k9hU+nGhYQo9O5XK+bLrBwDtVvjGuFCtfeq+i56RB6vpIHR8Qk3nRyYQZn3q34pz6FMC+0oCNSDEpX79/LjRKTcyu2AmYJ84oU11HKSP8n2ofQYOYfmF8yliqyJhAwcGsiSErIib/RSGzJvrRK2IlO5681rM6hOYqeSvxM1Fo69IfrcCHoXXyiauf7Mkef3xFBMqO4TjNupfKcysLHciuvbJTOmRlvnsrnRn0WjvX2LPW1deVUY5qEU0jSLXLg/ZjvJ9udmUaDpTljI3XcpFlO5CJBhWfbeCY29iA9YhkYnfqr5GC/UXG/2hoOxJRXVUGD8J3+NXw/iRaoZEyG1CxeVEhAIJJoSxWd9wkTWCViKJKeDH2dQkkeP2l8WS+WVWRMq3UiSJsutV38fBrc5hqXSd08w8aF2wba+Ws+njY7T7RXLzV8wiN4n4vFcIcyQG9TU7gEym9BkRBaRpeR3NonvTdR238= X-MS-TrafficTypeDiagnostic: SN2PR15MB1087: X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1087;25:4YnfqqAkR05atT9FF8Dr4NZT6NT0Ed5LFlLfLX/KSpzR2uhEwohHG9BIkWfALxI4dh+B/I7DXSfUrOSKdrdVpmAAs4/6GwUVqFVRjaa84PKJqFOJXMRsxnTUu8nWHkut1c8+X7tC15HYApE7LMHZuQB1wCtdkYmVGRzqqLhc7AFjRYt2nVIeYHrZg5pn5D++6Qyxhb3tlJOx7C+P4pbqCES2dASldcPYJG1eOfX4+aAo1Xii9lATZRWbHb3RoWO6kfYx7W8gaMb2qErqFBjaG8uIJKtC0ixXi7HHyQPfSqyQUzBYTuWj3oT6nDqYDNKVEs6uJbNCLjz238Q5VPRSbChUoeIozw0I3KDJGyntq9+13YemgBqJgN+9sfIdlhlJKCIGm+0hzW8GqBcqQVMrTm5/z50v3IDiLbK8Ibfo3VuYN1nwZU+ssKEUtCbqIDPUyFOZmuj1xdou1XfX15RnSSCJqx/Wx4+lYpg0KDMfLuw9DoLW66lpAfXfacdIJRodLLG1M6oJljKb8gQDHuq47ou3WDsx5zEXdIugWpe/uFb9wNGxn0lstRcpxilsjHNy/JypvgWlTeWi359OcBZw2ak8sUtzkwHE6R3NSQRXDDWuA9AQDnjXaa0XwSiN62z/njWu4+ky5hLEg6HtkOWk89Lz/ZZmjjOJXxDMcyoedtSu87j5spoWp5IHTZlHA7PKBRTaNnEQb5naCUWHELYC11PsSNhPw96RfdslTXNLRrmmRp9KRP0bCwRxGloHsd+UWb+q1kZE0mX19h2NcJB4z231v+BeGn5AHa8z8cnoY0Kb2NRldYIoxYntzRTrUT1q7ZFMZWj4pCYUQYz5WgZwD7gnXOIEiSiM1RedQhVjqdJQ/YccAevPUbMYLX1VzTcOTUENPNEXn8Wd5Bx95iL1du1dygGUJlLNPZN0pphkT1s= X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1087;31:HE+qJCaPcPRgLKup6dcxwjvnyzGyo2X9Hidz7yYlv7/51dzM0E0QSNoWNsrBkZA6ySGOmLvBV6WExxQ3qU/zaCAN2feC8gtTW8cxpv+ppDpICQEA4/ZPZHxwXQpxHO4SqCHhB9MIUUmzbpCbVbhyIyMshpkpkFkGgpe9Vk9rEeq4aqg23P41SvFXXBdZBLIFOkP61Thg66zGkTpwcyHuFMW/B011fIXw9m66l8I560LZ1IUtLuZObXHC6vZZx9wyvwx6l/+bb5+aOg79Vd1wRqyOnDq20atmj5J/kfFTLS0cqMfBoScKEvwudSzMnBC7ABy6urUVrNl07VtvS9HLRTlGXQhLk2lAqys5YwNpeSjLbKcBbmOJhYSqMJLsXM3oXy1ILmKyYcQup/01vH1+iG9uAmBnojQolxiafKcYrx5nq6IwOR2t6DdT44HTFz2GsTCdoII7JkYBuRCcRMZw/ciSzGtaSwEuYFjPSGMyRBEIn3UabOdh45CsJBD/yfgEBBGZuRWZzD1XaemdoO9aJbYP1PGXCuDrriQuqURg+X5eqgxysZlkwdOgm2M+UuHjFyVVtCyqW1dEv/++rBNsyP/4kIrNzV1b8xPiEQfp89HcHbymNnBEFtop/DHxRbtEl8zUvm/BDccBDwqZxImfw6xId4q8Q+D/ngJ06+aFF0s= X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1087;20:X7pynhOrRQUtUEPGFSx5F7szdV71/StLgNAGH4PtVzGuoGI0tmCNbc80mf65XZ0ow90fQheCV8dTdK6keSAlrnSS768ZTUkp8xLR3S5OALB3g5bFKegU+MWQIyT9a5u2aCn1x6OsKxm0Yflhmr2MkQmHppxTtQXbDaOOhmMpEpmKOIhNge7CoITDMQMpCX76ni81cCYnGWCMNuL9rJc7Hb73itUOeKe5G7Djgt4Fu1s3pB332wpibYttTUJ132qvdDoAINQAmfLJJaTHGJIpiSsy0XbuGfOEvx+0K9MWZa7RY8759Udg8fMWTMldAN6VTFVERtlyWXx/moffuvhD0PzMtaLc2xl1Y4l740/6yV4nb6oo4veDpHdVRXwYdI73cNuFfvPQD0x1YIvlJAD67Y+BUwdEbvIeWlwpL5/u/8M5fn7gv9IwQHS03pwRXkLvNfPEokA5/rgdTsK5ur14+iT1L9Xuq2BlQhqXIRV6/KW2jEfAW3UiS3dflrj23oCL X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(148574349560750)(209349559609743)(247924648384137); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(6041248)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123555025)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:SN2PR15MB1087;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:SN2PR15MB1087; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN2PR15MB1087;4:tbbod5BhRjzixdaYH+dFeJxS81H/7aN1G+6ZUUlZ4R?= =?us-ascii?Q?HcYJob5OqW5eHMOMWWuyui01OVIEJp5JRSz+a/TWlZM+hyP0nEqiKBlEfQTy?= =?us-ascii?Q?lJEfgOdb5dde9Xpeo5iqS4mewT5m/RX5bYt0rjiLQvDitGYKEqXaDGW54UII?= =?us-ascii?Q?bml6y0TVN6MdZFjOZrHjICyn+NFdaaGvzeqwgRJdb+v29n0T8k/uNi9iRi83?= =?us-ascii?Q?G1vl+3Lx2QYosWioUc2C/2h7FGyHpuz8TR/EzlSYzJJYWZUF6j7SOSFYi4iz?= =?us-ascii?Q?z7fkZdBDUDfC+kCqDQpWyadt5uKKKyAypSv39KENagcHwANXaFMkk6SyfFzF?= =?us-ascii?Q?9+OG7PT9xagbdUkJUMhX/MEtY+AgogOvQiSFpYGARTkLxvIA+wbWZrF0vIRN?= =?us-ascii?Q?JHEFiZsDbi8SWnt+CR0SZ6FRFW60CcSwk2n/5sZpzCcUdCRyuDTq+lpRz2t1?= =?us-ascii?Q?89nEy/5RCJZCJYQ+LlgPgHjQxqWb2K28munqteg/pgxujsb4wgQsvTu1ZHOz?= =?us-ascii?Q?DOTTd5x4j8RDPYZ0dp/BWyonqHhV8EnewzNw5CG1M9UB9rkkwtUndprjzq/5?= =?us-ascii?Q?OByc2DKoN2wSt2aH6dQwInzkng+wVWTiAEoKm3MpqNCkjNgHC+OKRF3mRHpP?= =?us-ascii?Q?IZIkka79BLt7tKVaUhUQZgLz9l+ujFX38bt45XM2HSoHbgbcWFUvO4rMEpz/?= =?us-ascii?Q?AUg4d+FEraSj/a2EEaE3tPD5yhXelzRofthDPmWW5mWv6iB0Zi+HpngylLSN?= =?us-ascii?Q?IOIfmzljA8JvsiCLx7DaG8eAEjOskSkHF73bKAIuxnm1QDj5s31pe1VHSID6?= =?us-ascii?Q?Mei+bZLTEhpQD0YbP7n5Woa4XZaIi+2UoANrFKG7AECsM3MMT6jEgBWYw7Mv?= =?us-ascii?Q?gVApUvth1fOgf2gnIotQLz61ecHRVIUEp3bQ04cbZVBgsU3sGzgCrOU6U6zw?= =?us-ascii?Q?YN/Sqw+qSPUA8oHWvBSoNSAX8vpD1Z9OBtKNjdw/Rhdegk3wHaHPrkOy04fu?= =?us-ascii?Q?KXhNWrsZxA0r19iD3cvCaCw/9atM7Tk1KYT6aXRyaHUMbev/jjdG+YFMkB9w?= =?us-ascii?Q?ZKH951a2RzHZbnDzZBGj96VdcDEUyqOH+YSfJNidnSSzWgW4CJZHFmjrMJQl?= =?us-ascii?Q?KywN0lmVZ4HmTTv10z0rTMR08ASfr41SxfNzLr3fdjcXUGMk1FB+BRWb7jBd?= =?us-ascii?Q?OQkF4B9Q3RK0eofweP/G0wU6/XpIsvHCKrXEuPq8/d5CHBL9nVWpxiv9iPF4?= =?us-ascii?Q?7bYlcLQONZQ9iqoMDtY0wch33BQtp950HqY+jNOrywlxUdKJwRp7O5mQunEg?= =?us-ascii?Q?=3D=3D?= X-Forefront-PRVS: 0353563E2B X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(39840400002)(39400400002)(39410400002)(39450400003)(39850400002)(24454002)(76104003)(55016002)(25786009)(478600001)(189998001)(83506001)(33716001)(4326008)(7736002)(47776003)(86362001)(305945005)(50466002)(4001350100001)(9686003)(6116002)(23726003)(93886004)(8676002)(50986999)(54356999)(33656002)(1076002)(229853002)(6916009)(42186005)(38730400002)(2950100002)(6246003)(110136004)(81166006)(53936002)(6666003)(6496005)(76176999)(5660300001)(18370500001)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:SN2PR15MB1087;H:castle;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN2PR15MB1087;23:gLojrai/Tjib5WqHiF0/J1ph4upXEGEF16aOP/enU?= =?us-ascii?Q?Skx0YamsPDtQaH1LaQuy0LlZhj8bQbPSQQezuFD8VLpWAxA1vJZUNvXbJy3o?= =?us-ascii?Q?KjcpV+6hp8v4jMuMnSxxWj8jy5gtz3pLBSwkHEWK4awoLggDNF4Uyl8Kurh/?= =?us-ascii?Q?ynePRWc9WcFg7JlwUeOQcJyMb0sWbYyAb1CjhUEb/ngVGGaka9/B3DsFtvH/?= =?us-ascii?Q?MYipYjk7HFSo1PloWdEMRwHpsZqoCOBD3CPOX84vBThezggsrF/6b+K2X0TI?= =?us-ascii?Q?WXe+LE1glE3un4wUYEIGK31OOqi5aWNIWnwUIX143+FE8yNNcXIXihB5nV/k?= =?us-ascii?Q?hdAnjGLsNFIkeBIlFMh6SJJsIN43QfAQypPiLwc4/hxpwoHBlqtkRxjJs1au?= =?us-ascii?Q?0pQvoY6i6JdH+7TvkRbcKBiYszuMwxJN2PF1r5tS3k/Ebrl9qSqTxlzIP+02?= =?us-ascii?Q?MLetVKj8zqgM5a+5KZG+fIBjB7wAjszEsZ7hbbEBQaR9GqOf4OBGwrC8gvrt?= =?us-ascii?Q?O/rTltHFmtd6TfIQTehAegAqQXT3DgJfaUWFpVHlnixwYEypngFxj8vG09r/?= =?us-ascii?Q?4yHlM8BfLqJEy45LyAtubbtAbx/khj5yxRjAxgl4DfVxlNnKcmGIIh1CKwQK?= =?us-ascii?Q?zvLA/lwe5Noa2RKDv3LNCdh2oIMy/oRqm6FsEznA0Cl9hCQsyTDEHL8VHo5T?= =?us-ascii?Q?mc5QM0oeGKVBsBcOU4vWjjp4QQMLSRqSaRlb40S6lhc5NBwG42520kPYcj4g?= =?us-ascii?Q?E69eHdFRefkJOo4ofhGPKdEzkZohxphSWM3e9i89Arrqlgz5+Pd1F3bGSQjy?= =?us-ascii?Q?n7CDIuE3YbuMzWv3/g5ElZz2txtidaYV0PSUQD7BG28WvRv0JEfzQSdLqDh6?= =?us-ascii?Q?r90tHf/WcezsKiFNulBiAuUcnN82/MjdVijWZCVN6W6TJaPi9OULYXSXgkeh?= =?us-ascii?Q?zLJWzb/dJQJv1Wq/iMCZgJSSf2Nb7xJYcF9eYXLrr+knsSkB/HRv3wUhYuWN?= =?us-ascii?Q?T2W0bTjvvScku3fKU2Pb8HWBm5enSL3iVYPkRppBPgWUP5/BAfnTVfwmInaj?= =?us-ascii?Q?Dv9NJXuY8fdXVALVaqdBq9gQ4iRmRuCfFJewDCRxpbUwDbVmHzYSMfhN6q/v?= =?us-ascii?Q?UwMpPBk8YSEQklxJ1KSaOL4GFuN71oytK4/qhsKieLJJrCrpgB5QA=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN2PR15MB1087;6:XG/qStWocLtYSmb9bIj3NpeZUBSLjYuAiIK5y3u5B5?= =?us-ascii?Q?JI2tE0V6IKX3qG0bMpu8zolNFZfm5jtXALgiFOo0iTLZ6CR2ccHyxh4hT07C?= =?us-ascii?Q?AC4eSnv1Gi7xaebD1HK1+h+Rzq2PRCoXO9rGOspU1rKZB3gnqYUFOj5xMQSJ?= =?us-ascii?Q?j+QO71NqIX7tsB/fyxscnGeSFdc5pnP+0ERt7ZnQ5gEkGGB8LEE3dXBXALJp?= =?us-ascii?Q?tTgkK//HHhhFCIlRiyDmLNqKztMaVYbqz0+yPo/HGQiuyOfUMg5DnVr69+fl?= =?us-ascii?Q?gCcJdwbRlwtbjZ2E/rjLgQ2yrYjOkfwHY2qR/4sM76rk2U63giOM/Y+7f1bc?= =?us-ascii?Q?0nMt19IbSCLC9wYJQTY8pNLDsDrsUxhIwlCQTpePXfSczsv6bO1InS2vYIRS?= =?us-ascii?Q?BT7+Lvu+O31tJvMChupCfE0buzn8m+kyvwFrzNT3mUWXkznWumXI9tGM/xH1?= =?us-ascii?Q?V/udkhUwWkjcL4X7LZq0OvU9U00LlBuzD8BG1oqOutk5ciE1YsPlu8vToFlU?= =?us-ascii?Q?DmjLogPCwnNIYCt2EGJz4Uab+tL/U22XcqC6rUP2ICW96Oe/kY+ZIMf3BNjA?= =?us-ascii?Q?Ek3NSVLSkPN/H5SUSnI7oNEpbNKJFKVn5JlBY7Fr+itXKvZ4n140D6krRk10?= =?us-ascii?Q?Gm9BP9xFwwXJkoqYJbWFOQAPA+wKsy1UslZdHCCvYDiiXTkF5sohOPxcQI+w?= =?us-ascii?Q?uNu94GEjmym0I5uooQGnpzslvP3j/5IazbctmztqcPLyR8fwctJQAOBd3iza?= =?us-ascii?Q?Uk3qTcf8gQPnf+oKoyw97zKTBneHKrTTHZQkFtM7HDW44jultunBq7dBi5qh?= =?us-ascii?Q?aeP6Adt0XSBO5BSMWUVstRRdWzCjziUAna6H0JPjf4c2gL56uGGzlQLrs52r?= =?us-ascii?Q?/+jfhln2rRs9HsihQDIoPVQ2gjpTvkV+YxtwR9cxR6fclckqBWbGN/PTtEAL?= =?us-ascii?Q?LdMCnVazdp6qK9O9dDZS10tR3HT1Sb+JSqvhdiRVBgk/wfHgFhraa/WqQ3j9?= =?us-ascii?Q?o=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1087;5:y3vOh0/GoSlk55bCMO3+SQE4/Eei46aMiQHT4o7ZHz2ze6oR4gxsYiOQKAkabyOaRhHBf/O6fLKSfBgVdNwVNPQj+3QqQH754S+8Mg3qzR/kixALDQvXG4r8QDHqt/tzBTu6491eu9XoatRtSCR872Fd48MSSkxNajni54jLa2AFy3JerAFrWD1QKEuHw9zwnJGfkIQJ9wDzYZ2p1SZRhdM8RFUPFNK1P3a3JGYiifV/PILI+XYTmOxbqF0NQ1qTeqb5D//srg3AfJcLqR72WrpdlzIBQjxe1UK0MtKoT3NSFyLqWvVVzoSftqVDKPjgW/Lk/v4eal9uq+YjEDOTFuVK/dWtr6qaptGuXCXox1ZqmD4BUsPHWGRfpVWVfUZttI9yjWD6k6efzaPIC4k5EZubUa7HFSw4HM61FHSbBm43AVRkCYF6KFHAriP5CbEAN6VPVbW5s06hZC7Fpgcvp1kVj5mKmIhEzqFH9FTEt3PfBZwMtE2P891LSTBLsc75;24:dWdfMZaZ8/zDEBKMSQ1EqC9u+hiyts+X95GQTpVoO+Pc7h1fKbl/N6oE75z2KRwUkL4UYebIV9ZSqconplZgRnFWw2qexRZ3hZJdqWsN8xs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1087;7:Wk27njsJ6rtXc5fhlS3oL41hNTXLENZoXcyhjFVVCrTZs9Qod8PEI7wiR5H2lc/mGPU4bDGBuXH7qBySe91aGL5zWo552cejFcB9OLF3mabfSbNOaVFix68kEa+OQfRi2ECEcH5Yk1Mt4xwqjxfu0H6RuFb8WZLVaEYbP2/mn1k8/yhYKx7ZtGNXSYM13AFHkIc2a22E5KUHpnYw759XMjZLDYI7FSVYZipIgMBoCQaH35zXl/K9H+COvYIxBtvjFEdcuKQU3bbTzKiJSiuFGQDqw1/WMyFZKfkynA5U+zd+J9by9BPoaOkONItYDL1B3Grn4U7hp6FW8HqjgHd6h+vX0JqSOloiDk1S/WwqYrWeVcNmxO7XEY6blqzoK3tx4aWJUPdbTOAvDHy+n9s+hKK3FaSLjcm0U8cNK+UkA49KNNRNSHoZgBFIm4Tzmji5A7VLyf0sHeM7VFuAVyaPgI3ipPoyUdbl+TTwoK9X6SRuKfW8ZoeYp/hW0adATjeEDSOlA0oFAJk90RWqQU6rf/Gy7AeMeHxEhZv3g2TQRzCNyj+sXh/DpRtYPZhslsy37p9lN8tQG/ZB6jaZOeCFuOy6MIIWEosXW3ZdGWEFK57ti1Ax5U7O4BgyRjd8hqCconAPbmCw+vjIfIQ4lSC8GThl89MxAwPYkvaIpOGCKCqh0aNeIQfG4mndvv8vhnZMZcpQl+lnh3ltx8uqaFFUtIraFhUQ3rwC5BYVNLRd8aJLPRElfT1PUwOuLPfzE2yvm+zC8vTZ8jh7DTN62Z2skKDdn8bpQQp4+n0HWa3uhoM= X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1087;20:k6U7WTJ7pY7novjKZ3T4nGuSqxs3bwnH88YaNlygR6Yr70GiCLMSCos4jSo92RbZhPmnk91kumeNxjFBCyjdGa0THHe36tnBZJE8uU1Xu9OfEZ0FRS6721TnP2uKXMIA4c2AHdNZ1MULdrm15sm8OZMojUypyCGFUDDDYjWYYE4= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2017 18:47:52.7105 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN2PR15MB1087 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-06-29_13:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jun 23, 2017 at 06:52:20AM +0900, Tetsuo Handa wrote: > Tetsuo Handa wrote: > > Roman Gushchin wrote: > > > On Thu, Jun 22, 2017 at 09:40:28AM +0900, Tetsuo Handa wrote: > > > > Roman Gushchin wrote: > > > > > --- a/mm/oom_kill.c > > > > > +++ b/mm/oom_kill.c > > > > > @@ -992,6 +992,13 @@ bool out_of_memory(struct oom_control *oc) > > > > > if (oom_killer_disabled) > > > > > return false; > > > > > > > > > > + /* > > > > > + * If there are oom victims in flight, we don't need to select > > > > > + * a new victim. > > > > > + */ > > > > > + if (atomic_read(&oom_victims) > 0) > > > > > + return true; > > > > > + > > > > > if (!is_memcg_oom(oc)) { > > > > > blocking_notifier_call_chain(&oom_notify_list, 0, &freed); > > > > > if (freed > 0) > > > > > > > > The OOM reaper is not available for CONFIG_MMU=n kernels, and timeout based > > > > giveup is not permitted, but a multithreaded process might be selected as > > > > an OOM victim. Not setting TIF_MEMDIE to all threads sharing an OOM victim's > > > > mm increases possibility of preventing some OOM victim thread from terminating > > > > (e.g. one of them cannot leave __alloc_pages_slowpath() with mmap_sem held for > > > > write due to waiting for the TIF_MEMDIE thread to call exit_oom_victim() when > > > > the TIF_MEMDIE thread is waiting for the thread with mmap_sem held for write). > > > > > > I agree, that CONFIG_MMU=n is a special case, and the proposed approach can't > > > be used directly. But can you, please, why do you find the first chunk wrong? > > > > Since you are checking oom_victims before checking task_will_free_mem(current), > > only one thread can get TIF_MEMDIE. This is where a multithreaded OOM victim without > > the OOM reaper can get stuck forever. > > Oops, I misinterpreted. This is where a multithreaded OOM victim with or without > the OOM reaper can get stuck forever. Think about a process with two threads is > selected by the OOM killer and only one of these two threads can get TIF_MEMDIE. > > Thread-1 Thread-2 The OOM killer The OOM reaper > > Calls down_write(¤t->mm->mmap_sem). > Enters __alloc_pages_slowpath(). > Enters __alloc_pages_slowpath(). > Takes oom_lock. > Calls out_of_memory(). > Selects Thread-1 as an OOM victim. > Gets SIGKILL. Gets SIGKILL. > Gets TIF_MEMDIE. > Releases oom_lock. > Leaves __alloc_pages_slowpath() because Thread-1 has TIF_MEMDIE. > Takes oom_lock. > Will do nothing because down_read_trylock() fails. > Releases oom_lock. > Gives up and sets MMF_OOM_SKIP after one second. > Takes oom_lock. > Calls out_of_memory(). > Will not check MMF_OOM_SKIP because Thread-1 still has TIF_MEMDIE. // <= get stuck waiting for Thread-1. > Releases oom_lock. > Will not leave __alloc_pages_slowpath() because Thread-2 does not have TIF_MEMDIE. > Will not call up_write(¤t->mm->mmap_sem). > Reaches do_exit(). > Calls down_read(¤t->mm->mmap_sem) in exit_mm() in do_exit(). // <= get stuck waiting for Thread-2. > Will not call up_read(¤t->mm->mmap_sem) in exit_mm() in do_exit(). > Will not clear TIF_MEMDIE in exit_oom_victim() in exit_mm() in do_exit(). That's interesting... Does it mean, that we have to give an access to the reserves to all threads to guarantee the forward progress? What do you think about Michal's approach? He posted a link in the thread. Thank you! Roman From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roman Gushchin Subject: Re: [v3 1/6] mm, oom: use oom_victims counter to synchronize oom victim selection Date: Thu, 29 Jun 2017 14:47:48 -0400 Message-ID: <20170629184748.GB27714@castle> References: <1498079956-24467-1-git-send-email-guro@fb.com> <1498079956-24467-2-git-send-email-guro@fb.com> <201706220040.v5M0eSnK074332@www262.sakura.ne.jp> <20170622165858.GA30035@castle> <201706230537.IDB21366.SQHJVFOOFOMFLt@I-love.SAKURA.ne.jp> <201706230652.FDH69263.OtOLFSFMHFOQJV@I-love.SAKURA.ne.jp> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=date : from : to : cc : subject : message-id : references : mime-version : content-type : in-reply-to; s=facebook; bh=WpnzAgmyCTldGbVPc8TmEGUP55dRu5HMvgGKuafTl6Y=; b=FwOjk6ZMujhXnUT4EjeEeUTwDpcR+Qs41zqyPFJcq0zOQKXKO+nRkSzTwxpUp1MkrcjY ClDlHHRmyawNK0lUbH3aCcLwWJfbVyAmCuLrrN8tQ+xptT1nDAnSqZE/Q1iAxIc9g015 q5G8kk0oLLbH/z/LD8iUFWTRRaGxbR1NSV0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=WpnzAgmyCTldGbVPc8TmEGUP55dRu5HMvgGKuafTl6Y=; b=SlV+U8KejXj5AnC/Hf944fjfwmzIS3M7P9Y0vBJPEm8Jx9MXkST1t1Zmw0pDmNFVujGBdja9RUGsvWe8sN9mSijimkXDcqV0vXOqoSxPsBehAbzFfxY4P9zJwZPSkk4sWSaqinMHbpEpki/bpeAMj6ydpz3r9EI6f3nhW9X7d+Y= Content-Disposition: inline In-Reply-To: <201706230652.FDH69263.OtOLFSFMHFOQJV@I-love.SAKURA.ne.jp> Sender: owner-linux-mm@kvack.org List-ID: Content-Transfer-Encoding: 7bit To: Tetsuo Handa Cc: linux-mm@kvack.org, mhocko@kernel.org, vdavydov.dev@gmail.com, hannes@cmpxchg.org, tj@kernel.org, kernel-team@fb.com, cgroups@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org On Fri, Jun 23, 2017 at 06:52:20AM +0900, Tetsuo Handa wrote: > Tetsuo Handa wrote: > > Roman Gushchin wrote: > > > On Thu, Jun 22, 2017 at 09:40:28AM +0900, Tetsuo Handa wrote: > > > > Roman Gushchin wrote: > > > > > --- a/mm/oom_kill.c > > > > > +++ b/mm/oom_kill.c > > > > > @@ -992,6 +992,13 @@ bool out_of_memory(struct oom_control *oc) > > > > > if (oom_killer_disabled) > > > > > return false; > > > > > > > > > > + /* > > > > > + * If there are oom victims in flight, we don't need to select > > > > > + * a new victim. > > > > > + */ > > > > > + if (atomic_read(&oom_victims) > 0) > > > > > + return true; > > > > > + > > > > > if (!is_memcg_oom(oc)) { > > > > > blocking_notifier_call_chain(&oom_notify_list, 0, &freed); > > > > > if (freed > 0) > > > > > > > > The OOM reaper is not available for CONFIG_MMU=n kernels, and timeout based > > > > giveup is not permitted, but a multithreaded process might be selected as > > > > an OOM victim. Not setting TIF_MEMDIE to all threads sharing an OOM victim's > > > > mm increases possibility of preventing some OOM victim thread from terminating > > > > (e.g. one of them cannot leave __alloc_pages_slowpath() with mmap_sem held for > > > > write due to waiting for the TIF_MEMDIE thread to call exit_oom_victim() when > > > > the TIF_MEMDIE thread is waiting for the thread with mmap_sem held for write). > > > > > > I agree, that CONFIG_MMU=n is a special case, and the proposed approach can't > > > be used directly. But can you, please, why do you find the first chunk wrong? > > > > Since you are checking oom_victims before checking task_will_free_mem(current), > > only one thread can get TIF_MEMDIE. This is where a multithreaded OOM victim without > > the OOM reaper can get stuck forever. > > Oops, I misinterpreted. This is where a multithreaded OOM victim with or without > the OOM reaper can get stuck forever. Think about a process with two threads is > selected by the OOM killer and only one of these two threads can get TIF_MEMDIE. > > Thread-1 Thread-2 The OOM killer The OOM reaper > > Calls down_write(¤t->mm->mmap_sem). > Enters __alloc_pages_slowpath(). > Enters __alloc_pages_slowpath(). > Takes oom_lock. > Calls out_of_memory(). > Selects Thread-1 as an OOM victim. > Gets SIGKILL. Gets SIGKILL. > Gets TIF_MEMDIE. > Releases oom_lock. > Leaves __alloc_pages_slowpath() because Thread-1 has TIF_MEMDIE. > Takes oom_lock. > Will do nothing because down_read_trylock() fails. > Releases oom_lock. > Gives up and sets MMF_OOM_SKIP after one second. > Takes oom_lock. > Calls out_of_memory(). > Will not check MMF_OOM_SKIP because Thread-1 still has TIF_MEMDIE. // <= get stuck waiting for Thread-1. > Releases oom_lock. > Will not leave __alloc_pages_slowpath() because Thread-2 does not have TIF_MEMDIE. > Will not call up_write(¤t->mm->mmap_sem). > Reaches do_exit(). > Calls down_read(¤t->mm->mmap_sem) in exit_mm() in do_exit(). // <= get stuck waiting for Thread-2. > Will not call up_read(¤t->mm->mmap_sem) in exit_mm() in do_exit(). > Will not clear TIF_MEMDIE in exit_oom_victim() in exit_mm() in do_exit(). That's interesting... Does it mean, that we have to give an access to the reserves to all threads to guarantee the forward progress? What do you think about Michal's approach? He posted a link in the thread. Thank you! Roman -- 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