From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932072AbdI0NLL (ORCPT ); Wed, 27 Sep 2017 09:11:11 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:46800 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753200AbdI0NLG (ORCPT ); Wed, 27 Sep 2017 09:11:06 -0400 From: Roman Gushchin To: CC: Roman Gushchin , Michal Hocko , Vladimir Davydov , Johannes Weiner , Tetsuo Handa , Andrew Morton , David Rientjes , Tejun Heo , , , , Subject: [v9 5/5] mm, oom, docs: describe the cgroup-aware OOM killer Date: Wed, 27 Sep 2017 14:09:36 +0100 Message-ID: <20170927130936.8601-6-guro@fb.com> X-Mailer: git-send-email 2.13.5 In-Reply-To: <20170927130936.8601-1-guro@fb.com> References: <20170927130936.8601-1-guro@fb.com> 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: 7f949dc3-ac7f-4f9d-af87-08d505a92d12 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:CO1PR15MB1079; X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;3:qcXn2OIYmLyxzig7Ns569ejgU+DPeWpxr+rVQ8xfAYKaetEBASRRD31M3zfqPayvAY4/id9LqTiJB7R/ryJz3qgB5NSwEdVMa05CfZ6WmPX+Iquezdv/9oP99MdM2FywiKwe2T3Alb/hPJFb3mQ5bUt8KiSHdYK253Ug3KFY67sl+JZhnk92/T9MSfX5KjlZqMSwK5EVvcdUshehxaUdLOe8/n+Kjd0qxKb+ziWAxHtm+ye9kDqKfRXMYM+qBExG;25:veQmrB1ly5odZjs38stsHzBliXJa7BEzKwuxOkC5cPsMdezrO2T35e0eQ09Gt3mSV6G9nXa4Zj/A2sem8/KTX3QCzO/fXX3CoiedBCxU1Um+ut33BHANhfwKSs8yw1IiiasUwFeg1sWgjCI/ABu9s0pjEP4XS2948J6MdmaOpxYlnr2JMAxQ70GARQuYk6HWiP2kB0RUQl7ujRUgV5guWyHrX6MVWF7RgomvxRKOJP1PZqKZvq+sGKhdwSjJlwvLw8D64jXYRELBkgxR42yQrz5gzPXtCbPqhjVC2nfFgY6UCOlSiu08oY5dDawMY6gia+orbCeMQghPu8+X/10Dlw==;31:BAVCpKSXV8dT3WHtKLs4UjgW4jf7kaCYZxPc1yVGbOtfXSaPZAZ9uPcNPAPnhlmSvaTmgILsEkDCS7RZfxqrsDbbJ8imPQdfA0oucmOoBMOy7o1M6dNR6gFHiE0HjGiBY9BRU+ZMFqkrCU8mgw//RAf7mT8BPafRSwQlloyxYf1yu6EbjtypoZ9BXXlK4OK01AYVk5MKxAZc1pK3DOYXFt+r7aYNCtQGdJ0loAoz37U= X-MS-TrafficTypeDiagnostic: CO1PR15MB1079: X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;20:Fm8cULwe9JAYoUAkWrZS1Snppla+DnrYqqahWJTlL3H0u8rv4AmOddL5WETtYNpfapihNKv7++9HzZDDm73NU0HzVGMqXgtNJZB3BzQwG7UEFFKNuPRh9tUAJuKWL/iVnGGH1qCWg9uyhuJFk7XEBZbjZHikA5yVIyF8rK7S5P120fZxj/inqbilU4nNSZdWvCSVymnJpLs/I7QhuAzsjkz4oqksqVlrlJR1ZOBr8k5kbPFrolnmXnAlaiWklpJM5hWclL0KhoOpJ14uG+WUa7fOr0aqX/3GcL7Ao8O1KaCBC2LWZOF7Oj38BgeE2o1RTLRcuwdMra/gWSS0b/Cd7HAEyDCC5T4sVn+LBc2vxPT0O7hswJyIDIwXa8L6MEqvlYmGaHjsTunh74g9zZ28ApFK8F2Z8ufN0zx53Y3HNaHTXquyP3WKQ74ktpBSCmvWgVXOOYCLLxKYG/ALJxfyp3Un4Yg3vz7qr/JrLdXoCELAxiBN0Qa/SyxJw0/alcch X-Exchange-Antispam-Report-Test: UriScan:(60795455431006)(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-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;4:8hnaflOiWMAaM4S5czO7k7zM0uHAm9zb/ZqtW9eiMMa64FVUT539tXniFHN0TkdXtIwo9yiWzKul359rtf2jWLQDNFNIg1AdCZk7oHkb/ewlFrIen4mx4+WFHH6rc9yrM+xuOZRZinpsNbxY1BnNbdRv8lhrswmU7slqH2793LWGCNT50IUv1+pkk7uXK48gV1YWrlEama1USGXbbNKN/I4pi0yCtR/EpX6/7ydWGKxR9bs59noG8HwANV6d97ZmsyO8KpHI6qzrk+fkG4WFi9lg2t9q0N1yAMtMWyDTUQ2GRHcYvK9/tjc/Nm+A0m8/nvs+QWl4Qlq8aD0WvrwFYYzwdssduGbJNJpD0ev7CffRJBaSuIN6s2uem6RU4Sy91DxSnuMnFVbZkyBeeAPga3JJTl0S1TlGaIyyPoWz57tScNoRnctaS4/KaIkhviOK X-Forefront-PRVS: 04433051BF X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(376002)(346002)(189002)(199003)(106356001)(5660300001)(6506006)(105586002)(50466002)(6116002)(6486002)(1076002)(4326008)(101416001)(33646002)(305945005)(2361001)(7736002)(2906002)(76176999)(5003940100001)(6512007)(34040400001)(53416004)(2351001)(5890100001)(50986999)(36756003)(81166006)(16586007)(81156014)(2950100002)(189998001)(6916009)(7416002)(54906003)(48376002)(25786009)(69596002)(39060400002)(316002)(86362001)(97736004)(47776003)(53936002)(478600001)(68736007)(50226002)(8936002)(6666003)(8676002)(42262002);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:P9Ml7u5WvGJaZYvli49cc/e9HwICnkpSHXGHTfD0l?= =?us-ascii?Q?kL86gfzvemYmNBwzDClzW1b/ku+jTbwzHGX5lv4ibDvzyKJNjHrjw91WKmMr?= =?us-ascii?Q?RZyY9SpMFrJ4L84jUkctfFSMiBwafR/+6LAxiLgpwuRwQA5/ccJmWTXsE/yW?= =?us-ascii?Q?xzhC09ex/JRxFegwLVUUOjz7uDi/6CrkBMMw1sfklB4ifkIQgStUBhZfKFMX?= =?us-ascii?Q?hWsLxjfyzuOXqebxBTNDvPVX4YsivtJzj3z3A80RU1l3pkyjI/hH1cd+2DA/?= =?us-ascii?Q?E3bySdIpbPlymLZhR+45L633i7j6wFEFiiijbpdZ7zVk1RwvoT5kU8hXAdd2?= =?us-ascii?Q?WFOgE/ASYYXpg7dV33D8L8G/fU8iZhOnRfFVXnkZqfogjN963WQxoB+VeLj6?= =?us-ascii?Q?Bjn58LUws2u7b5EQsVgFytU1F5trR/heq7uR4kFKCHt1D9v73fcX7nKiZhD+?= =?us-ascii?Q?3Cb/LvzqV6veUzt6ybJySQv8sIoi6QUtqJ8/gQYEXpNhA1vpQirT3XqhgoQ1?= =?us-ascii?Q?8TEgpt7ztY0w1SefRWfk+FB0ubK6hVDFkCFT72c9MW+yISY/yb0UP7IPgrEt?= =?us-ascii?Q?gKWmZHKd3q80j9aSrujId+BfzPKTC3hs1fm4LHKIi012XTJiKyukDQ9I2K1A?= =?us-ascii?Q?g84LCkESdbkyQs6TQdRSlHWwLTqJf9wbhdCKqoVXLHI1bSNd/Xsq/2Jq4m/2?= =?us-ascii?Q?/9/32b2MegxDRKs7CNDi3X817KRw7dNcBlJsvN4JFC9vS49xQR4sAZ+hKGZ+?= =?us-ascii?Q?3psQoMi0yQY7KOGxR2SfO2RFYINRQB5+V9kN6RfK0gaSE3LouU3k9SNQkAvt?= =?us-ascii?Q?p481Dz/YMTzhgDXIkvhDWOKADDsApD6bNQ6eTihJgTwIXW5MbAepUKZncW3L?= =?us-ascii?Q?AOD3U42mTtTVm5apDGMLKLQnfR3qka8mQUKc9/dC9JpVqdc+lLMHHFtlo9j3?= =?us-ascii?Q?VSOGBbOWCaNCbwGXRLedJp3G6ubZVEsid6pudotmorM0PgId8N3rSEZvbcno?= =?us-ascii?Q?gu9lYU3rzCZed5vEHBdFbW4sUGc08ULiPgx+u4XfmzgXR7mDIc27Yh6DpwAG?= =?us-ascii?Q?By9Lh6YJoKtyLBCrEuMCOR/3wV/8s7LNPe1njxyyoh8NoYPim//0qBBX3e5w?= =?us-ascii?Q?8U6UAeqmxS5Tas3z5Fyc9ZlEmpuGCRLLSQKh5OrY8Sd51WxWsBdkvj8gt8dc?= =?us-ascii?Q?pAFoJxKecekfc1towClnUuvXX5KvfhkdYlRa1/U6TeqZD33c+IHPx+3MKSNs?= =?us-ascii?Q?ofHeywvxwo3sknCBog=3D?= X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;6:CtGZxP1zL2AmKZ+iZ0Psddg3fVoU+YwizGrCiLYE0KddU1t49t67RMz/sUExViAjImS4XkiWAtGWXZw7NAYCgI3da5KaD6MdG9Hxw44mxjkXgnQ6eJG92RQUTZptJWM9OeJcyEHat+x4qvwYN87LXA7C4MKjKoi2lwIB3XoKhdcUcAJBa/PjrZC4rinRqF2RJT/yfAdl5+xXDctecb45KpqRQOFNxkRfhhR2sP9VOtNQTMTq9mHzUSoncbDk8tH3fGN43O8H+cO2vO4v+dbc4e2wG8cX2PdPJGCDm839nPZwy4EtwoFK/AJM0kmOFVK8+RgkZ94ZOIeVCew4AH+k4g==;5:v+yVnYVhOWcEJCxqN3dXfJMHLTuJMhWDzUT4Z8yhRFj8j1TdAJPjlSyOP3xf7EcwUz8ZcGxTYgYAdSfXbgeojqf69ucNBUqdgUgUGzjjfUBKTKy6KaCkUv3Vk9CJmf8Uld084YXk073gmOh7w0Uc6g==;24:3eEKi2ErhxXCBNjLdPXmNimkYRUtXOFjLQNGjauYDC5ezPf+aMBcgneWgDyoGykHn6VzQTfhT0hIY7PnBME52RFDy8v7hmA053Ov07ViZCY=;7:XpUk4xQziIDNbMGn2h33RiDo9uyL92r+nd//c8+Uk700eIu0Di1NQiSyIuGjEAiqxgqx6HOYMgaMPFGf0dcX8NfAXNareQyudK/k4Iivcz/JWSAqH6Be1oFko088EY5dEi1aR0Uwgedt9arNf6COT1Kx0yszYyzD7eLTTCPmfJsMDK/dZ3cj0wYqNVj0MtGaz1ubp/2xkR+aFbMz9n0hUyTQKNMZA+Zrk1YxhPrfoBI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;20:glEuWcJfE0yyADhFaRoX7yozYZVAUWOEKjoSmLyJBZNY7cU4BSMzTbrpqhYmLHCcvk5S56CcTzrhQt4R1HNe3Go6zFoZrjy6Rssr1ZaJ338HvVWFUtESIAy9eoHNz8tvMMy7EHsEH4q9rpfSNtnOtagLqvdmck1YE1VvGWCuG4c= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2017 13:10:47.6916 (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 Document the cgroup-aware OOM killer. Signed-off-by: Roman Gushchin Cc: Michal Hocko Cc: Vladimir Davydov Cc: Johannes Weiner 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 | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/Documentation/cgroup-v2.txt b/Documentation/cgroup-v2.txt index 3f8216912df0..936dd60b8d6a 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 @@ -1043,6 +1044,21 @@ 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 and all + descendant cgroups as indivisible memory consumers and compare + them with other memory consumers by their memory footprint. + If such memory cgroup is selected as an OOM victim, all + processes belonging to it or it's descendants will be killed. + + 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 @@ -1246,6 +1262,34 @@ 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. + IO -- -- 2.13.5