From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753122AbdK3PbF (ORCPT ); Thu, 30 Nov 2017 10:31:05 -0500 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:34524 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753130AbdK3P33 (ORCPT ); Thu, 30 Nov 2017 10:29:29 -0500 From: Roman Gushchin To: CC: Roman Gushchin , Johannes Weiner , Michal Hocko , Vladimir Davydov , Tetsuo Handa , Andrew Morton , David Rientjes , Tejun Heo , , , , , Subject: [PATCH v13 6/7] mm, oom, docs: describe the cgroup-aware OOM killer Date: Thu, 30 Nov 2017 15:28:23 +0000 Message-ID: <20171130152824.1591-7-guro@fb.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171130152824.1591-1-guro@fb.com> References: <20171130152824.1591-1-guro@fb.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [2620:10d:c092:200::1:447a] X-ClientProxiedBy: VI1PR0602CA0002.eurprd06.prod.outlook.com (2603:10a6:800:bc::12) To SN2PR15MB1086.namprd15.prod.outlook.com (2603:10b6:804:22::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6299b362-d84b-4fc9-4733-08d538071a67 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603286);SRVR:SN2PR15MB1086; X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1086;3:DhoDLpY2r4TUxrbt+lr7l4UTX4tIFqkiT3f3qJEoqQl+NF0+Ctr7n5uEanM6CRF4zMPNNla8rfzvt5Pi+cmIJUDTjbUseycyedY2t1EYpc7+yFOVl5moR/WhtNpMW7dGdHcRUpeDO9K3DsQTJpiPtNxnCThbXEARIxxJESGwBkZBd+FIhwfYgK4e0+byJ1D8QP0azXwYyHnp14h0GYm6xElI1hvFlPOkQfpu6k1yIZ8ZJ15TX7G1lIttCMYrHwh7;25:51yyLY6Jm9XzvSmyPQeXp5YvuPAwL6XZzE2Ml4EzZfY7QclxwCSienYvGUb44LNcLj83oQweSnLC/mV3q7IOFyLX/mtlLcIzPWfkKZOuKNelXNxU4yh9TTvUvTkwpt/AcMvwCUnuPOx41tOrY0C+eOQt0b5s8TFjgPUOtWGt1eSZOomVLOyhYEe4T9zd0USFuhZg1iOef9NbnWPDRLeKoyh6chpDGsrayTezN7TeOb2f54nmxsdR+qTk/B2H966RAGp/vRzUsa2zpDWDHSr5tdT59Nob2/ml7gUnk5IoT+TQsG/PrstNo7Y00brXg+A+zeyRiCzQ3fCWOfOS19BHrg==;31:y1iG+gM0dymrGoph2nKxq5gpGHlKywZckrpOoN73fnuLeAuA5/fWqgto5GODmQturZeUqsThcYWE49kOY4YMevSi8o1t/lD5fZY38QKo9+MWllXJnhNK+xDwsai7z605tUufJOorYhYQdvHrMtpO6TojDwu5RMmR9uOu3PC1bfS1Kos9xBmIHVIr28UCq4a24HyYHxi7jA+Cmtp/2LrPZ8kqzhSYdulswB68XVmeDb4= X-MS-TrafficTypeDiagnostic: SN2PR15MB1086: X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1086;20:+1pc6GT6fToD7x+NwF+pcnwT53uUu5H/QTW7OlKycciW5JCzKfsCAPgRfH5RJUxLsRIC/YjVzOVy2Z/SZubCYFVEU3iK/1IHW6ZWwAzH/6qHv2RuJy7CGaJGNo+8srKl3H2+ZbF0S7sMk/kbA2QRLN6MUTGBu0NvfHCY+4X0RNstDKqpIAUr3jqK3o1zLNoU11vAis8lvsSwBYH0jpUmXG68H5yNuCjGojr9+PxVDYpj7+BpVnlF0kMB+1qxSEcgELt0+bIGtcZDcsxHtZUTJKeZaQEG8wJdr1eN+n4kRfUMF7zotrWfzWdBuJvmY1MacuoYretMn/UdXDRsi3ZIOXVICtW/IGz3DzKRkQ9ndfbwswTHvYnxbe4kHkxsUFP1Xee+eKoRgYdek48fr8mQBQRMqNaXSIGjt38xb2Hc4R1aWgFrRYKCdFA4hHrtPyWz87GBaMQRfjm304trVbc2UTxIMPWxiDIa3LvkN7gUKTsPPngycksHSC7WResAFulq X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(60795455431006)(274141268393343)(9452136761055)(67672495146484)(211936372134217)(153496737603132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(11241501159)(6040450)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(3231022)(920507027)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(20161123555025)(20161123562025)(20161123564025)(6072148)(201708071742011);SRVR:SN2PR15MB1086;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:SN2PR15MB1086; X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1086;4:dIj4u9s1zkTK267laLMFb/ak5ORzNY1dxeZrRTmGLtelxLr3KpFgWMpB3X+cyTNUdOcBCD1hVCIcWuJY+awSM89mlRpM2Hplp7A4MPagejY355HO4+3Xbc/E26C+7WeD2V3AVIqJiV6pumW1+3I6Elgs6B5drNVYJhie5QF67XJ+hXzmQMKP8QfyWKROnhCAX0ESvfC9bf3q4btxuGZs8lT0dYyggK+9DkxDLHdkVCsyCfWTekt3F+iEZBGgBmWr1n+sq+UZhc9tqJI5kQFHKEzFjpW3hJR1zjrrDu03ZSJ6gAzp6Hg0EvpzQ1QPEXU82fLBv6xvOQLxM5D87u1v/AGDAmewR0ISchCiJcjAxSC3kDRG8ODOqWgu6pW7Xksla3U0frV6bK84MynKrNfH0DhQqTC2s9xOpfU2cK8yqP8vbLJORN2w7DKiEAIuxBh9IlRNsca4LpJ4gIeO5UpJ99eV1KS7A85Z13v5+1kySUY= X-Forefront-PRVS: 05079D8470 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(346002)(376002)(366004)(199003)(189002)(105586002)(33646002)(48376002)(6512007)(1076002)(34040400001)(8676002)(7736002)(81156014)(81166006)(305945005)(36756003)(5660300001)(6916009)(2950100002)(6666003)(97736004)(50466002)(7416002)(52116002)(53416004)(6116002)(68736007)(316002)(69596002)(16586007)(51416003)(2906002)(6486002)(76176010)(101416001)(6506006)(50986010)(54906003)(8936002)(50226002)(39060400002)(4326008)(106356001)(53936002)(5890100001)(25786009)(2351001)(2361001)(189998001)(86362001)(47776003)(478600001)(52396003)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:SN2PR15MB1086;H:castle.thefacebook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN2PR15MB1086;23:AGAvxKewBLIEXiWuZ0m2/OUTlhQAmPQFahHKO880C?= =?us-ascii?Q?iPrrX9tZKvcQNPx1gI0Z/K/oaO6lWADPiMoaFRq+lWcY2fSHeFvhpS2c+7ce?= =?us-ascii?Q?+FSW/bzBOQgrVCVv8b75fuVPlu3fT2sDsG8wMCRhdtxHrcTMfDQBC1GwurOA?= =?us-ascii?Q?72Pqmq5sz7x1jaIKOo+QgqCOkOpM335WeFRhH1fBnWommzThJas6o/opla24?= =?us-ascii?Q?5S0H6rwCKy5hNKWoAejXR4C19rWgt3Oa51E+HP5tUa6OEZ1Refj/5PCx+uaU?= =?us-ascii?Q?DjMOiDzxgFGnqlTpfq4AhpZrjLkYmXcaFzhXdqjkFD2s7q1fQzJMcdb+glo+?= =?us-ascii?Q?+Xw1u/BmCc2iUlWuTY4sOdtbBESa0GvgKF7Ly79A6bbVhQJjHxG2+acMtp1b?= =?us-ascii?Q?SMLy3gQfnvYnYbjKiqo5se4uh6tAFu0r7lOqCTnybRNF3ke7iQ92SoJR3RAS?= =?us-ascii?Q?m7oLUQLz8uhV3f5LzYdVRBgqyWEhFsftooy4y4RNN9dDR2HwDodzowIsX7yt?= =?us-ascii?Q?o9F7mveN477R89QM3oIgFArSgTIAyxPI8E9Xn0Qy7t+fCsbG8R97v6ct9Xjw?= =?us-ascii?Q?ZrqgIZThQjCfulmFCxjyWR0KaGhbp2P/f0D1v/AxtuSyN1+c1+v+uEWkXlrx?= =?us-ascii?Q?hl2AAQ7eiXLL08mFGVJ26D51ssdj49lsmXQEb3Y7nbPCJ1DxXlFrWeFZ+nVv?= =?us-ascii?Q?Z08LyI/4RQS12ZL8i82zUSWuJU7emzDyU6Jc0hXxHgLRY2ec5M2LsdrWZp3x?= =?us-ascii?Q?57wIQrqpQGfNEfonJXDCIqdwHeOK0DwIXrE6gIBSr2vVW1EfqJQ7AjQHkStE?= =?us-ascii?Q?zT9dNz2ks/VIZdF/PXI7s7Ao/pzLirK3ptFV7qsb7E3lA3rj9/1SAYqcZ3lz?= =?us-ascii?Q?d0EuzBo+Nd3J2qxTh5Q2o29oIGHSYbqzqnajvypqvm/s3eOOr2VZhzv9c1uz?= =?us-ascii?Q?huDUJ2KBYThb28xIGimgFc/OK0lUY/yQsHw35hzY4yviq9WqTLjQQSYfZ0zl?= =?us-ascii?Q?ClCQMX18vAyLUIHoF0KD+nEldqmiZA5k/KSS9EUnUDypMVz+taSDi7p2EIlp?= =?us-ascii?Q?FlWhZuQCa19Q3ryjkKT1/XeYQDqYWhSohc/D9eIqUCwWY2KiM+3RrmUnniq+?= =?us-ascii?Q?XB+dmd7N8/Q/NE/u+WpvYcOEj1EpnuI5NS3PKfR9jG+3HDsnd+eHJD0zeheW?= =?us-ascii?Q?mgXtzSmx9RPm92S8LQ9egphRchEBD4xoP1GXPehqc3IMsa8LFjcabSScEXbu?= =?us-ascii?Q?2xKu6aa1TRjelm3mv2igOZcBUJXuG5sGSRntoF7SRa2RY372XPfWnrF3aiWq?= =?us-ascii?B?dz09?= X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1086;6:2lKkIeRTW2SIlpn93nAuIM4flHiZkgeEPhsmt6ShDnPvvrtcqUg7recXfEewW47+U8kUTY7klTxoHtyGgBJs+QhU25SxOc49ldiXZ/qKTJZLFNioBRFbxMKMjkchkwAkuwxeEadHcCaymYsXXBcn/ZUxJWx5PfOmqHuX1L3/2pl2MWc2wcWDFS2Qda1aPyfAGWi96nuvomh8rKIl5pCLOro5INq54rM2C+FDY+mwXc1+xEsLXk3fRXX2onLMoC3an475mgyMgfa1Uwn8RnsPKG2IL3bHbTLAkNxUroryGRtpb33ffOXo9HWFK8s7z4GY2jIUqLKtr5H8gGV/ae+oM7Rrl/h4Nl4QjiWMAMncqME=;5:zrWuIo7ztqFUSOgaGUkV81q+DXMkC/Hp/EMjaZbKjKN145x0PVwbvxOgMqbb17XpQKbVUE4kROSq5fz+VwCRHZzW52GM0YbG0IyS0ceQK33ZRC0IQXiNjgjdBng/KF47etQNX/K3x6vHDUzJehl1wGRtwzJqxWJ2dCgEMLAj1BM=;24:LjvmMvpl4saEJ/gPw8VbZXETew+SCC+Ef9wlU9E8NS7bPhp84rgnXoyniCBLJLt1/PG32IgLDZGrDPZNHyPQaW894UU0aDj/snEbdKi3u7M=;7:sI3FzdHbUjaWZjEfGMCj97oBrbotl+3kkMR7YOkjxI04HZJYv8za1QzE0ursyZ5+uTAVlzY0ToBKEk9BjGk0xRgVK7GvI0AiwBny30ysZoTUtmL+X+jGQgVL4aD2tr1tUuOV9va7nnProDAsrWsJn1ZRoyrWfpAGQ0gCRYdO1pL3AEjchL883XhUy7L23f80at20RSE+1lmKmQnoCuGUyWKKu4Rhe+wXp4ZCgBarh9vxiIwGbqTBI4YDX18rQI1b SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB1086;20:1Qs640ATv9YKj3tSQW+hyhs+fMn8EYf6bi4keI1vFIiTowA6nvIXA6+sw8IS0yqkCmvTuGjlVBsHrnyWnsaxErdeT1mNp1GanlwmQLHS/DfmeQKBoqtbOM6BJwx8fd+xJYOUeUXvl6GQYE9wI1XSc9ypZqfRyHbRFolPe3TTBj8= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Nov 2017 15:29:07.5912 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6299b362-d84b-4fc9-4733-08d538071a67 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN2PR15MB1086 X-OriginatorOrg: fb.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-11-30_04:,, signatures=0 X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Document the cgroup-aware OOM killer. Signed-off-by: Roman Gushchin Cc: Johannes Weiner Cc: Michal Hocko Cc: Vladimir Davydov Cc: Tetsuo Handa Cc: Andrew Morton Cc: David Rientjes 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 --- Documentation/cgroup-v2.txt | 58 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/Documentation/cgroup-v2.txt b/Documentation/cgroup-v2.txt index 779211fbb69f..c80a147f94b7 100644 --- a/Documentation/cgroup-v2.txt +++ b/Documentation/cgroup-v2.txt @@ -48,6 +48,7 @@ v1 is available under Documentation/cgroup-v1/. 5-2-1. Memory Interface Files 5-2-2. Usage Guidelines 5-2-3. Memory Ownership + 5-2-4. OOM Killer 5-3. IO 5-3-1. IO Interface Files 5-3-2. Writeback @@ -1026,6 +1027,28 @@ PAGE_SIZE multiple when read back. high limit is used and monitored properly, this limit's utility is limited to providing the final safety net. + memory.oom_group + + A read-write single value file which exists on non-root + cgroups. The default is "0". + + If set, OOM killer will consider the memory cgroup as an + indivisible memory consumers and compare it with other memory + consumers by it's memory footprint. + If such memory cgroup is selected as an OOM victim, all + processes belonging to it or it's descendants will be killed. + + This applies to system-wide OOM conditions and reaching + the hard memory limit of the cgroup and their ancestor. + If OOM condition happens in a descendant cgroup with it's own + memory limit, the memory cgroup can't be considered + as an OOM victim, and OOM killer will not kill all belonging + tasks. + + Also, OOM killer respects the /proc/pid/oom_score_adj value -1000, + and will never kill the unkillable task, even if memory.oom_group + is set. + memory.events A read-only flat-keyed file which exists on non-root cgroups. The following entries are defined. Unless specified @@ -1229,6 +1252,41 @@ to be accessed repeatedly by other cgroups, it may make sense to use POSIX_FADV_DONTNEED to relinquish the ownership of memory areas belonging to the affected files to ensure correct memory ownership. +OOM Killer +~~~~~~~~~~ + +Cgroup v2 memory controller implements a cgroup-aware OOM killer. +It means that it treats cgroups as first class OOM entities. + +Under OOM conditions the memory controller tries to make the best +choice of a victim, looking for a memory cgroup with the largest +memory footprint, considering leaf cgroups and cgroups with the +memory.oom_group option set, which are considered to be an indivisible +memory consumers. + +By default, OOM killer will kill the biggest task in the selected +memory cgroup. A user can change this behavior by enabling +the per-cgroup memory.oom_group option. If set, it causes +the OOM killer to kill all processes attached to the cgroup, +except processes with oom_score_adj set to -1000. + +This affects both system- and cgroup-wide OOMs. For a cgroup-wide OOM +the memory controller considers only cgroups belonging to the sub-tree +of the OOM'ing cgroup. + +The root cgroup is treated as a leaf memory cgroup, so it's compared +with other leaf memory cgroups and cgroups with oom_group option set. + +If there are no cgroups with the enabled memory controller, +the OOM killer is using the "traditional" process-based approach. + +Please, note that memory charges are not migrating if tasks +are moved between different memory cgroups. Moving tasks with +significant memory footprint may affect OOM victim selection logic. +If it's a case, please, consider creating a common ancestor for +the source and destination memory cgroups and enabling oom_group +on ancestor layer. + IO -- -- 2.14.3