From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753075AbdI0NKb (ORCPT ); Wed, 27 Sep 2017 09:10:31 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:54412 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752993AbdI0NK2 (ORCPT ); Wed, 27 Sep 2017 09:10:28 -0400 From: Roman Gushchin To: CC: Roman Gushchin , Michal Hocko , Vladimir Davydov , Johannes Weiner , Tetsuo Handa , David Rientjes , Andrew Morton , Tejun Heo , , , , Subject: [v9 0/5] cgroup-aware OOM killer Date: Wed, 27 Sep 2017 14:09:31 +0100 Message-ID: <20170927130936.8601-1-guro@fb.com> X-Mailer: git-send-email 2.13.5 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [2620:10d:c092:200::1:d3cc] X-ClientProxiedBy: AM4PR0202CA0017.eurprd02.prod.outlook.com (2603:10a6:200:89::27) To CO1PR15MB1079.namprd15.prod.outlook.com (2a01:111:e400:7b66::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bebb4042-f029-4d27-39b1-08d505a912f5 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:CO1PR15MB1079; X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;3:xAJfOkcUmFhBpQyVaQm4VuYy2naxCL9QH/gydL/pYU8ysqaGQoR+pEpCDy5n86KbuB1wrp8GoYxWUY9KoTwTX4+s8ewqfkUQ/XXeFUM+0F+NrSKlOM/qodbDWqpNluF05HETv04WnSgVQHA2MnnSieh7gHbm1ruVCDppm+ToEwpesO61X4eu0XF1qyUhxMV8WTkEECtHl6BoZL1Sy7zgOldN6/AHYlOKiX44kqGYbu1u3lxe57Cme/w+fOVZu1hs;25:Nk2u3MZoKYB4z3AK1fylvI/NUxZsstwTlQM+rsyDE6yibFUqBLsAdo3U/L75bXOEoN8dWtbsm6yWnVHAOttlzl8HyveUVhd5IUXImW3OdBcPOZF5b07UH1o/MxZmlYOWqY42+RQQePPy1Ymto11kDc4J+M4NMCwrH/kNFRGq1Sk0rvh4udtdhDerN49+kuNXquKoFrgcx5ABxNT6hUMPpDRqW8lGQOFTfexDo936cS2nqU3DL1JNL2/VP88YfiQP1Ka+SV+zJc38VyfwBbAoaQOLnytTsGiEhZ1TJv8bptKE32NYd98sgArpfSi4W563OcS5B4eiACAhIlJq3v6xtg==;31:5Wo9NwhtVCpuSxC1Q8/QlQsyEkR0lds7UsFOBv0XeBA5eTCvh6YM0luHw6tGtovnS8KqMzEuRcjsnlDu2TUB7yeR5RAdq4bvQ1i9tlYT7wHRfbCENa6UzoISBK4qVRjnFNKGGDkCfpsmkqllRs1kVxAaO/UCUchdiSN8BWXBNo99cccnzLAJR2r0U4jNMcVo1EMvUR9VrAQ3/vO70IUJOEBEjDKu5xPswwrwqHXYAKs= X-MS-TrafficTypeDiagnostic: CO1PR15MB1079: X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;20:L9N1+gPtTGvmq423VhRHb9DUEufVc/7T+eTo53pwLpIkXC1Szb4PnJ5V/OUlOdFsqA6KyU92ZeSDgxMfwxFmPdi4XHvNIuoxmZjNldKQ3NS9YGq+9xx1iRPlFmMMj6ZDEqdi/6rI2gPUW06KMBiWrtxZGWGsGHxtE4vmPlPudr9RXiF6IvuLZ1hSty8/Nms7K+HLmAnSBQaBIyyZJBLEHqnT3i5fvlcyqQv2BOHi3Aj2GJ711yZqpPmzkWZfjHRwfrhFzwIJLpFMuKDxEafChHvo2Yh9THkLNoGzi5mgI45xMfkU9Z+BsrrVyEkUVXinA2kKGEp+vuxbL3wXihUNI+UMdVnq6d0Duvi6DDcEnqzMlAb3enMCECQb58YW/qSHB045KzaE5jNBI9q2t3dXUGLa9sZGOSVCad5hAeM3PNhMlQwwObnVSUGQljEY28uCZoLqdWNyBWn05n/6kzsSzuqwKaVHtdUEfXDMwEOTNDqpM+WYIud6O7GSLB18li4W;4:K/59ihPx1/8Kjgq5udwNGdmoWw+oI6ASjl0tIbRWviyeRQ8SO/Drf1GzsOnw7nBOfEufR0x8WIleI4bwsRvUPnESXQ1xB7sOYWLzu8S8ioonAivY3uKuznHJ/CfTP+9bRnuUGJmnaYuea2DcGHJ/lAZdAEtuyAt0F+ThcP0oa7IxfOjsAhm7KC9ne9DQh1IAc1ub+O+SIC2wa1FyZIbiD7yAMEn+WGzaZqfcYXgmIow8WJcsfBWPMIHEd+8Njym4vBGpD9nDGOKYX0N/DPGD1dH2BTK5Tz4jhEm2Hlxw98Fc2BChySWaWBn4DbKEg6YvR/0o8Os65fF6glTDv9906sEz3dIZepnT4p6asXCDIcergRrVUnEU3sz+64c5DrJqgsM6DBZHU0xuqhcJP9bJ4Q== X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(67672495146484)(211936372134217)(153496737603132); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(3002001)(10201501046)(920507026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123560025)(20161123558100)(20161123562025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CO1PR15MB1079;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CO1PR15MB1079; X-Forefront-PRVS: 04433051BF X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(979002)(6009001)(376002)(346002)(189002)(199003)(106356001)(5660300001)(6506006)(105586002)(50466002)(6116002)(6486002)(1076002)(4326008)(101416001)(33646002)(305945005)(2361001)(7736002)(2906002)(5003940100001)(6512007)(34040400001)(53416004)(2351001)(6306002)(966005)(50986999)(36756003)(81166006)(16586007)(81156014)(189998001)(6916009)(7416002)(54906003)(48376002)(25786009)(69596002)(39060400002)(316002)(86362001)(97736004)(47776003)(53936002)(478600001)(68736007)(50226002)(8936002)(6666003)(8676002)(42262002)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1102;SCL:1;SRVR:CO1PR15MB1079;H:castle.thefacebook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CO1PR15MB1079;23:Z+eN61CjeF+RooEg2pvsvPbJdqsV/O6ih6j7CWGVV?= =?us-ascii?Q?r8eOZhStKhogcFcm9zYX4BY2Cw6nGzPdOLy6aJOyX3x9CHuRhWUjaQkVKios?= =?us-ascii?Q?AdYhdaMEQQ/6Bqm+7IA2Rd51gIPsdIT79bRvJw18LsateOhQ8hRwy9C89RaG?= =?us-ascii?Q?qrivolQZsLg7lBbgEIHHxfzdKgSXg7qNJqdIO/wR+dnkLJwbLLxtMFCCLmhc?= =?us-ascii?Q?kAw86uqWxgmUjYr6osne28ry3d+R69psU3mCM6ZoHRKOoh4lCSJuqL82Ku/n?= =?us-ascii?Q?sItWxhsdKE3y5SGx+3C2VCHYSbNKCAwWX+6I/rucB2Ejrkbf5DaU7XTevnUa?= =?us-ascii?Q?3Dbk5S9BfOXZM3zbrbGx3GQ62Reyd2ba9lpJzqdudEEjKArCUBBajSo7egeg?= =?us-ascii?Q?jEFqe52SmqpSBGDQEZZ0AnNM0iBzfCRqa4XgdmR7z5O2jz2XgSaVw+8GXfsm?= =?us-ascii?Q?A1r74CEfSC8O53a+JZkAxwi+J2BJwKMY8kJgejK0pVRblz8qbSBChuQ5q5E5?= =?us-ascii?Q?iiXD9JSJullqA4r5jJyomgQ85fRLDn69c7kL9o69y0B3Q0bphLWG6xZeguVT?= =?us-ascii?Q?uaen1Pyon37mJ3e2k8VutBr4Y6swSLN2JOJwQuDPevPXN96jiywaEcL+Q2/4?= =?us-ascii?Q?CV1vu0p8e8ad9St/lRuXcoamM3DUv5Md8vW9JN/oaKNLFbHWxehVPciHNcc3?= =?us-ascii?Q?zwhtuYvPvCGKbnDLvy7719C/S+82Gp52aSeaRGxZRIxlpkQi2yfeImZbEGvC?= =?us-ascii?Q?RzY9DKBzZb2d/zzE/R83GnxMV85tzm6jocFqmLHbtHIyf63oyqQOEril+xg8?= =?us-ascii?Q?cdw25fDjySszModaS5Nl8AA3mVa9chucS4sNnVzB12pUf5KuYtqpgN85admP?= =?us-ascii?Q?zIjlQsjNW8zEjLU2xA65A9mPkw8u3vQ4Fv5zE9D1Bi/yNOdPWjpoung7rSvm?= =?us-ascii?Q?+cqVT7nHINQe1aluId1E6+eeU7h4WWMKVlIxw6WkCcN0oufjfYMlaNkDLrb2?= =?us-ascii?Q?9uNMs9nr/gCYOaA4e+vFF1eXmzsUIihC+mQ8LbBfzGxWuqK6KZzMSudeW55S?= =?us-ascii?Q?CAK41JyUhLtyoYSPrhsw67bFrI+fPrj/6QAk9Zf0C72M5avosD8U6hDzvKMK?= =?us-ascii?Q?hJsGdGTNSjxX7kasupz0HMUQV7/IwS0INGSVqyWpUJUKBc+k3Jp5ATui+or2?= =?us-ascii?Q?Tgs3QTw8Jev5AyLNyQSIIKTo23Q1d6kt6e9uQ/a22Qoeq53pGY42ctN3RAAO?= =?us-ascii?Q?/8RO41SzMoWwHRA2mH1g9tOXv+7Nke5oi4pqRHEnkh/I0DfiEs2Ny8qZZYCu?= =?us-ascii?Q?f1PtLY1gsi1NMUbBn8yimM=3D?= X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;6:LJCvKqXf2nw2gc8dALyMj9bwfaHONGwgnPjipZykE+ru5nbKYU+VNkEIZbqsYpte/IkvXtkv9keZV7ihENF4SnULIGfmWeBKbPHHWPbn7BVkNHiZTdh7IU4DVsbXqsbvXRGMHY8RGLgejH1NcALvemzcVFMUb+8UzJm2C/r3wF9vffUnYtAeKtOGgP3CGKDY1gBF7NKs7wA34EJjb7bRTzTNHe4YPhPpw217xF1sOkNLikIvMOd0MY9HJsO94sHt2w2Eol4bh4kYYvWD4giCYbEmKV6VCP1pwBtK44azZQcizdUcf6++ssDuHxUoDNel7IXoFwGzjzgioB0SsPwq0g==;5:fh4UgR5VDxxzJYrAwFnZ3oehVlKtWQGii4ouPbW3UyEfZRmOkY9oZIg2khPtoGUDmmerDfBXFE+CZwSB+8izkSVwo3NHYWyrnHiyHeoG0gc4kyTj6yosEX/cG2EJrehWXt6kPMzZBbX/yDA1S6HwAg==;24:wQiz8bi5ljQTl/zjndmF0zHILAYFzqRRM0UDqF0ermDrPUnOB2JWR0i3LjmsQRadhoDW7gwYczaUSnIIF6bJUT9+JMleVf2dInxe7JYWnIk=;7:NsEPatPMF+FtX1qZ3WE8HddIje+Juu33Ib28T6VOe3fXLDfW3R+8/YrQkvN/Ejp6M1vtE0MuUU0HLz7QyXt9AgW0yGhyaXxvdTLECrAOBPj8PaqJg6XFzeCFMytK2V8eFePFBTwbYpLfLUS8l2opr+k8sCVwH/804kSxY0gwGpQFmyWJlK2g/U5sxcXbMPCvxe2who3wj0mlPUoEBBW+xGFZrISRbcksuXiI1ADVq1E= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;20:AAZoAUPgzuCVwNTLFp7Xo3LkI8xudrNeDzGYEs/oreVzN69X4bG81eiR3wYGkDTDsFfcYHXJLcP9DIUk3+sul1X19Icf8gAeEEwz8rU+DBvOeiLN6TyVLcRfEv9aIeL7Wx8sVAjeytEEVRyY8xarNvWtSSkEpUyO/Clpq76IHuA= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2017 13:10:03.2214 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR15MB1079 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-09-27_03:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patchset makes the OOM killer cgroup-aware. v9: - Change siblings-to-siblings comparison to the tree-wide search, make related refactorings - Make oom_group implicitly propagated down by the tree - Fix an issue with task selection in root cgroup v8: - Do not kill tasks with OOM_SCORE_ADJ -1000 - Make the whole thing opt-in with cgroup mount option control - Drop oom_priority for further discussions - Kill the whole cgroup if oom_group is set and it's memory.max is reached - Update docs and commit messages v7: - __oom_kill_process() drops reference to the victim task - oom_score_adj -1000 is always respected - Renamed oom_kill_all to oom_group - Dropped oom_prio range, converted from short to int - Added a cgroup v2 mount option to disable cgroup-aware OOM killer - Docs updated - Rebased on top of mmotm v6: - Renamed oom_control.chosen to oom_control.chosen_task - Renamed oom_kill_all_tasks to oom_kill_all - Per-node NR_SLAB_UNRECLAIMABLE accounting - Several minor fixes and cleanups - Docs updated v5: - Rebased on top of Michal Hocko's patches, which have changed the way how OOM victims becoming an access to the memory reserves. Dropped corresponding part of this patchset - Separated the oom_kill_process() splitting into a standalone commit - Added debug output (suggested by David Rientjes) - Some minor fixes v4: - Reworked per-cgroup oom_score_adj into oom_priority (based on ideas by David Rientjes) - Tasks with oom_score_adj -1000 are never selected if oom_kill_all_tasks is not set - Memcg victim selection code is reworked, and synchronization is based on finding tasks with OOM victim marker, rather then on global counter - Debug output is dropped - Refactored TIF_MEMDIE usage v3: - Merged commits 1-4 into 6 - Separated oom_score_adj logic and debug output into separate commits - Fixed swap accounting v2: - Reworked victim selection based on feedback from Michal Hocko, Vladimir Davydov and Johannes Weiner - "Kill all tasks" is now an opt-in option, by default only one process will be killed - Added per-cgroup oom_score_adj - Refined oom score calculations, suggested by Vladimir Davydov - Converted to a patchset v1: https://lkml.org/lkml/2017/5/18/969 Cc: Michal Hocko Cc: Vladimir Davydov Cc: Johannes Weiner Cc: Tetsuo Handa Cc: David Rientjes Cc: Andrew Morton Cc: Tejun Heo Cc: kernel-team@fb.com Cc: cgroups@vger.kernel.org Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org Roman Gushchin (5): mm, oom: refactor the oom_kill_process() function mm: implement mem_cgroup_scan_tasks() for the root memory cgroup mm, oom: cgroup-aware OOM killer mm, oom: add cgroup v2 mount option for cgroup-aware OOM killer mm, oom, docs: describe the cgroup-aware OOM killer Documentation/cgroup-v2.txt | 44 +++++++++ include/linux/cgroup-defs.h | 5 + include/linux/memcontrol.h | 38 +++++++ include/linux/oom.h | 12 ++- kernel/cgroup/cgroup.c | 10 ++ mm/memcontrol.c | 235 +++++++++++++++++++++++++++++++++++++++++++- mm/oom_kill.c | 194 +++++++++++++++++++++++------------- 7 files changed, 465 insertions(+), 73 deletions(-) -- 2.13.5