From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752648AbdJDPss (ORCPT ); Wed, 4 Oct 2017 11:48:48 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:53336 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752458AbdJDPsX (ORCPT ); Wed, 4 Oct 2017 11:48:23 -0400 From: Roman Gushchin To: CC: Roman Gushchin , Michal Hocko , Vladimir Davydov , Johannes Weiner , Tetsuo Handa , Andrew Morton , David Rientjes , Tejun Heo , , , , Subject: [v10 6/6] mm, oom, docs: describe the cgroup-aware OOM killer Date: Wed, 4 Oct 2017 16:46:38 +0100 Message-ID: <20171004154638.710-7-guro@fb.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171004154638.710-1-guro@fb.com> References: <20171004154638.710-1-guro@fb.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [2620:10d:c092:180::1:891b] X-ClientProxiedBy: AM4P190CA0005.EURP190.PROD.OUTLOOK.COM (2603:10a6:200:56::15) To BL2PR15MB1073.namprd15.prod.outlook.com (2603:10b6:201:17::7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 419f6d72-af72-4208-925c-08d50b3f4e50 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:BL2PR15MB1073; X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB1073;3:zD6kMcgo2hx5z0uOAsz/2yTiB/Lnj2O5L1/NVkVRidC5Tck88YHJMLqrxl8I7EelNSgSlreDieth/+yD8tvNmN+6DqbXmRn32MVYrV8joJnsLJw4FwZstU/BgMWd9NGi37Fm8Qh77PsuZU5Va6z9/0wCVn6tHgG4XkUQY8goOxnLZkQgGOr4sYSaXdyQ5BQr70pLeaba970fVCuGnfWPUncUpsq/M6Vtnt3TErZi8eT/YKJGQQj8673vzn/RM+1F;25:sMIcUQ21eXOE+o+pWucRHhbLla0GdPmbR+C5Xq8u5pZV0rF4DtaxcpN/aNPEPCRhxBd/GWYyG7p9dpBtp9vgbyInzxcUyk6cNKycIXUaYK/lt9/EcjFiRC/86arqShnKnjQ4QHl0vnAfuC/yu16ZS1ECeqJOhyq23+TerrCR8tJ4FAEjKW4wtTBvoaPZZGlXBg2KxvV9r9OJkAlMB4LtmwjkUo1Ks/y/uBmRbdSYzsXyyIiolMuiPGFCx/A/JSijK75trAFDAvUEkz4+CawSlIJtGmRHqNawOc+s8joAgbybBhpzsi7VVQvlADEDu6HfeWGnHbhkNYheVC3s9Q2FjQ==;31:ceZX+76MW6QnJLeY2sxwmPhqV7sSmBA6hauJCknkKtcVA/yL/6zPJG7S+fMqOvMR6uDQGwzZDmFCsraNPTgZcyYsqTWAM6p/a0+g1k8AjlqwWPC9KBx+SjlHQZ7tKch0zDUSA6tLTLwDv3pWgpsfLNTvs2GzvywUEpU1aHecxe7ZhNe+eOc4blnigf0+ZXRpDLXoV35rZCGxF5QSS5KLAPcVzyJEwUJmw59hjzQY1ew= X-MS-TrafficTypeDiagnostic: BL2PR15MB1073: X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB1073;20:AsjdrWm9tyc0Gjr+kaKBImsZ7xtH1UgANzq3QjW5A8+kqRxTU3gf6rlIuMMrLnlgl87XK9k1ZCcmebTKx3JJljYc4AHibCu/yfHV8FyNT9fE5u4Ho51oLr70kZkb65svBMVgNGNiy55hGm53a3amvdHag6CQS+GYg/6uiFeMpShkpdlWh7VDVRAUkZ+UQtjCMtCovMZ0TTVv5k3ptbbDP6G2zrwxR6u0joZr60qWZI/Y8hrgxvzWuNKgWQvHFknCT1tswIQkF6IiuNbZ6IuIdCIQmwSCAKTt7fINVqG48gkeTuTihrjUngZjh5ujUHQPdWuh4h/a+ccUk8J5sPQbXm2dA4PqgkVmEIARkZkaKeb1YHKPaWG4fB34Tw2bLKxhc8Ss+Qc61z0KU7AjNbM/Y63lR7CMjwtRzbqSEuz1NSuoZiQlH3jSZKZp2G1JHkcqS3N3J6i73xBKOm+tVFzKjInNZc9UY+wMr7eRryxmiYRNIcfc/aYc+DRVT4WNxG9Q 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)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(920507026)(6041248)(20161123558100)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BL2PR15MB1073;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BL2PR15MB1073; X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB1073;4:UxUCWoGCrn1OfdRcI0gQiFGWkEN+dgjfr1y2HUQyFyM246zXgd2QDwmuNv+3JsB2yhrrWh79WJHy3Czq8bEKTSgEfD8NJgwiE2mqnNpROlNtfbGtCNkmgzJ7uWvg4oIK9zaz6ktO0emaqVS1NgXAonvXsev8ATVtL6g+PZgi1UuUG+Ysod3B3gj4dcNCQnAZbduSLtMrcLloZDjSsH4TTHiJcCqbrV7QuHqUQmoF2892qdCWTFKGP8v9tpY8vwNckgYZ5Y+ek31MLI7w97o1YGPPtJnfEsKGOZdEYFcZ42YgcnG4SZyWe1YKQxZd1kh1IBKBZktjRs5iZNgS8P8PdWkA6qkwQkEAu7ywI0gzU3JIoARy2y6leim4tNLfiYRFkWe2IXqHFRgVuSFZ6pSewQ1Sa6IBZsGnv/HJp/hYDl4zaOSt12wnjtjxHq4vVhWF X-Forefront-PRVS: 0450A714CB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(376002)(346002)(199003)(189002)(8676002)(48376002)(106356001)(6666003)(76176999)(50226002)(50466002)(33646002)(50986999)(6506006)(2906002)(36756003)(6486002)(5890100001)(97736004)(2351001)(101416001)(8936002)(189998001)(4326008)(2361001)(68736007)(53416004)(478600001)(305945005)(105586002)(53936002)(34040400001)(69596002)(39060400002)(2950100002)(6916009)(1076002)(7736002)(54906003)(5003940100001)(16586007)(7416002)(25786009)(81156014)(6512007)(81166006)(6116002)(86362001)(575784001)(5660300001)(316002)(47776003)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:BL2PR15MB1073;H:castle.thefacebook.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BL2PR15MB1073;23:WmQpmCdaxa1kHXYdeLSTPv/VaYGAjqKdkZCU2AYkY?= =?us-ascii?Q?f/s9uuWubXYGtYPWAFRVu+NTdgeCi3nJViKja6nzNcpCezBzoIwIKzqT1FuU?= =?us-ascii?Q?MWPXmupFF5JsEJU9WaKhGHXT9pIhWMbGptn0Dt+OHbNQINMdyrdu5F9cNQ0B?= =?us-ascii?Q?C+fBQKURzpA8mxJUi2YVt2i0VJpRL84lWsX/aTlnTjntJ7E760s2D44SMuGv?= =?us-ascii?Q?DoeD761FfV0wg5yc0m0xHzJjOiaqT4oEJq9md782/liXTtj+UEyPlLrc7pUf?= =?us-ascii?Q?Q8izapBWZcDMuvemTFWwZqcnJBgYFYmZnyVW/ciujfKO+co1qwdYbSPuy5CI?= =?us-ascii?Q?j2H7huYRhnJE+nCIwHi6btpD8wvFASqBPCICs3cr0XyJKtZisiwKD4TqKhYz?= =?us-ascii?Q?d+CRybT+zHbXzGwmy9rz0TnCiNd8uCHQbzQLKFeA3RljL+YAYlEtX4a3qhH5?= =?us-ascii?Q?tct/e7ycSrl6RShPICcJ6L/PtL33xt/3esQekxLunZK3eVLYOZBkH6NUsX7a?= =?us-ascii?Q?RMFGIp/CP4kJwWZSn7u+k2T2ztZyHpKywSPJlRLNVhVO1y6yF1xDeWI+lePt?= =?us-ascii?Q?XkVtpeqbRCu0anoNWjeqJGfEoKrmPBF3Od6yxnaLj3l6KQDDOiE6ScOmXQMN?= =?us-ascii?Q?GVh5lHgxPFrzfbA8fqGzbLh71Epl6f04/P2Cg/mk3jXc9VxyssMG1JT9Db3/?= =?us-ascii?Q?cFyXPeQCrJgAXUaLWARa190mRz4ZwzmWXyF5i/JzkC6FAyT1qKYbznKS/gzt?= =?us-ascii?Q?juCeXdneEJFPI6LOqDQJ/shb+yRYCgJyGG+n8ifzOUx+Ulo5BPcFm+Wvt6VZ?= =?us-ascii?Q?jeKPCUDACg93/TToHtpeXneXHC+Baa9mRJk+1kb1wB3Ghz1k2mn9ScMO6CdQ?= =?us-ascii?Q?l0u6xwZITHIrYaIV2vj95hDm9V475xbs2JE9lUv6UXRBnqnGD7UWhu/M21Wp?= =?us-ascii?Q?1Zc67lGbyArJ6IaDelPh7zCwmVO0wpP4+Okx72Se0h9onFoFNgh23QMS833B?= =?us-ascii?Q?+xSk76DfUVgeBNyN3oO+uwf3exSGBGbtjQu0xVVTPGudeIpyOTIb8intpLO6?= =?us-ascii?Q?lZL92gjy/icyE0Q6ZV+ZUgbaXIfiYmz6q52EwQZOdeNukbpIzKjPMnlzVzuW?= =?us-ascii?Q?lrHU+UT1kQhC6raK+NyQGtx2mBHrXh5KjG6lUZ6YaDVn1T0FVT5gLpISVwPz?= =?us-ascii?Q?NQHSXAdgRJM31KHTng4+nT5zc0AwYnXCp7h9nByf9UQoqDrVmJY5KVLUpozV?= =?us-ascii?Q?np3g5h0qk0snn8gpGiDLp3YD3g29+ftJgbdcEbL?= X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB1073;6:VGEJiWsUBkEBB9l8OkRESGtFilSrs+Am3eAWOzHbcCOr88VSuiGAzE+T0MU8+ht7pM5S54IMgo0Cm0/s1WnXqsPCM0zsUNERXD2yMlvfPv6ZBVJ33r3MxcL1HSRiIXDz5UaNWCYeD6aiaYUYI+O7YdT9h0PD5LF21OxpQTd2ZPi4y35D2QxZbcVO3cew1OlMFONyYZex1fmPfOwzjnGh9y+thRVmlcxFDVZ+Y7wWiUXjBl17uJWNmBLwUmcfjOErALfy3W7+lBoIzAL8aKmp5pqEg4JYD5/I53LzfjQ4FyvNM0HV5FVJ7Vzwhuo6xhYJbL6O4dwtC4duinBws/LoBg==;5:8tBR7nKmm1BXqTAzw/eLVbnq8lH00sjYCakqfcOTnzT0oGL2VkdSXIoi07/hk8WIRu8IqOtw0bjYvPHjzCF8CLW4oCoggqgtVsdgf/PFWj00Jadm2ZzF5hn7KirlaTwxMdWqYYn4dnOJtfh8sTBNZQ==;24:Fs6J9URqan7AT458e5pb3ZTofYG5DVNiUsQocAou7C5+3n/2vutl+wCFj+zuvzSYXPPLgGqHLxJxNTrj5KQ3RXuhKRiArpqPPVDipo7PP/A=;7:MbT9tYgibN5BtBATSf1xuCK0pBpNHCntQpI1SW2VjsYrZsocJOkdhHoQpW24M7V72/xgRIlrW58Io+xkoQ4AJ/WSVYmnfs49uICse2yIJlQTnC5YhTSdRkoYCIWco9ne91CU73ifBHauy0Jobxlf/+GUaM63WRGqFMKXG4/B6ClA6TxfE1cWQq/ve6SxPpZ6QnwmHqtBb4nYxDM3NE2kWokN/ZXjLlDU2t6kPf01JIo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB1073;20:awxixTZQZQEG6p1qy7iwHRL6RQYngXzqZtnaiWJAB94cqmUs5Foc2z6Yd/+E3l6PmojEQdq+W20T7edKXQNNTs9d5ZdJ6r6aeGM6Xe2UM9ZBW2TpH/aqtYERnHk6t96IIoQkVCtIpGZ6tGKb+zarh5x2Mui9fZ4Lait5Iq+wuwk= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Oct 2017 15:48:04.8634 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2PR15MB1073 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-10-04_07:,, 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 | 51 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/Documentation/cgroup-v2.txt b/Documentation/cgroup-v2.txt index 3f8216912df0..28429e62b0ea 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,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 @@ -1246,6 +1269,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.6