From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752622AbdJDPsT (ORCPT ); Wed, 4 Oct 2017 11:48:19 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:34940 "EHLO mx0b-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752448AbdJDPsM (ORCPT ); Wed, 4 Oct 2017 11:48:12 -0400 From: Roman Gushchin To: CC: Roman Gushchin , Michal Hocko , Vladimir Davydov , Johannes Weiner , Tetsuo Handa , David Rientjes , Andrew Morton , Tejun Heo , , , , Subject: [v10 0/6] cgroup-aware OOM killer Date: Wed, 4 Oct 2017 16:46:32 +0100 Message-ID: <20171004154638.710-1-guro@fb.com> X-Mailer: git-send-email 2.13.6 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: 0ce683c1-7f0a-433d-6cac-08d50b3f45c1 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:BL2PR15MB1073; X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB1073;3:BNrRaCt6yHzcqhrvdl9sADRjTTNlRVpc+QK+aUU79+xlg3TdU4c21+1RcS+ZrUiiuqcPmg+BPNlavV3J6+HAXIdaD0BAakUMbXCPe9eGLtJF2KiOmTumCdh+gfrLQLwBC55XWIrPsP2t+2edvkYKLrXpxVq067UNsbzY9W5iHfrJQ/nR7siSg4hPk7vkCftkVY/fWU6wnFwCV3mY3SqxEPkeolorC1AuUeiJQjRMm2X/T3190waciCDgnCA/HdOw;25:e9FevLzga1A+aH6dUng9cLRLibbM8JymL5RIwLYZcldizN6YREqL1KFIcSB2owypdt0bRKvBUkhBkYLHL+AuQZ8DiTE4mfPeuqaiRXcPGWiboo415Mmc6VPxYj1uw2rkz2tus5jhdYXs7uu2JQMgYU2aqBPVYC8yar+tQ863uHVON34aAZnd7MM00JGnR82e8fdHfPjLAFonCAl4q7nJK8EbYmAeYg7UnFNRb3A2XwlqdF2ur4uJbuX/ZEfIT9X82RyGL5Z6PTui2OLPECObyII/oTmdGV3VPveo8u/8A097JjtzVLasHiYNv2yqWncqzC1iAOTLZIv9au9UVNnuOQ==;31:gcX03/3Mtuh0+4VXCbcXz0ffInoGjHLSnof2JxsenNKquBLb/FGyZon9G69P8Z+1DP/a32ZJ0zGfBO3S67R+HbXr4pkjVh82PFSeWlxwZjRBqQTHZZPU/OxErD6eQpW5q67Q3IIcONY2CVXl7Bf/nGbjJGolpCwzmODrXkhAe6cL9aBOixvqCZsFjuB32nfBNEYw5Ad8OL9ogsVaszi6yfVvcXNnmGNrrRR+SgM6vwQ= X-MS-TrafficTypeDiagnostic: BL2PR15MB1073: X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB1073;20:3e/0pQw6h6KONnZj6c9YLlRDSt2RVm36coM22UaTBT/wH3o4AyznsCOoGoUlrbJmS7TrWEeNnSSa5sXL9RptW2oNbOqYFDkqkRdJZ5QiY9AhFIUGT4w3K9qhXUEfpsoAZ045znk4dq1X4PfwBkS+W9MnkDlekO0MVuXLokMK3bilPexVQKG+/eVSopb1wFPyKFRPSz0RQI0jfeNz/e/Ux0VGDqhbcOmfJig25Y0TSLm7amO1UDBQ4wjU6wVwhlYp31UBJSeYtIgdtrnwlt53NKtkJZuYLNBwtbFb6STAuK1N2ZUSY8UEV/ECu8n2RN+vjth5NjXcptzjNpFsoQA8Y5dzIUyHiGepyOw+fq8OMAEhwH3lCMURRLVWipTeJaKYnrvqTUGYmn5Z6/MF/IIKxg4deSPS/0JikJmPG1j5AulLrgBfUH+KbVu+qh5YDRgfCdl6aMuP8A66uZGv+qEKxbqaEu3556PhCplkZyVx8dTmYCJqjUtDNUJpl2rqlMBa;4:g9eFAR5sHmWkhv0gMpUdVI6/ZZH8ePQBDolJwhUJYfiUsCHSsdvoS2zPiD2PW+rUU+aGwLFJwE8GWNDSIEkmpKrW+9mq88oOjnXDysKlR475Z2V56E5QXna7C64RhEydpx6IdfR2BwDM4wox3JmZtZYY4AKNIu0EjGUQ82+OKjRVbvcu/yI05mZcoT/61LrLXOrPTYi4CKNALJAFHaLBbGWGGyRPK94037kSXDE9Axz6Fl5KtYHOvrpZfYZLEjSmi6xpEFAKKQTPEOK34P1WvWYK+OcPa25m6L3tKP6XYa2bk9dxYV0bVPVsUvv9OCISVlx69NERgJ7MyFhPzMm5uj0o7dikNvLVxMvUZUbphhvzByqEvaT31fA/E/Jen+idaB/+z58bRpOwkmZMJEstQg== 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)(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-Forefront-PRVS: 0450A714CB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(376002)(346002)(199003)(189002)(8676002)(48376002)(106356001)(6666003)(50226002)(50466002)(33646002)(50986999)(6506006)(2906002)(36756003)(6486002)(966005)(97736004)(2351001)(101416001)(8936002)(6306002)(189998001)(4326008)(2361001)(68736007)(53416004)(478600001)(305945005)(105586002)(53936002)(34040400001)(69596002)(39060400002)(6916009)(1076002)(7736002)(54906003)(5003940100001)(16586007)(7416002)(25786009)(81156014)(6512007)(81166006)(6116002)(86362001)(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:YVAAJ9zCjzPhFZSgdlP2b7mtllAiCtthrK6xraaTf?= =?us-ascii?Q?crcOJ/T3GQl9AdDzeJYTPWC2YHdgA43HWTeie+fvTOQMU5plNasouce/2NPs?= =?us-ascii?Q?4ned6NOQd97TV4i2O+eCvpqDCqkybZS4FYXg7l4WZef/8LgNrsi0HSoLgG5A?= =?us-ascii?Q?PZEvYFh1Y65GZjXVIVD/rbOwWk41AYuHpOuVODNKFTZACaLC+0e0w7rDUNsC?= =?us-ascii?Q?+0iXHkJklLRXMpZW9DSIlLvSn7BAe9qtGIbQRQ0iWFY+hX8H4UqDRUU9m63z?= =?us-ascii?Q?XHIPN9vxJMqm3J/GiYGvY9Y8biYXqEBWzuuJZOv1YsKjBgKBhWw51Nt7hTbW?= =?us-ascii?Q?h8FUmLTzLXCn3NmFz4tkBj2vacS9VLteurNxuLv+fqQjPMIMsJXn0StATFTS?= =?us-ascii?Q?9Gzd/vQ53G9KSf1aOuhx6IkWTnw8FF5N6fqTow2+34rLDOWPh4Z8eqqkPoru?= =?us-ascii?Q?U29e1nRukTWx6l24qKlgE5sG2YrxPKOZD3DR4/wX+dHtJh/6EQV2Fi/Ye+lu?= =?us-ascii?Q?AOcyXi9zEDmjwW5xTUrLPUdTkXJds+oazUes2RH5g14Dbc0Fg/Vn/L5pu7Pb?= =?us-ascii?Q?RHzWDOJQCX5/3lp2w2QkWl2xfTKDUMpM/NnGlvec/UbK2bBmCFJwW6ZN0DUL?= =?us-ascii?Q?Pd23dKQbNoTrZorBl+4xT6b6I7fP1GAgIMxpFJtxZpaYOG1ef85uI1XIsAU1?= =?us-ascii?Q?ut4miBWTp3QhFHZYztuJ+SswYL2VG6zzuPi7ifKNvv7isFRHSR15R54eLNzm?= =?us-ascii?Q?YuaVezVT/RCNVXZxMGNS7GhoVxgU7cW3OiVsLjVu+GSdzobOsV0v1OP7FNeG?= =?us-ascii?Q?BrAF+xfw2ETnMpr5qgugNyVSFji8InJRBD0jX1Z9BfBLBAQWdOGffYVAByn1?= =?us-ascii?Q?Wr6Om1YGDcDlKkr5XQ5VwSFmEG2jaNvrTjftEns66VC2eF8CAt2A2hMaVAH8?= =?us-ascii?Q?lXixBsymIjGbrHcxg7XTLNt//aA54obdl4jhebqgIEZ4sgcjJZdhgzZ9xigt?= =?us-ascii?Q?YJYpi/4/C7q+FQVcupqXyTPYbp7Qlag5xivGH8Ep0vH6+dfxX3vuSYoLlPa2?= =?us-ascii?Q?p2R7Hs0FlIfCnvKRp+gPf6/xGTlXFL4Q7djNZb7tfJtH4hEzyY5IJ8Nf42Cv?= =?us-ascii?Q?mLdzMgHtQB+9T+8RFhPgXKPeVbuSkOmBzRSf0mXFwIcFbo19CP5wVju7DWD3?= =?us-ascii?Q?yCYFCDXYVztn+2X2CUElrhfqgDmy+pdmmLV?= X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB1073;6:8Zmw8dka2LN8ShoXVXlJ8aF7zSJVsLmxCCb/93VY0xFIeALsfdvCLZEn1GgoajuZktTwGvpk62vouZ2TDoamxIZS14YGDbJO+LOG00F+eWA9Ag65sp6gKMRz/mPvKxhb5yDFk/K9eoetZI4eeZhhLX3QR3UbEOEnuZrOgLrJ0cXYVoPXNnK+/8g+EftDsaPYgeP7ICLBCfXSlaWHCTAMzD48o4Q26hBZeC4xLmC82SkudI3tMrDUcbefog5HPU+nv4jJbr675ki3e+QqlzOxVJu9OWOdsjyKlPePcXZR6qK3t44PPtyFjbFrINE9e92fynJ6Wfc9vZlNjES+UmU6gg==;5:bQabvVV0YIyKyaeHOleedxlHY0xF39kIv7bgiR8CwDs5FBwUqMmUxiRzzQxSnwqjjHkJ4FxPw0Ka+4vb8GVFc0waFlljNnOYtp8NtSr03hNY+ewZZN7CdBIvH+7J4oi4oqfr5LyUTP70XIagu7os/w==;24:nf+MJqQkJ3i/4Vb75XlFxKu2jVH03L8d1U0NNa0ibWmskdFbzSF0bEVMmkefNEwc1MQKHE8IW5XjsEXNCf+NWjEdCzBR23f8bD0J+ggtFu4=;7:pJJAB7UY2jSMQW9D+l0g0xdrs2PnrO0rpNmKiKVMsD9M/1GwvOvmh1eeXYJ+t80A8XrDuaJ5FcoTYeYHd0rgsZP/c/eWNrapqsa+vmKpSvV90dqLLQk999DDVeU5NMb1isv77QqfVdHbbyl8rC6dE5dPPbtsLqN1pzchLxE9mk5cuisPa5cz/MWzGRi2AndoKur++ActOEBXsDHa7tnPuJaGSJqQ3aTp3ULJTjAyQu4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BL2PR15MB1073;20:dXokV/h9WLunWhjfayKtatNMawOmu8ZSmtYs9mCvKdoPKnoYUFjLnuuyzjAmBySt0dz37QSjIjkEyLqq2hKYEv7LsJiv1wyq7cpGgCwTpsm+qFV8/JviMUllOu+08ldWyKEKjrEfZPgbYRYSi8vkDqG9muCjHBURxoCReqECLas= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Oct 2017 15:47:50.3316 (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 This patchset makes the OOM killer cgroup-aware. v10: - Separate oom_group introduction into a standalone patch - Stop propagating oom_group - Make oom_group delegatable - Do not try to kill the biggest task in the first order, if the whole cgroup is going to be killed - Stop caching oom_score on struct memcg, optimize victim memcg selection - Drop dmesg printing (for further refining) - Small refactorings and comments added here and there - Rebase on top of mm tree 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 (6): 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: introduce memory.oom_group 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 | 51 +++++++++ include/linux/cgroup-defs.h | 5 + include/linux/memcontrol.h | 34 ++++++ include/linux/oom.h | 12 ++- kernel/cgroup/cgroup.c | 10 ++ mm/memcontrol.c | 248 +++++++++++++++++++++++++++++++++++++++++++- mm/oom_kill.c | 209 ++++++++++++++++++++++++------------- 7 files changed, 491 insertions(+), 78 deletions(-) -- 2.13.6