From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751384AbdJDUP7 (ORCPT ); Wed, 4 Oct 2017 16:15:59 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:54320 "EHLO mx0b-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751132AbdJDUPz (ORCPT ); Wed, 4 Oct 2017 16:15:55 -0400 Date: Wed, 4 Oct 2017 21:15:24 +0100 From: Roman Gushchin To: Shakeel Butt CC: Linux MM , Michal Hocko , Vladimir Davydov , Johannes Weiner , Tetsuo Handa , David Rientjes , Andrew Morton , Tejun Heo , , Cgroups , , LKML Subject: Re: [v10 3/6] mm, oom: cgroup-aware OOM killer Message-ID: <20171004201524.GA4174@castle> References: <20171004154638.710-1-guro@fb.com> <20171004154638.710-4-guro@fb.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.0 (2017-09-02) X-Originating-IP: [2620:10d:c092:180::1:34c0] X-ClientProxiedBy: AM3PR07CA0119.eurprd07.prod.outlook.com (2603:10a6:207:7::29) To DM3PR15MB1082.namprd15.prod.outlook.com (2603:10b6:0:12::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 960393de-387d-4458-0b93-08d50b64addc X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:DM3PR15MB1082; X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;3:k/ZUPJ60/AjTPHuStglG0CHWeyHxwx+ZgaOob6RSw5a/RV9845NjNgxQHYfQvQa79x8z/5PpNrD+Hd6h/dw2FF5fBsuGBtS0bxuDllZofhugGo5RKbfWPeNfq5An0YdlSbosD2AeZO34hWsdyCxidJVHfcP4Pi3TOGqtSFMMfPngaIObak+nE5JMKeAJhmhebOkP6Z7qaazOj2oY/nFFRXkkoM+9y8sUgIuOFft2oNUV6ZfTT4k9H1khUovN1SJj;25:cnf8jUkE6+uflluMsB/Ohq/xUxltgICE1avGen3ldM7ia9xgoFcLB9c+yBed68Yxgk9NdfuK89GMLLmuRwoQTvcSMeCTX2pcinWsgjGlVa6+XL61vtlnS1G0Gv13SMwrHMxOcWTbB0J8Sbc9G3Xvivw1k6Fwo5L86kdnFO9O2nqQxmKGSMcDJYDF1K5M2pJDqQyAIJqCUO1mZ+XPebDIuQAfBh3To/wMa4rMDlWK5/yE5gjOoyvxIXuij2B1mqq/P9SRmgMxRuHLAyhiYE0UYrprHgRuUNj1EW1PUwCJosZX6KdP8b6VOJ6NnpjPtEWa0vD2lmI4CW+Jo8GmQzic1w==;31:HtnMnoGeyoTV94YDazQpBo8pmv/P6Itj6+1m33gHok341dvWxpZEercuHy+osB/2i2sYBztzwFnGMPz8AzxPbbNwy3Bp979htTJX1gkYVGnkFoCLuwKVwozFQl76BS5T5CuN1schjog6fDrvla0ZKkybl6JL76mXfn4UDny282jqRp7foOtTpEqQJ9u6iykZoj9kmf033LJm7G6Q3kai97XGBwqfV6gZTkdOnH5cW1w= X-MS-TrafficTypeDiagnostic: DM3PR15MB1082: X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;20:upiQm2XBvzjyGg0LlKpFH6fSb8Ml5s2VicK4D+hgD9KTl0ycXBM62fxjFAvg6L6IS4okZ0VuoHd5ZWVCTHHXXszGXjOqpz4lmSiB+9CO9tXxctvYyp3yHerO5rEslPesPmXKIqvrfz/p6fByNNX6wTY64wf6n9n5jPZA2i6h2fbVBnUfvLWn9kaxeuGqBQkRnLGQdjZFCg9G+qyhuOpaEhSJL8TKyS2fXNSasfiCjsd1oXX8Hl/2Jl6BbB4us6aZZXUFMMXZ5dAUooIxHgIFM5kfqKYtT4FA9d87wQy/SBuNbJJ0XDBmt02YoO6FxeHrZsetR33Orl+qpvBGT0pK0g6Nkwe7ikX5fP6nRQ0aJyfu5xlRc0HtMcyEgut9cz0g+sCFolkiRiHUPpEcLQg5rhrYShA/pC43VVb5tSNT/R9xqysBpsVhHf1m1m1Bc6rV2Q0R4Q+5NtrnmNLSc7gYNTLDnY2UXb3oiqU79kRXuU+LLDHoiXt+F1KFm3Ff9NJM;4:u1OrFP7ScwA51Tg/WHrAOpqOQcyy+620jyzpjWp1ueRt0lkH8ytUay1I9C3kzV3QOoerUudVKR9JlpMjOKhvXeUi0pIAWoEV0tNZJaLbzBFPPlBBy6/4EMOkLOz4eWX9UmLyKriTpIrsHm8vMqcWJnw7f7Z+EYpsesRJ8r7VqxIHAP+FjfwF/zb9WM+qra7cXTiRGC0Vjdu3yyCXZ5oIhSBiNoNJvipqNf/ZMvQvw/vCYJCoxJUzUCCKvisiNeZ5 X-Exchange-Antispam-Report-Test: UriScan:; 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)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(93001095)(6041248)(20161123564025)(20161123560025)(20161123555025)(20161123558100)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM3PR15MB1082;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM3PR15MB1082; X-Forefront-PRVS: 0450A714CB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(376002)(346002)(24454002)(189002)(199003)(57704003)(53936002)(7416002)(39060400002)(47776003)(9686003)(16586007)(50466002)(58126008)(2950100002)(6916009)(316002)(101416001)(55016002)(4326008)(54356999)(50986999)(81156014)(76176999)(97736004)(25786009)(8936002)(7736002)(6496005)(54906003)(1076002)(6246003)(6116002)(81166006)(23726003)(305945005)(83506001)(8676002)(5660300001)(105586002)(33656002)(106356001)(68736007)(86362001)(33716001)(229853002)(478600001)(2906002)(6666003)(189998001)(18370500001)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:DM3PR15MB1082;H:castle;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM3PR15MB1082;23:IXVYzbjHFm0RH4zCKk/0lCEEi+GLZ38TxKu5kLczG?= =?us-ascii?Q?g8t3HfDHklOqy0/GRjpVbAwTOi0h90DxvRA3R2wUT4Xc06pWLMkeDqnVwjUD?= =?us-ascii?Q?mBjB7CIFoS/SdWtLn9fqnbzRfO48iu6Dk2418zjivix0SuWa5rSYB2QeGwfQ?= =?us-ascii?Q?xZ4trLzV2j36PfI2g40VoIBiIGfzmUkQmaA/hw/xA/B8MNbVfzMdS6ogtWBv?= =?us-ascii?Q?QWVDcIEb0TcJm7Jx3QVjNezY5WkiFN+NGYd1zlNJ7yDWj22E8nfsyq8kD2Sc?= =?us-ascii?Q?4KR7BViLrXuci/n5Mx0yaNhmGVRCoAb5+ORxTH0OMu0VVJbt78jr+LATG9iO?= =?us-ascii?Q?MBq09ylcJ693vwJOwZsild1GlxRmJ1lH6sD5auEwiO79QTwTqEgO+yZ4DDI5?= =?us-ascii?Q?x0u7JAFoC6yB6pzDy5Yfn/W3SZLJJ6sBAvw2qqmxGEvQ+HLQLezrDVrcu0mr?= =?us-ascii?Q?+x08hInPtqDGsZhtbgr6gd8kiX11Xb3yjuj2vfnQ01yrVp48+P0SAsfokUsE?= =?us-ascii?Q?zk0iNcYYCexUPBKbaSKAANSg9eWz/th2rTAGRFWDL3omD/9mrZ6O6HeVjq91?= =?us-ascii?Q?F/vUqfAy/qyjSspMtc1StIJlh38HZrAD+AtNHzdCBqw+6b3VIEVZNbQeaNAD?= =?us-ascii?Q?4lzGxOziN1MO7bnS6UoMtJl0xjbr6kTDDfYQg4L8M5Zyu2IfgRWkr48LN86G?= =?us-ascii?Q?IIuecjjD+VU6C5B0Qyc0shr7julOP3GHLmPyejkQsMH12s/ZZF89tPg7Mt9P?= =?us-ascii?Q?mw7ZpzzGGGZ5MOYqfbtP9zxZ54cjOFv6WaSax6VLjhh8jlQPgu4Fb3/4V4yi?= =?us-ascii?Q?HOQ5CUU8Gh7pRApYugmyADoje6v4xvmmqWOVywtNj8aPYVI0p2H8YH408e0x?= =?us-ascii?Q?MgYxPVP/JLEvezquDXq5gWslDeNzPoq7skPE9AP+v964U+Rj+J7USAm2GSY9?= =?us-ascii?Q?hZYKBb6y3yELlOI7xVhVTZm1LXvFJp6NkIpWUBbMNh1RURjDQbUOilXD04AH?= =?us-ascii?Q?S2NAZjwmPkdQ8CndQ3QOlZRJ9swa9jtvYncG/KeJRQbfvLbP7TFzj/807fN/?= =?us-ascii?Q?Ojt4pLIB7LsIgWrfnvsuY9C206GQYJF7IKtFKWTY/JnYiQCI/IXnZx+c9o/q?= =?us-ascii?Q?0LLoOy8YYhqLJKNIdErnDobTP/+C/WATEWwgbVdwGSV+SfLMFMsMMEPQdYPz?= =?us-ascii?Q?8L3Q57idKonjZ42opC2VCE+NsQ0xjlA6F7hLBCL4ZivQHmxobwx2CNvGA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;6:vouYPY8gD32/JRoOcaK7XvtM695HqF68lp+0f/JwCAsXYgtW+MSoA9ikq42jT4y+GyUNFu56WIKyEnDbco/T958wEIMFtEDetFEyfrdEyIk4CW+XRZqQ9BU4T0NPWDo5fVMO+R6vyBBR86W622H/8AT49p/1Mr4P35CBSTu0iycFSVY5QRP5WvF1dtDwXlk7EYOZY8WyCEgrQN2LYJUFk5zu1Q+nSpqPdfwOOG7nidHoQ/lYry768dT+UnwX5gumpbyAHOM/qeaqpoL6pi//renNRvefQNcwFzVZnG6bC0tCoIGBEAtBU+thtyhFr7QLXr6+bl3e/wsRGKSKY3+81Q==;5:wJBkift8Y9x0LoMWew+V1gu90/EH4Vhl8xXQmtN6j7uuR1HnnHr1salMFlE9bIYE+UF/6cHzq1qjC6ZMli0ZFuy+2EDFax0Chdxr7KBw0Tqwep5hNp24sIZr1xLbb5JkbxnYSkyN/IuWTsEXRpGGzg==;24:BE21jZcqOetmboCBp3i7S/zGoXvhHLy/AeEmo8gs+7zBxFXulXA1GcL+LvZXm+r4RpYaxHj57aWklvCGWT2rA0nIjyHPKw5iHs3NOHDhOzU=;7:4bSnLgb/nK7LkswY6f7/D7kpT+j4DCcxD6KAR6+kEnksJWU2XBSm+vqmxrpMiZ/UOegSYWscwLpEfQxyLIKURWAaQ8OWYqDAlXJymxo6Dj4T1nhKOBk3tlnMUvCU2nK6eN1saQVBECUNaHHOWrMtkWPMdvqMSqy8V89nWd6V6+vDGX6hbF2PdHJMgxayZNaSceyF2JFBxGnFLy5E+2+3fVXI3kDjLjGtt4/C0Gcv4Mc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;20:Tog3AyLXKiGklbPxD48dSVwOyYZb5mWMiOzbCCM8eeI9WCeu1xGsewC4J2fCFvwvfPaYS/YGNStxdH+w4yWgPa4GCtMjN2fqfIbwjCXUk56XIuwxkXIjg3yT8f1vCRO3LidYTlJ+rB/ubQP5ZaNnSg+da8z3WnSoBDqXkZY8a/M= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Oct 2017 20:15:35.8370 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR15MB1082 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_09:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Oct 04, 2017 at 12:48:03PM -0700, Shakeel Butt wrote: > > + > > +static void select_victim_memcg(struct mem_cgroup *root, struct oom_control *oc) > > +{ > > + struct mem_cgroup *iter; > > + > > + oc->chosen_memcg = NULL; > > + oc->chosen_points = 0; > > + > > + /* > > + * The oom_score is calculated for leaf memory cgroups (including > > + * the root memcg). > > + */ > > + rcu_read_lock(); > > + for_each_mem_cgroup_tree(iter, root) { > > + long score; > > + > > + if (memcg_has_children(iter)) > > + continue; > > && iter != root_mem_cgroup ? Oh, sure. I had a stupid bug in my test script, which prevented me from catching this. Thanks! This should fix the problem. -- diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 2e82625bd354..b3848bce4c86 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -2807,7 +2807,8 @@ static void select_victim_memcg(struct mem_cgroup *root, struct oom_control *oc) * We don't consider non-leaf non-oom_group memory cgroups * as OOM victims. */ - if (memcg_has_children(iter) && !mem_cgroup_oom_group(iter)) + if (memcg_has_children(iter) && iter != root_mem_cgroup && + !mem_cgroup_oom_group(iter)) continue; /* @@ -2820,7 +2821,7 @@ static void select_victim_memcg(struct mem_cgroup *root, struct oom_control *oc) group_score = 0; } - if (memcg_has_children(iter)) + if (memcg_has_children(iter) && iter != root_mem_cgroup) continue; score = oom_evaluate_memcg(iter, oc->nodemask, oc->totalpages); -- > > > + > > + score = oom_evaluate_memcg(iter, oc->nodemask, oc->totalpages); > > + > > + /* > > + * Ignore empty and non-eligible memory cgroups. > > + */ > > + if (score == 0) > > + continue; > > + > > + /* > > + * If there are inflight OOM victims, we don't need > > + * to look further for new victims. > > + */ > > + if (score == -1) { > > + oc->chosen_memcg = INFLIGHT_VICTIM; > > + mem_cgroup_iter_break(root, iter); > > + break; > > + } > > + > > Shouldn't there be a CSS_ONLINE check? Also instead of css_get at the > end why not css_tryget_online() here and css_put for the previous > selected one. Hm, why do we need to check this? I do not see, how we can choose an OFFLINE memcg as a victim, tbh. Please, explain the problem. Thank you!