From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753196AbdI0NLE (ORCPT ); Wed, 27 Sep 2017 09:11:04 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:35064 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752566AbdI0NK5 (ORCPT ); Wed, 27 Sep 2017 09:10:57 -0400 From: Roman Gushchin To: CC: Roman Gushchin , Michal Hocko , Vladimir Davydov , Johannes Weiner , Tetsuo Handa , David Rientjes , Andrew Morton , Tejun Heo , , , , Subject: [v9 2/5] mm: implement mem_cgroup_scan_tasks() for the root memory cgroup Date: Wed, 27 Sep 2017 14:09:33 +0100 Message-ID: <20170927130936.8601-3-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: 3e1f0c32-b114-4c49-42a3-08d505a9261b X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:CO1PR15MB1079; X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;3:oFq6gNdVmVRgZnMjQJ4WjUA+rJOJj+4iyjM8B2zVDwWKGhg/SE3Xqew0kIdNlFgbWUmcCzCx78cSxFSoR5N6GSL5pWF9oYt7BFsIU5EcZmQqzJM7d1bCxFvkBtRPK2dfQz1DTOA8g2HaHkKWSWgqjoXIezvI0M6JYcdBBmCTaFSK2Z+il+8+FpCwSlQsrbi5zGk9AzK27zi9BlOfiDf5xsY/8/rGOs8G2YEjvcBv1ALGnRjobXxYDnB9ASlnso5O;25:qu8JFv3vWLqDYlHGayGl9ZQJNhzUNnhAFXu8buNmJvWXiS05hOg3VUMpzhG4hSWbX86c4DcraVq80XzATgRwDOE31ZIXpLmDcGyDNKpNOMAOGZDwS9qPyOBSql23FO0mz1BLlNDA5qIJC9h3WZ7FPjxktaOXUF4kFX2ZCQVL6h0pHxY3DLH9n4TK6Ltmb2A7ZXLYdyeCMnusvgKBBrnqKfngbowQ3bnq15FuII9micN5dgrDGECh0J6wpVILsjxTAg9750lGd5DD6o7eh2MNhKDP/BvcYaKQ1EaHpOh4GFsb8DBonUMJOnugkBNvjwWk1XoS0xlUgLheNzgjQh1rVg==;31:qa9qn1SEboFxSszZIMJhq0ELe+BJh6ZF+3goNrP7SC9D0qz/VPidwREujY2wo7aqTsv0tIpcDXVrQcQLKZuVHvVBL1xYfJ51a/i74xIctWekzNd/usn4zWR6UThywaBIkNASYLD7k43JAvDGyiJ7BAr67GBbwcrZ9G2a8eUEQem8HyuqoKzM+Vh6wbUy7KIqMzFQ/Xj1600JbHiXVufm8oc2/ohVYaUA5eGiLqq+JRs= X-MS-TrafficTypeDiagnostic: CO1PR15MB1079: X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;20:/XIGZyZrHK3B+ukUOc7VhMbx48JjNEvB1BZwN8W4TZj4wqvidtcTEUp+ul74+DZt/uhMou4rr9rv+HFivRbHqqmCF+fH2jTiZeuiHmbSFkDWdlr9Art3cPibdoyU/sC+QkrJNmjfG7KrAlyNcVlder8e7B9tPUgqX1gI7IK5lye0zAxuH1j+aMdKN/DFN5c94l07vD0IKrKTGyz/Psou497EWdcKt2VJuY9/bJCTYCASzHrCFHU66jqd3Q5MJS7FmkkRMN9n0kYES64/632T0xMEt9T0hPCTEkjfwUsIxZn2YtwbdgqoJ4vXmGUYpx52lJaP0K5JpgKuo8NfScJjdF0JRyjWcQv94Zcn6uTAMUlAQ/CMFGaNuTQv112YCCVHoi1gBUFnef0exZx4nH+bCiJpoMoAikIOq61T0HL6VC8VM0c0/EezxPvs2rCmLxUSq7Qjq2SUQyHdT9WGTNlshVyYBIVqhshYkYSJ94iTsVMY/d2hlQhRR4xzWKIXDkhB;4:Il1S7iezcsTAXX+RxV94LrEnOX5Vqk0OKrTNTJIm+9HpZ7WT9LX3+0rYVLKVANLdf7Q/QaE768q+H89y9GxSFko5jH+69kNt65d/OEfKCeHNK7gDEzbK1pGBURvBmiO+w4zTEcf90ez1tdlyykQq2I/u2fC1ZXmbJb3XWICjKoNvUbGl+icWJiyuLNJIhKYICKMUrd28b3BQMa7yBXrE9os6Uu+ecBWThAKVZZAHb/uincs/GsweBXyJXadFBOBkSpCokzfMdDv0wN7BgihQ0w5o1era+12EdxYzyZJNFRCCTgoayMY5wd1dDZ+cki1HMA8P0IoLn7VIPeV/4n7+g9neLx8PkYQ3DK+tapHO2ve5Th0XEovvJz9hTE/KziRVY9EfQR3rme+PCZNic8kCHw== 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)(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-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)(50986999)(36756003)(81166006)(16586007)(81156014)(2950100002)(189998001)(6916009)(7416002)(54906003)(48376002)(25786009)(69596002)(39060400002)(316002)(86362001)(97736004)(47776003)(53936002)(478600001)(68736007)(50226002)(8936002)(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:9zYhQ9qCjxayxGS7ZY80jyYvgLFqChiIcq6Jc8AdX?= =?us-ascii?Q?0RvrQwEbrNVC7ZM8tLbo3Jav3M7arMUvmyQs0ew/Fj4JID//oaWmwMxRGbNq?= =?us-ascii?Q?h8jeN3D7TyVUK2R4TnFg87p23dcFfyefh10ZTzgNiE4Nqbo2CKEaXnme9TyX?= =?us-ascii?Q?unD5fGjwXub2YLPY0jLCS+DVEzL5w/SKAFbbxSkuPKcRBvyZSBrQigeMT61W?= =?us-ascii?Q?eEgsQEqQQgtEqkhkp2viANPMzOhzhd8W4bb6ckRivsCxRuUUQBKQOnGquy8N?= =?us-ascii?Q?1y9veh1AQ/yA+fX0KjEVuZHYtPaz9jkqeen69+4vJdMu4dXSnoBfHhNACumL?= =?us-ascii?Q?sZEFYcNxcWCSJvPdjpsLRicJAP97DNRjK9iKw8vjP3LTlWu94wFCZuMqnO0F?= =?us-ascii?Q?ScGuDmzyz8Z+nICNjSWAhu+QD6KwAFMLWTJrtqnHG7nUuFMMRazvA5Zxi2Hf?= =?us-ascii?Q?h3nipOD/dpU7lh4NLtBrKsS/kT7tS4zyLfGXViX5TFqlCSxEMFhuqX5JvaU0?= =?us-ascii?Q?lio2fq/P6/jU/5G7BZBxIML5bPmVgK3LzJKXJvEa/H9qoNh5HcgudatuJZLn?= =?us-ascii?Q?Os+FTZg0xuzw69zlt0VldXtgr+RoP9zA7TBCsqhtaMMwRqazK2o5brvxtkff?= =?us-ascii?Q?Huz9q8HC8elQz5Gl6tKFK9ODeNyDn3Zmf86WcUUGmhB8aD6iGfyR5gC0/oGe?= =?us-ascii?Q?jNW4Dp1eT4y1fkicxv239B1wclxCIwQz1/8944D1sUeZZk3ubjpDBpSb+0D9?= =?us-ascii?Q?HHW3ya4MFILiQo1FG/cjUhelRCuI2icUgLh9GnWEdS21e6yH7Jm/M/QFsZ6k?= =?us-ascii?Q?5H3nzkFVqlboaAM/xj4F1lHVj0Qn+EoxO8h1XyBC2oxaRBPHqdUmgRRNcCK3?= =?us-ascii?Q?J5iFngWLiQWdJlob9hhxjoBrYeujI6iZEzQgI6er4G0K4LkoGSP3zEkBtoRl?= =?us-ascii?Q?miHCDqrRN8tBBPYf9np8mQEf1cy7/qPKJPKlhLtw4G3ND+tzHAJevk1p1b1y?= =?us-ascii?Q?AKIKm1KHKa+hFZfQvsgJ9+nTRWmIdlVQPeEswk60undqDrqytddz8xxl2qAS?= =?us-ascii?Q?Zu9CSX140w3jQVXByEPbyLwf6GOrbFF40YGPxjTubbRhza9Eegm8VNVt89PJ?= =?us-ascii?Q?Uaj82FIiOClAfDID37+7YTKx3i9Vgtbiu+at0DqdXpO3cHUuJa5EcG5avrLG?= =?us-ascii?Q?d/jlIO55UE2UOfpWvkqZLB7IkMYqjzw2LCX?= X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;6:DcR1PJaYdlich5w8MpgnEMUxJKVlA78uWugxwshpRvZHYtH1qyCgtm/UWvxGmEGnsrPORA5CtCHTuW5q4TyGO/kGdIrXsE14YBbxRyhSS8IBpi0T0MrmXlyU++ZmJJpQ5ZND5eIEbkt2fYYaY3sS5Y+0Xt0kZeo9ZUedJqyC178Y9l3WX7sdE4nlF/YDvsr/knkmgw8MYcMRhDsFrohFtncHU1kG9TPvfVVvcSjphqedLmY9HqjC6dNzB7WssxEqs+vuvVWwXbAKsE4SxWnzd4M/P+u/XmPjqwEI+unyay6Hf/pNC7RRjphPsmzQeSxVw31es+djPTzZ0KV5v9UEvw==;5:5P0dEptILvc5QQvkOzeLH2zRVyi2qdqV90ear0/bS8h40PskeGy1ee4raa2adoGlVtWiWJ6bAcPnzCCqtjkTRO/0kx0ftRXE9+OZBEmi0JheeQIG//1voJj3KJVVt6LuBNhLt5QQN+F4PN3+2EXsWw==;24:IFQygUO5/Z8R+bIWbJtkA+mZQIW9tQzTtCPPxUTKvB+/tDI1+IC5rTlT43G14vt+Ol6TgGkjoH8d3w2NG4HUK7hFsvc+wBOZemnTm9ojX28=;7:m8DLJ8ffS5yg+r4TjvzKcCLHohzsnj03aKdWfcesOtxheExqsLZqEuqmyX01K/I+z2KELlh7EgBkb+NJihlJ+V+hmsIWDhlUeAiHpU5B1M2AmiLRFdeLBP6hLf7rLfteOSHDbkOe/1Jdnr1TiM8AU3dUWTWV4nlojreY81woqB/6eHuylyvl3s5yUBv27SvsaowzpnSjV1d3Td0QfIrbWX2yGTKDVmuhywI6myTgJP0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CO1PR15MB1079;20:xigEYsLcWDnkecwUqagMnba5KmDt8mlrzTtUWA3LRbr/4Tawqk50a+FhLO2AGXvtZhOFxexa7LnpTAOue0BK/P8aJ46IkhiFnTZ8e/zQ9skqrCxPashmUWcFmW82VKqp5gREKzfgurclK3zB8O3vFqTWe0lsRA8cD2ovzNsllG0= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2017 13:10:35.3631 (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 Implement mem_cgroup_scan_tasks() functionality for the root memory cgroup to use this function for looking for a OOM victim task in the root memory cgroup by the cgroup-ware OOM killer. The root memory cgroup should be treated as a leaf cgroup, so only tasks which are directly belonging to the root cgroup should be iterated over. Signed-off-by: Roman Gushchin 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 --- mm/memcontrol.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index ae37b5624eb2..fa1a5120ce3f 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -917,7 +917,8 @@ static void invalidate_reclaim_iterators(struct mem_cgroup *dead_memcg) * value, the function breaks the iteration loop and returns the value. * Otherwise, it will iterate over all tasks and return 0. * - * This function must not be called for the root memory cgroup. + * If memcg is the root memory cgroup, this function will iterate only + * over tasks belonging directly to the root memory cgroup. */ int mem_cgroup_scan_tasks(struct mem_cgroup *memcg, int (*fn)(struct task_struct *, void *), void *arg) @@ -925,8 +926,6 @@ int mem_cgroup_scan_tasks(struct mem_cgroup *memcg, struct mem_cgroup *iter; int ret = 0; - BUG_ON(memcg == root_mem_cgroup); - for_each_mem_cgroup_tree(iter, memcg) { struct css_task_iter it; struct task_struct *task; @@ -935,7 +934,7 @@ int mem_cgroup_scan_tasks(struct mem_cgroup *memcg, while (!ret && (task = css_task_iter_next(&it))) ret = fn(task, arg); css_task_iter_end(&it); - if (ret) { + if (ret || memcg == root_mem_cgroup) { mem_cgroup_iter_break(memcg, iter); break; } -- 2.13.5