Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751004AbdIKNSY (ORCPT ); Mon, 11 Sep 2017 09:18:24 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:47886 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750715AbdIKNSU (ORCPT ); Mon, 11 Sep 2017 09:18:20 -0400 From: Roman Gushchin To: CC: Roman Gushchin , Michal Hocko , Vladimir Davydov , Johannes Weiner , Tetsuo Handa , David Rientjes , Andrew Morton , Tejun Heo , , , , Subject: [v8 0/4] cgroup-aware OOM killer Date: Mon, 11 Sep 2017 14:17:38 +0100 Message-ID: <20170911131742.16482-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:180::1:db0b] X-ClientProxiedBy: DB6PR0501CA0003.eurprd05.prod.outlook.com (2603:10a6:4:8f::13) To SN2PR15MB1088.namprd15.prod.outlook.com (2603:10b6:804:22::10) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f7187171-3fcc-4848-fd17-08d4f9178af8 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:SN2PR15MB1088; X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1088;3:ZzSGJgc4KZkt8a8v+ycyWYsEMajQyZvouikfYyPIWXTsody0BemXhcsZGoOJp0+ZFZkeFLeA2HLT979GYHp3JhCsIHgE14xwYQmhdJC+UOFCk+rVt+TwJXWM5HqJoNqJoS2hqA07c40X3PwYpY1Tkb4ev3ik71keEpIhz6OOCHQDtJuV4OzYd68lbxPgBxTTmTSNF1j5wpaAG2yt6NgVmuUTvhpgToxA8EnRojVz+IjH42GctliTjZs1FmghGaUA;25:il3Uim3K5u4GaZxXHM2Ww05ytnzopJV8KqRqoYw/9LlBON/VX6rlZ+XfgSonckuFm1PEj60lUSQLGPy+8yaR+Bn4VabM0IFMsbo9NWf46XOOS5TfwCLIPaTQXUOzyiZepXVYJhml3o0zLrbPOPz63f76vbyt/zDVitV/j79fabB+KS9rnIi+yHaKcT8RuXHBzajHMr442rN2prXUDr5dqc8Oub1XryU2fRnSH136RqtKfdmBb8AeaYFiJzS7uJDlhdOY+Yupq1vWW1x8LyNp377hGc6O5e0du4JutJHage+mGOeXsn+e1PmXXL6oPTYcpjpDIhx2FFa9oYpSug7Jmw==;31:dUvMhD1Pi1oe5kIIfr0w/dOnt7swCKPIJgSJVTtoIbTuQhE9gAFsCM0yZ9KF7F2aMvF1/81N6MhcNBCOWFY6x6tDk1ORyVGXU4DzSoMPMG5//M9TWy/qwpMws0UwKLtzXn+WwZ7eZ8KrsxaRFfD32cO2xJBd6zukfadhv4i4gwKH42FY35+Axao5MxE3T84od7wqgDRhxlzsFcrWPyMMoNOG+3LcE7JwmrUux958UqQ= X-MS-TrafficTypeDiagnostic: SN2PR15MB1088: X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1088;20:BnhOqBnOH+8QLN866KPABiA4rfQZNUuGfYL/BD3gTIvzA+DA7NPQ4a9RF1L4AjDctShBid0pE7iK8H4yNYJaJH3FvI/JoQN3bZbtBa5CzuEvCO9enlr0JlnsFzLqFfZUE5nk2rSpxjj+5m6n25Rxgmx8q9/IzotFF0VibRatROwDeY95DLo34lGG4ZTyR3zkqxkcMvZ/xMfb9oJHqDyffJt/PRRHJP3+r7lLmk4jr1GxKHp0ZKdgKOJgDoA4Ef1rNJhg0zjjcLs8dh2w9DhBbYKRnlNepYIlZEfSFPOblAiRjAlLnbbcgUfRRz2FGQG1I/5+647uhxW/O3oOckS58hosTaRqHAlHJrQTEPy4wZ/0LhiUS07qWkOItHQiyjqcXG/Njs421ukYeWuWBjeUAT2su4lZmqUT/LjNY41KWatZ58tMKllfHnfEkC3StJx6pJmnSOAPpKxU+9vjzhCDGf/hxq7M7a4pfUlzOoYL1H5L/jzvnozwt/M126HqCS4I;4:w70U7C1TEHiLaNvgQxkUhHEgmqqVOari0Q5NWQBgDFIqHAupLd1PZUuijf0dQbifnVSCyD9PxbdwyKF+WQRjAWySX7PzE3vDPEJufejYQ79Zf021Rf10fXfny46ZEFGODkQ5G55U5CJmnFIiaXIi90wwGit9Qfl9xRiLX4CEz8sa1sSAP/AHNFRNEagk2sUDxJinvC6SCTFntaz4MBH0ofVuLEfU4vzzSpXNKQDjcHcJdGdVEoJBuG6Ny2ZX27Zj0OSDGqXMIDp+Smov4vQoVf75ZccpNog3319b1DfEKQp6nu98S1oD0gzlMf5KNtH3ZkZZ3vnFcka/wpLey02GjhtjDZLkR8KC5ZoIA3UiYxXY+MrRL/0eoB3UABjbzO5N/UpevBDcOFVQP7QdpmE2ag== 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)(5005006)(8121501046)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(920507026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:SN2PR15MB1088;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:SN2PR15MB1088; X-Forefront-PRVS: 04270EF89C X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(199003)(189002)(101416001)(105586002)(48376002)(110136004)(36756003)(4326008)(50466002)(305945005)(34040400001)(7736002)(189998001)(50986999)(8936002)(6506006)(39060400002)(47776003)(86362001)(6486002)(53416004)(81156014)(8676002)(6512007)(81166006)(42186005)(54906002)(6306002)(50226002)(6116002)(53936002)(5660300001)(7416002)(966005)(25786009)(69596002)(2906002)(97736004)(6666003)(106356001)(68736007)(6916009)(2361001)(5003940100001)(2351001)(1076002)(33646002)(478600001)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:SN2PR15MB1088;H:castle.thefacebook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN2PR15MB1088;23:nFzx/sVIqWX1l5ImgkC76/JY8gRicRbavn3loX6zU?= =?us-ascii?Q?R1PeluFTffaFAL/MxNRCWmpHDYL85z3A4oN2MwrRBP1d5oJz94lQsj/Jxrop?= =?us-ascii?Q?uypT50C1qVuSwFvaAVW9utstGYI2H4EjEIgSdCQ6ZREGDEr8mzAQcLHFkVO/?= =?us-ascii?Q?pVTAgMfSjlMihkIWOqYP6pCGha8gRb/wgkBWilHnS0oKE6gt6lzzlKTOt4Ih?= =?us-ascii?Q?bxNICE+3prC65NFikp7yKVa7KeykHs+4vwSccSpB9mJXbT2onpa9AZ6Eo+m+?= =?us-ascii?Q?lYtlSgbrtcf4Hq4lLTWPEIu+Q19xpAxrU/z2e1LGHxVpoIID03Kj8z0EcZVr?= =?us-ascii?Q?CDJ7dCi9Kd0mnxrQNEAeIWDQCbY6k1cNM7yG1InRK3jYLoQ0ZBpkDUP0jX2e?= =?us-ascii?Q?xCGERU+Mwd7oPTzgX0tyQwQLRBasDFHLC1FS1f7OL9WruseafkX5qOmBSM5C?= =?us-ascii?Q?IKRTC9s26c+hswMWSlKqSegU2ogTFmnygz1eiMiq9Zqp5k5aScOkj4KWHo1W?= =?us-ascii?Q?apf5l3qNYrI9Sela2bPHYWaueC3Hwk1Yx7qdGo6qScLsqS11QauYvNFwA18C?= =?us-ascii?Q?DdrDak/zwSZLh4oA6yPE6l1yRJf1ujYETf9Ka2Aen0i5LobLTkN/btytk7ak?= =?us-ascii?Q?Rt0rPcojjopqcTnnL6POWu0Lj8glqTptPJ6yU5MIN+9IZeCDR8jHcYnEtdeY?= =?us-ascii?Q?Wa42VvYuw9eggmEDDMnMJfMhLro7wVKLiZic1DElhlBkDka8mOZVwVM1WEka?= =?us-ascii?Q?xuw+Wy/Sl6rlsUG0g3sA/m76/9Bo75aMYsRfkyJtGJAVrXhUFE+nyw4YYhr1?= =?us-ascii?Q?8gARm0Vrqj34Qj3suY4VP0J5Ca0aogBZCBUVI++Lef6AGyyXqeYf7LbwhrM6?= =?us-ascii?Q?Cc91LtMBcH6oYALmVrQGzxNSdg3WnSqoQAKruNQBntLfXd0KquOOaayFCOWz?= =?us-ascii?Q?gIy11suHSSFDsOtYV5bTIcWvq2ZUxIhGS9OnuOYB/YDXc12Oj68wbnbQYC7g?= =?us-ascii?Q?bYoQz9u/LWWPggWwJt5LrSDg4uAKnK9FpLyhK02A1F6/PreH/lCFR4mAoY/S?= =?us-ascii?Q?GoLupJz2Iyz3aNqO1j5KzeinVU7yhpXOB4M4I8aDkl9LvHuGUQM8lnmQhsFS?= =?us-ascii?Q?s2qsC7CQ1SYwqnWAV9k6yVbXRdOhRuhDku+64LpRptsG8qh2f6RNNWCrBTIv?= =?us-ascii?Q?sqm4Ys20xjJUWE=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1088;6:vuvI6AvcZAuhhoR9DsayIdSJWQCnhwPX2cewapWaE0jX8IyOyJf2JXR15EuHIm/q4b6dGGmNh/gNOSvhLAofl9mJTzX1ckDfMAhrsS6lDrxRxjamrG1xQ6GIHmUJJ0WNXZotBGFWLP9D5bjOeJi9ycTDKicswAoybsIEtfb3tFAZkD2ltsRr8Jm28WyM24ZoVyIKnrymV6kU23xe3XuEihtlndlShTDwgmKFcnqZ3t0mLiHD7gIASu5Dvy7fkfAwgS7yxGEMd9IruGAmrVpiOl8RDwVetVX4LMpSi7LT+2m7aV5W9L848qp52QLNBkNdTBCSih2+G1cVPoda0B4piQ==;5:cv0ysv6SqW6coi1oBt3yijgi3sT9aKnyZ41UpO/1HD8PvZQKeaYgIhbhsfmQ7zxpYcg2fPsUE9spavdvjiqKUnMOuaLhx2MSyULvseJx87fUgOB+Kr7F2dJwz7jLmhEfDVeekxaYsX2Fls4EzLx9FQ==;24:bdXZPu1meG9SNEPxgBn9TXXv/e3yScFV2kFlbhB+wl9d3V21ul1EKHsbRfGdvNzg/mI5WsNKLg7HHMkETbYA0dcOtCSjzhTUPobCWzh189U=;7:+89ldYgC4XoNO9VVKJyEKqR9MiJviuQizTeeotwwjcxBjnSvZge/KnQfzeK/3eF+tO+4WTdO8zSNLEUqL4OdFK98O97WgtgaX/uwqZvEgbUS17ueb4ee6zIISzur2YkzJ3EshoItd8KxALvGWtrgibIM51RkA1ki8hXlvTU5aS0VeiiHRgLOxxTW5NXxIC8RF1SmbP9SRpSzPbnfuuNoKznD36XdmRdIssiAx9M/Bug= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1088;20:H35P2zq03iP/PsGiFIZb2pu8iJUJcBJwObpLtvoo0MC1MaET7DeceoBUoKR+Ch3WA46cS6ZZjaM2YzQohrvfdbrgtlOdy71rMmQUfAA6ezGiKvDYTFXEQ1OKmXewUc0gcyGscKwXU+QTyaRYFDmWSDgp0gvjy0AJV9zn8+NQn7c= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Sep 2017 13:18:05.4719 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN2PR15MB1088 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-11_04:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3185 Lines: 93 This patchset makes the OOM killer cgroup-aware. 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 (4): mm, oom: refactor the oom_kill_process() function 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 | 39 +++++++ include/linux/cgroup-defs.h | 5 + include/linux/memcontrol.h | 33 ++++++ include/linux/oom.h | 12 +- kernel/cgroup/cgroup.c | 10 ++ mm/memcontrol.c | 261 ++++++++++++++++++++++++++++++++++++++++++++ mm/oom_kill.c | 210 +++++++++++++++++++++++------------ 7 files changed, 501 insertions(+), 69 deletions(-) -- 2.13.5