From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752542AbdHBQ6V (ORCPT ); Wed, 2 Aug 2017 12:58:21 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:32938 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751182AbdHBQ4h (ORCPT ); Wed, 2 Aug 2017 12:56:37 -0400 From: Roman Gushchin To: CC: Roman Gushchin , Tejun Heo , Zefan Li , Waiman Long , Johannes Weiner , , , Subject: [RFC 1/4] cgroup: keep track of number of descent cgroups Date: Wed, 2 Aug 2017 17:55:29 +0100 Message-ID: <20170802165532.22277-2-guro@fb.com> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170802165532.22277-1-guro@fb.com> References: <20170802165532.22277-1-guro@fb.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [2620:10d:c092:200::1:6b6a] X-ClientProxiedBy: DB6PR06CA0034.eurprd06.prod.outlook.com (10.170.208.175) To DM3PR15MB1082.namprd15.prod.outlook.com (10.166.160.136) X-MS-Office365-Filtering-Correlation-Id: eae9c6e9-78d4-483e-c6be-08d4d9c758c3 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:DM3PR15MB1082; X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;3:i99AOzPgO1k8E1aqLxNHGwFyeKg5svDq3fgGAU7Feh42aUr6G2Jm+31ajHpKIbapH+8y23eYZ/gEyyGO12sc+YqrtDJ2WozhvAqI6mDYRr+fplMwHJRZAomB8nYLjxwD/EUJBdSfGoyDHCloIr/587DmxtW6DTheF7sI/7zRI7ZdbCGXCPwxlR+VeutbbhHCsy//kctd3TLwyDBb2jsXmKV7mW0bknCpat34dlRQWuQ6HW245S8tiKP3IBsJHIKNgauqHbwMUdaGhNsUAynRIa4rERpz38NMbk2fRpI5UJ00Lb+HQUVTrJ0SYp5HWUXhpiWz0OtTVGpxF+5QiPIYKEgtesONUGEU3ooUB0T9e8S5FIzwoYTZQYRlhzknynWlWYFgs1fz9B3VPJKT/eqpZDPaVk4poyuPxXik/2f8lQAzhfNfduLlon91F0y1ZQyU4EqHTsUw17H7gdP6fckZ3F7ONWatRwJRDqkIguAuOp6bmxu/xnl/OZHrF0GULoceMiUewq1meqw41oUVv8Rsx7p5okMulpGmWEfjoWLD3L/7py8McVEuMlJO8HPW7miTxxY8rX5IPUSEibBSvF3OltCUza7D6TX4DCU6n3LhoXh9vUJY1s8OZoWLR4gtlxm1hwwTLyoQ6qyhxjXsRJJg6kSYzw8K27sVZY2Z3vZUaEMLHq7VuUieRFkjlbN6fo8lXCNg3M/DANYv87KXsZS1G3IJPk/cVuLff5hb/dXmr4aiNJV26tKvmPO4OT7mB9sERlw9RZ4r1oH9JGjfhLVfQ4NB+HcMU0BJNHNPbusk+Cw= X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM3PR15MB1082: X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;25:9CQi+ysFfhU/wKJyjA5hxGgFz6zpH9pRpT8ioxuPQKFA2TGGFQxoJuKjVpciPh2SWJyBphoWRhHviQvpM9cLOJVyOAmMuQtK+UJpVx1oVel8yP8Aiv1PEGR8kMY5LGgq+N0H7kX/aRuerzvt3LBjON+uvcX+hc5U/eyCqwXetKiRclADFBiuBEG++FSAzxmBAWIPgZNy6LR0Za+ji+edQnjaPX9GribP1hv4N6ARkAtWxUbMDchegGQztPg4VyUGabEXWs+WxVWE1nCJONGzbdtyMEuh6YPoz0059xwNvozWmZev4sKhxydMOEtLBE/lFbD7ps2eq2d2IXCy/LeXm3iQcgqmHIdgA0c7hgoxnxStfm+NLrLX1eoGa+XVge0lWK52NRsGR6My0ZA1YIHv8nH+iJCT5ojREI/KJ2FG0+C1lo1qGHz8x6qcYO0zpDlm3U9N2riqX9BTbgbsfXMINyp3CjiIEVByZMovQCcFIaabFrXE+7x6dMtFmluDbnKW+CWOIK8qdhyvJqCtWx+9M7FALg4HpmNSMprstxkM3N8U9yOtYZq8BvDi4FIGFiAFE1uzHQp8Oy8qPncgSO0E2Wh0HK97hFB1evYIqhwSjx+V12byO80gJf8Zv3x+hot9y/HXgrkicHoOvHu3rZeD5DIm1jDS/WVR/YHoP8eZGRce0pad/ccq3lJSopK9IPAdenCkvCcrHzncJuuZNRIKiMU8GLncn/IZHbFfxQjmYq75vUhyay6WcdNeFUvG3B6iYbp1C6FOTX/T4vNRUOXaL+BTZmM2nz1VZqGj7cxkiSB4WMS7OvuSEJ2mQhQHwj5vevnZTHDIpJofaxkM6UDnqHW3NMrrR3WDtBi2zhC2smr/ep/X2D9iS0w/IqaxV1gFu9kkyFYZ4HiRaUgtwtXvL1pUfqGHrDKVfuVDNhGGIuY= X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;31:itlNWXC7mh5H7y0ncUv0CPVdea1Tn1Og776ev/fH7Gf8i2wQkb50SlgcPXdm3c0hXXpV2jPzPSMSGElg0KTelJz8sH3J4xYTT3YGAptSZhH5TVE0ZhQafCKPPU6T/U8FXa6NmIAl9A/ompQl3zb6MnY/v6i1CBPg569XhZ0WU9285Vue4rz/z5/j6oUA2DY0ALcI2vh0SQZwgqdIRcLE0RZkbodjMsU5kcjAZpcE0Te3V5P87kjVwUjWvFk1XlALwWYtWxrE515WSiJU/BS1Yo/yaKd029JYh4E+Tf76DTKX6QIkaqD38ChBcm5dwCXY2+h3z5gh4LF4Gb9JAGU5IIhZh9Y0j32wpzWKyZeXc0Fo6SSCOVEsJZa34owLlDYWkKKXWHtPp/MWKvElBo7DiRuPc8eDktGB9a8vR/9m1og63zP2dwsJa+aNo710JS0BgfwcV2Z4LrAlr7MWlDiWgnrb5Vch9q3KFZX2LpXvCsegtEVvGIZ2yqlSb2AiNoqxq3uN/R3Wnl3/XQuLVhjBs7Qp5l/ohWddXFNIoU9DoRbrRWUm5OO0s0PE2wexCM99pWtU09sMxunvo/42F/JFMIsyknrw0UIu2n1OR2aAcCKE/XJF+TXjkMIfVvHvurQR1mgrgSO8/EPuB6aK2lFFPTLd3I8y2hKK1qZCt9rpe/U= X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;20:fOPIRa/2eveToHjrmiEU3hulYDNtIkljD0ofrXfg5hvib58L7BuJpRVD25au8wVilIwZE8O62sG1YLVKlFBKKiVg6IcNsTqvNmD6unrjaXcRxCrhIroLcuykMX2UAKGfqxEgQzYqEFBIqH9pqfweqXXbf8KD2FvivfSWt2jnHr5KJ/7/sx0/ijG+QAAc+TSxzxieTpQz67B5ktT0bUa8Is+2M3IrtegJOTkSu3XhXynDG1vfRTHvT7T5samDizqkM7tX3/Flr5MLsJTUDZsUIFxiHd2gQ7KB+/0jfLlc5wwtgKBoasfc1NDWXyLspFOCiXbpcDohR9opN/W7dbAPU76NwVvd6FZmBonDgYfvNukzD/SQSFoGTo206QhDxKdxKtt5t7P5knoGcixUsQxhMB+wk4PnOXM3GiBNwphyqd5t/KQNvj2HxGWmmsDYJF4F6HGdn1bMIcz//AYBp68dp7MFWvO3d0alGsljpcvBLw18CdQz5xyziitdiGFZEhwM X-Exchange-Antispam-Report-Test: UriScan:(209352067349851)(9452136761055)(50582790962513)(67672495146484); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(3002001)(6041248)(20161123562025)(20161123564025)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(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-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM3PR15MB1082;4:jJWAW9SFIiNTlWz1CMiY5jVSWY/7ea31p3h40woCDD?= =?us-ascii?Q?CDP8A6PcmjGPDR/xZEyfhlh4V3CN02hSc0ckWQwyXCpOp664/pRDeNcwYGyN?= =?us-ascii?Q?kMNErP2TzSkAa2KY+WiMWvXRBu/hfAN9IEjsOjdkMRyyTV9UwBB4xnB5JI/Y?= =?us-ascii?Q?Le0nya3CaYXOGQ6XxUl8Sm9kA1aDncMywJj5Fp3EGp7ImuI4LbEfh468026d?= =?us-ascii?Q?LTrilsJwhydRGU/YzH0jDfEjjMSHGrputOgQUYHuEKhxpIXJeJJm1d0zc3ZJ?= =?us-ascii?Q?CBj3VJ0qHpswqa9ob+gzfa3cK3o/EM30ye+PJ0tLsmNhz0DLFI6ieQHVMPmS?= =?us-ascii?Q?y7BOeBP0lbc5d6L9kQ/9C2UIsLtC51znOp0dnpueafSaAicDEXcydI9RFmtH?= =?us-ascii?Q?EhRnj8YTrjHnTAGlvVx9eMFs6g5YgLptzXf9VAvcmavq6VubTAHhQzgQXHOc?= =?us-ascii?Q?naTAQ7+sUklT6LNepjK2hhM3mPeQ7O50ZGlEy8XwXYnIf2mTKaesob5uzL6F?= =?us-ascii?Q?2pEkJgNv0p1NrKEXFHuQYWuCm4YY+habp4xk66FZyb6xssW4/rgQc6HEwcEx?= =?us-ascii?Q?SNXH2OI/gcLxcukt1M3w8feYu3Jp8aAVaXRKYWjHtoDAqgyly+uGvD9hWBed?= =?us-ascii?Q?KjScujRBjIOeyggJxvzgtKqKLWP+V7TSiHWzz+Tgx5VM+czV82kzltI8KXVL?= =?us-ascii?Q?0fpCz/AaJn1IIBNucFAKN5ntCST/2ofdinJU8dvVV4mZ8hUPH6L7WRigRNBz?= =?us-ascii?Q?8GcfQf8p68Q1pvW2mQkbRHb+SH99+3PQRhB0xrL0hOIe0Hd5KjP0YeGDIhkl?= =?us-ascii?Q?wkk25Zt528JMdBxzpFseN5NDjYJGkN3HvAEQhl5TQenZpEBXYYsy4vTafQ98?= =?us-ascii?Q?khtQ3JZElgptRBaub+X3TTX8Gg3rV1uX/hFDbmIsocjsrW4igcsNdy4wDp0C?= =?us-ascii?Q?iUFSjpK/fKwluuanYQHFkAXJ4omf91jEPR8/gAK8iaaG624BKurw3V+SlP/C?= =?us-ascii?Q?4CeW6QObaJsAstXOxqJ+TUMWHNpRbGT0Uslmbq+r+RZpn4HveXIrC4pkWQ5e?= =?us-ascii?Q?9XVbS4e07VGCp+OoGjrm34J4qsLaOclPoLvK8iwXMiPYnBT3fGyor5IxUywj?= =?us-ascii?Q?p8+Akx00cvGGR1Iusb52dujwCe0dEwMgf6h6Nb1hdljBy0tI/3jGa/IPTbhD?= =?us-ascii?Q?riMlA55tfEtQJa8dRxpxMNh+2V4/86xdDKINHqCJBE9CQfVwGCChv1HCOA4m?= =?us-ascii?Q?CEr2vkbpt4y7Hpd2TfHRZsMehLRD3+Yi6eF/DhcLD/7+wY+d+ZHchO9rAy/w?= =?us-ascii?Q?=3D=3D?= X-Forefront-PRVS: 0387D64A71 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(7370300001)(4630300001)(6009001)(39850400002)(39840400002)(39450400003)(39400400002)(39410400002)(189002)(199003)(1076002)(5660300001)(189998001)(6916009)(86362001)(50226002)(8676002)(81166006)(2351001)(53416004)(81156014)(106356001)(105586002)(478600001)(6506006)(6486002)(6666003)(2950100002)(6116002)(47776003)(2906002)(7736002)(7350300001)(25786009)(42186005)(50986999)(76176999)(4326008)(53936002)(2361001)(54906002)(305945005)(5003940100001)(97736004)(6512007)(50466002)(48376002)(38730400002)(110136004)(69596002)(101416001)(36756003)(33646002)(68736007)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:DM3PR15MB1082;H:castle.thefacebook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM3PR15MB1082;23:0bFfAVuThsYfqBA7k8YzErgLOi+8HPAsNBZOthltZ?= =?us-ascii?Q?wKKrhk6rT7PA5GT9eewbtPdGT3RQFVcNYGppHUwtgKHYgMuQQPbaygjXNp38?= =?us-ascii?Q?z+2X3o8oj84aVmFMpiahE9LKdkCZz94Bbn49zVX+oK153hylsxwOOG/+v6K7?= =?us-ascii?Q?IT38gs6P9X8So/VyJKTMKNlZHcdcb54MOoH4VSlI8+0t4jtQYpXski/Y0xDy?= =?us-ascii?Q?z3Lhx51u79KqQLLuCAQSSclAygaPUQvZqUDe4tadIXqo4lmCpxG4p8uX1y/S?= =?us-ascii?Q?eibQaFzPW0tDazPcSNGBarYMuESgAvGNF2XtrscBLz2ukrclar8vMNk1O+TS?= =?us-ascii?Q?zEDxu9RNbA2/TgTCsaF2QXPsBUz8YmJ5mLLByEVXWFubSc8QokCOP9jhDgBS?= =?us-ascii?Q?/ly6HXcpkjmvvNr6qQCLte5vkIJcxnbbMyOxj8UqJvUrjwc1VRtW2WJpFQfi?= =?us-ascii?Q?5/qxA/Bvda7OKziy3IfWWIE9rGB+6xrIh9bkTDavBpPOV5MZF9PUgn/cX5g7?= =?us-ascii?Q?cZ5CcCUFYyGsusr3fYmjXpTQPjzEjd/b2o5gi9C4i+GWFGiIMjahnTdni4pQ?= =?us-ascii?Q?qRkFBZrSSp3EoXfb6quJymSfa6tt4OlcucA7KwzlJD/UrpiY+YIW7dWrzph2?= =?us-ascii?Q?DX28HDeftDeAU8BubSuQTzOfPeaEZifj6NIR2uRYMybESw2ygIlyAF/Q5tWR?= =?us-ascii?Q?kq+3N5HTxkv3C6U90/Xz2Nxa0YM+xQLVtQTIl04vap5JdWr0g3tG3SQmM98W?= =?us-ascii?Q?JGqy5rRY/B9dYhc2qkUFSIFcpvJyWTumLmWMbwqtnOmxshDnrw1hwcJ6QyDZ?= =?us-ascii?Q?qPIFLKyQvVqLwsrFTGcuDaFdmiAVMPPKfYZl/shBYlb9zTfRHzD9k6b4hKRq?= =?us-ascii?Q?rdwF50l6ficM4nRFPxntnHr3mB0SHfSiauI03OVJp2CJd19quog5E9LdKQ3c?= =?us-ascii?Q?0CeHuM7TeTD9M5NAOpeisHv7r1xw4kZODDRf+GLSQEl8o6nkNrNxRXNDUQIO?= =?us-ascii?Q?6FuygMHTL3iiUuT1nBJfWv86xfg9efvuOiKC/f6uhmzNWD5K5cTDMdqauqFP?= =?us-ascii?Q?lFmibJfYkwdfCf+VVVEAKkFidMJJzvq1qxqtRpOoCfUeaLIE3rcBAD4N14NH?= =?us-ascii?Q?OuC/5dO4kHfaU2LHtRjdA/yXwcExB0JmRZBWM9xnrdGsueCpMJDXeJBZyzsI?= =?us-ascii?Q?lG5meAgFLxnPM3M3jP309II3OS3L/2hWYWmxRPbVSKO1AjiyfQrCPWfZ0oMG?= =?us-ascii?Q?qSThVo5nOFLYNFsT74znt3TO9TXUqqr2hlUy1KO0NcjfkMFNsXUBFKRhpTkB?= =?us-ascii?Q?qhTl7B39XW0IbWfCGlxC7puGUmeLIwEX+F96jczmVv2?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM3PR15MB1082;6:8QFBSTwnXH1u4ABOA1r92e2zEp9HhjSti0Utt+SSF2?= =?us-ascii?Q?Ul46TpqKNU1IwFD+pKU9uEfowBjtFL/51rUjQsnKjqHaFYevwwJdUuJu6Met?= =?us-ascii?Q?mnwjBg5/G28af4Yp63inY9PXQ/vU9+CDcIhs8y9zE4ltEJt4qH5Hdjx/sC98?= =?us-ascii?Q?KXRMu8gQjMuwBOxkeQJ5FHGY9sPt9EWezNpedEiMaBU8DWk6G3FPWjNOQGou?= =?us-ascii?Q?IUNqi+tWP5NU79wPaj6VHQUSBBYBLVm9MjKt7OoIFNaYwRk7SGZs7dvtsNhF?= =?us-ascii?Q?SWRr+P5O40jh6Rf19gwyOygtkbCleNQMc7Q/RYeZD8EMXQFf8tASZeLUn2Us?= =?us-ascii?Q?q2CZKnqybEzZ4xhW+pfzcWFTI6h5dUa5uKNxBwsiLwETUxbS1rDx+Jpv8tgS?= =?us-ascii?Q?PmDeFnMZcg9cAyAAnFWEwSmaSwOoThhPbMdm+SF8v3cN7+dNe0l4o3tU5QO4?= =?us-ascii?Q?Y9gbsiLUGXQdGrQHKgGJO7hs4UxWZ2Rpq0NH6HzyLgQNFz0X2NfePy/fecEg?= =?us-ascii?Q?ssLBuF2n/51qABAwpD3CPoHw4UJNPeYMJlxKTax826E/B8lBIk8J4En9hK1c?= =?us-ascii?Q?QVKwv38t9yBo7qz7t/PABYgU28vyOs3eI4O12wt11DEJjGA8CyD7WK5FpX9S?= =?us-ascii?Q?Z1jWfamzI/ty2bk48iAm7nJ2BxVp7OWQ7f1YCghXJvywE8NJTZ+kH3caIbSf?= =?us-ascii?Q?1vMPgJ3rTcKsAM9kShVvNtanc+C6Bk8AonIZGQ9Tpfy8MLqjE0sWFVluvkLr?= =?us-ascii?Q?4v0EHyXgmAoS5vrqDCH2cKaxMOtElh0Whj1uad5VUuy6X0e/tPhLsvWEbw73?= =?us-ascii?Q?Nv91om+QFPYECBtIlibb8QLQG03DX0eZyCGdO9ZGq4475RDzk55BCORYClh1?= =?us-ascii?Q?U3ANASBObLvL3axcaDKZwqDcKQYG/PPc2DGETkarIcNxLYuW3KaWuXWDGwvf?= =?us-ascii?Q?0jpziRhdvISIwgQ63h+YjsBkcgRcB7Z09EdZGvgisCojIhSsfw43vGKI+v4c?= =?us-ascii?Q?M=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;5:urVo/S0tUxAz9WOohrjlv5s1JgbUhkbdSo3qwW+ueGAHUQPWsos66AzUGLjFt5ODwXhpiavclM9sSkHW6WmxeZQj3AlkoKQALMcn0kK0ZxRMMVkX8dTp6aHcfa2FIhPhhgXKVnizjLjJo7R2frk/r23ovMaduag0OJmwIeLUnndoFLH2aMOTkQKQFLFkvEYQUocL/DmFJo4yrDm4BVj96WQ3uLaAxaO41ANGcQzBTpnHbI7kfFiIZV7PsE9uPgHiTfrCwlfQeVRdT76s84ujZ21J1Y0WvznYBOlfNZzX1z8q+Roo7zn+9FvMF5qGzVxUyIwG4B84uBLZLscxV/RmarMGsLvPZ8rE67VH+sxas6IDZA8BJsBk/uiBvdS43xra21Zoer8YPCM9iB+aDeknAbs9iPfJT0U5eYHEnli2wmM6Fj53mKT0XIjavI65VIYBYxj4yHrekhazNCpqkvhPLQjboLyCwkP7yVq0yLSMpotk7yS4OG2yMAdDJ8I3z6Nc;24:HGzlSsF9PEOGOj1WjSSPRttwxvHHuTLVz/dFkrnoz4m6P26g2VDt9paVzbJjGCDBBTVWVMFBiNSkuITS57EalZ+blP4+NPJid/ECknJTxWI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;7:EB2wnumz+YwlGqm4UqbcWhg4C9hWWsZhyXLCJLvmErsUEAGzIC20989RLNuSOl/WEfWLQWlM3XZyfXerRMfn81cfJTDrwj/7X3OFnHlj6M+s5DjfOMj4t1lGGL3KSraUQyhniJdhB4rG1amtNMz2LiEwrFmxn0x0yDtB2E61TlNT8xF5OKkPM2Mj3ZsmeJP0ZXF+3vf5eVXPsnEdiziqlWhRHh6jtFvBzGEHFuObMkxZVT+9WD8i2caTeYCVvSo0VGLOnzFoYJUsK77+3Nz4Uh9mxsHP8QsJOz4xS4KF20dwVXzXoW75sFmnmlDX+47H5vxKI9IRDtmCyZh5rEV5UPJgInFOKT077z+KfjgahsebIjwR3QY91v6Skx7J4YctN41b7j/OmE23Gjm6y0q3bWzOLshBLw5ahXmc/BLe6ki19cQSXRxcQtDsYVCijvVYP940ICI8CqsPds55BZOpRaYe0FqcXd4AXhZkoQWhbKop+o4isWYSPS1ixx7pkiv0TT7+ntR+x7GJcSLiJt5ylGJGWm51bCmGPtRD2ffC5aQ4h2bwb90guaORu2bkm0K9GKRujSyiYdExLWF7h+iGTPVd1S4r9Zd61u4bNK/JeiqWb0fkv/Nc/CduW1cn6pO3ZzRYBUG3RbRRNeZb+seTuDjlgnNHQZXp1xEdjXpkPT3Apn7O6nr1JREC7G+Q+DqnnyTEr8G8buT0QdovC2BoOksfCMLOj/AMaE+/kncJLOM9qnaWwTTudpd10wXEAKr9/TWWZc7rNfy5Ajp7o3esUQlOQ2rr22/6na02sXj2Als= X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;20:hxpxtJkIQyEV/xZxnVUwEKy/EPvDrDCg3C8/6mZorADXmvdQRKHQBQdDXM7HYTeL+ZPwAtUdpDg6pYLXHP1bL3+SVvl3A5iX7UblKkIkZBubb8nxNKAshedP7phpB7M8oOnHsucXwebAUX9trJzxS7Y8/Mn9y0rpXeDMnvCMOto= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Aug 2017 16:55:55.9839 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted 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-08-02_09:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Keep track of the number of online and dying descent cgroups. This data will be used later to add an ability to control cgroup hierarchy (limit the depth and the number of descent cgroups) and display hierarchy stats. Signed-off-by: Roman Gushchin Suggested-by: Tejun Heo Cc: Tejun Heo Cc: Zefan Li Cc: Waiman Long Cc: Johannes Weiner Cc: kernel-team@fb.com Cc: cgroups@vger.kernel.org Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- include/linux/cgroup-defs.h | 8 ++++++++ kernel/cgroup/cgroup.c | 19 +++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/include/linux/cgroup-defs.h b/include/linux/cgroup-defs.h index 9d741959f218..58b4c425a155 100644 --- a/include/linux/cgroup-defs.h +++ b/include/linux/cgroup-defs.h @@ -274,6 +274,14 @@ struct cgroup { int level; /* + * Keep track of total numbers of visible and dying descent cgroups. + * Dying cgroups are cgroups which were deleted by a user, + * but are still existing because someone else is holding a reference. + */ + int nr_descendants; + int nr_dying_descendants; + + /* * Each non-empty css_set associated with this cgroup contributes * one to nr_populated_csets. The counter is zero iff this cgroup * doesn't have any tasks. diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index 85f6a112344b..cfdbb1e780de 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -4408,9 +4408,15 @@ static void css_release_work_fn(struct work_struct *work) if (ss->css_released) ss->css_released(css); } else { + struct cgroup *tcgrp; + /* cgroup release path */ trace_cgroup_release(cgrp); + for (tcgrp = cgroup_parent(cgrp); tcgrp; + tcgrp = cgroup_parent(tcgrp)) + tcgrp->nr_dying_descendants--; + cgroup_idr_remove(&cgrp->root->cgroup_idr, cgrp->id); cgrp->id = -1; @@ -4609,9 +4615,13 @@ static struct cgroup *cgroup_create(struct cgroup *parent) cgrp->root = root; cgrp->level = level; - for (tcgrp = cgrp; tcgrp; tcgrp = cgroup_parent(tcgrp)) + for (tcgrp = cgrp; tcgrp; tcgrp = cgroup_parent(tcgrp)) { cgrp->ancestor_ids[tcgrp->level] = tcgrp->id; + if (tcgrp != cgrp) + tcgrp->nr_descendants++; + } + if (notify_on_release(parent)) set_bit(CGRP_NOTIFY_ON_RELEASE, &cgrp->flags); @@ -4817,7 +4827,7 @@ static void kill_css(struct cgroup_subsys_state *css) static int cgroup_destroy_locked(struct cgroup *cgrp) __releases(&cgroup_mutex) __acquires(&cgroup_mutex) { - struct cgroup *parent = cgroup_parent(cgrp); + struct cgroup *tcgrp, *parent = cgroup_parent(cgrp); struct cgroup_subsys_state *css; struct cgrp_cset_link *link; int ssid; @@ -4865,6 +4875,11 @@ static int cgroup_destroy_locked(struct cgroup *cgrp) if (parent && cgroup_is_threaded(cgrp)) parent->nr_threaded_children--; + for (tcgrp = cgroup_parent(cgrp); tcgrp; tcgrp = cgroup_parent(tcgrp)) { + tcgrp->nr_descendants--; + tcgrp->nr_dying_descendants++; + } + cgroup1_check_for_release(cgroup_parent(cgrp)); /* put the base reference */ -- 2.13.3