From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933613AbdKCRrF (ORCPT ); Fri, 3 Nov 2017 13:47:05 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:46954 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933424AbdKCRq6 (ORCPT ); Fri, 3 Nov 2017 13:46:58 -0400 From: Roman Gushchin To: Tejun Heo CC: , , Roman Gushchin Subject: [PATCH 2/2] cgroup: export list of cgroups v2 features using sysfs Date: Fri, 3 Nov 2017 13:46:03 -0400 Message-ID: <20171103174603.15249-2-guro@fb.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171103174603.15249-1-guro@fb.com> References: <20171103174603.15249-1-guro@fb.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [2620:10d:c091:200::3:3c1] X-ClientProxiedBy: BN6PR0101CA0014.prod.exchangelabs.com (2603:10b6:405:2a::27) To DM3PR15MB1082.namprd15.prod.outlook.com (2603:10b6:0:12::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4c016a3a-a03c-4cfa-20c3-08d522e2df54 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603199);SRVR:DM3PR15MB1082; X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;3:SkN19nvK4pBjz6zI0nBEhoGA7CB5chbCQM4VE80bJcOoB5v1x7Z0wMkTT5d2GNzYgdkgo/BxEqV3CW0owZhNexmZCZ+1U5uJ9ijfHxD96YKMjlyOKJBxedAHf+UUgqMJGrsG/Y78GElXt+8PxJ9c28q8pNCO07w5hq/O49jFQjCIGIEb/P7kbG6YiQNpNygQEKPzyXOOFTtWvyyLN41Z5vApWia9jLgMDmakM4Pn3InMmMtVhjSMHFulT9z0eKYH;25:OOCDveUZt9/72gXi7WWD3vbRqzlTfMuC4q1nh4vYRS8CLTSFoBoDu+cqg+8gHQRI31wvRlExW6bnrqWO3AVnt3t2+W6Q21JCcEA42TtrzXkhDa7znBREwNu6tpC8YFGL9TCaXoZ81X5Kk/RExkxr+6EwVW6p3ntfL0Gc675PT/6jUPCp2uoXMFC2Vxch81aUmVF9S7UTcmeN9zK1aZP8f0gX2WQrZgiar8pIDRlAITm+0HLxwEmLS93csynq0dT6UurhfSvWXnpdyiVhTWzqdzyJEt3AP1rVa2+exSFCf8zpfpTEk9cQ5mH1CX2cFb3uQyEs/2K651inQoX3oCdGNg==;31:6h3cMtGcsz+4WPIHXiJEK+2zCA/K08llptXYWafQhNz3SL4Z/JfMw1xbEw7FFE1NMi24GyP3r7ZzQIUoh0DLCV1N7hy+LuR6XweS7s0y1GK5EHT5w2awlBs4nhlhZrzepkdXQ5ujpM1ca4Ut3nhLaXpogKx+AAhVt6eF9paeiW9DkfR/iJfAZxLhVnupKAgzFYmBbotAK2I9pBHhq+lrtY3svd1joatlcnWlBIwwd4w= X-MS-TrafficTypeDiagnostic: DM3PR15MB1082: X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;20:vhHHGiQ8SGF0y/43Lew//v/41VeBZW1TqSQ88OFJKh4PS+jbqhLseIqWwOdDlB0LpHlTaDr/7nyFpFBmbh6V1nwZOS6xPPivZk3lpvA2CwItiI/B9Q4/CmAyc11ClyysTzpahFds2447plYPZotH5ZE15CX8m0I7+A/9Cw49B2hJ9ot7kiI0fmniF0KazZOaw/VamRAYLgyxCWYghQ3RGhZZ9V6joW/1IM/9XlGSerH6v2EuDa8yY4ydQAVYR13qxRaH0V1OWTumh4zvZxw+Yl/EC4qa/l8Ad8aNghJeGb4di66b9mftu0E3ZyCuFgh1KBUQniwyNZQeZZCEoVmoLp8w4b2aGKssGd8ljYINAhlFWEhXAADIjXdui/eepa5e4ihV2LH2wN1v8dDJuyIk6jAG4wN/vUDgroI1XdisVlZgViuWJ0FMcnUketmkkQMwS+XwgW0d5TKl8VrCcoxKJ/hElB85yq4e/JaK5CKbswYn1WRbWF+2/uM1ER2LCvDL;4:8SP0rVHf1Q/bLI65odL8Zrx5igrOFmbgI3XOa45pnLsAIiACv8Gf2a2db6jO7F7Up+Kg+gfbuaeX2fze0l2xzpwXna3m57P2Wtt2lr2vwHdA394WVAa1uP8gaFu4TsH/3RdlZGPCcOhvI2+oHruBXJY20DVYS0eGm3xHje0wKcAIOZUNaUJ3A/v3FbR45wc9nf10KFLhgSmogEXN/Pk/v5kkCJ2WJOlWosKuLOxDntwJIBspHylEuoC9XUqIG6+V5s1VAIantAjZ5LbGNORQo3BK2puAs+QyujFMNlteetMKOwiQUeJaZnnpwvL/Vuqz X-Exchange-Antispam-Report-Test: UriScan:(67672495146484); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(11241501159)(6040450)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(10201501046)(3231021)(3002001)(93006095)(93001095)(6041248)(20161123562025)(20161123560025)(20161123564025)(20161123555025)(20161123558100)(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: 0480A51D4A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(346002)(376002)(189002)(199003)(5003940100001)(50986999)(6512007)(76176999)(101416001)(4326008)(86362001)(5660300001)(2906002)(7736002)(53936002)(305945005)(2950100002)(6916009)(33646002)(6116002)(8936002)(47776003)(69596002)(8676002)(1076002)(81156014)(81166006)(6506006)(6666003)(6486002)(53416004)(106356001)(50466002)(105586002)(50226002)(316002)(48376002)(16586007)(36756003)(97736004)(189998001)(478600001)(25786009)(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:KtURhbJan7biBVGIvsmNR9otOW+L6kzzHydPyZPCP?= =?us-ascii?Q?0QEdKvXzoi/pI2T+/MJqtvZyog6c/fcwYjR80PgtBrryAMjPyW+szrYh4/MM?= =?us-ascii?Q?JBhKa97B4V6teNNgsmeXEERHzHuslcRVFjFfNW06NOPj8Wi1ffNOM/iEvPOX?= =?us-ascii?Q?lUHmwiglrqy4bsbagEiky1+FLiWNcE8Ae+n7f3eYg+s1mP2hM/c0lqWUfkss?= =?us-ascii?Q?JscJgx/KHuEHGfnXvItiIkHbRRNvVqctSHJK+jDxUSE3BGvrJ66O+HVEwFEn?= =?us-ascii?Q?PEBTBgGtVAIJ2X/FSl2coX4croX30qQKQk3hDT+xJj0xLIzGr2xOhcrkAlFW?= =?us-ascii?Q?BecMQEYGtAkNITifmPrlCXM2gNz9ZzZ3LpwJMcdhGQjaWS12N7HIuayXUzk4?= =?us-ascii?Q?vqp5fsLwvfUpPm9BkV3su33HhHrGZ4auqgt4rOcgIUWSnVIIr5scCDzz7wqi?= =?us-ascii?Q?d0ACUH5wAPtkv8VTC9C0HNWaqJLwdZutbUEPMqtEKj+gpFOpFvtNz9vjwlZ3?= =?us-ascii?Q?wGAe40oFTrYLKz9Wcwh905rjz+yD6F8WyojiSSNDiIj1HudCQLIY+dZ2t5gA?= =?us-ascii?Q?kuoYswM/kyumZI9iplv53RyFxStB3OXM3SOassRz6UMs8hy0+iAPU0J/uqLa?= =?us-ascii?Q?vYL9OSiyxm6/h84FjLT9tVJ7o/uDfR7bA6l7cL0pkhsaHc2m69TU4LwoCA0T?= =?us-ascii?Q?JT8Emrqza53AvmFloEC2m0ubniXL30Aqt3Xwt1c4O/U8+X5d87/WhewnvdfV?= =?us-ascii?Q?Qco83a+BYbpwqtH5cgPS4Eq//x5T3xhwI2Z2jl2zyqfnkLFvr1lka3M+/Vmx?= =?us-ascii?Q?DKPUtMXv95e/sJqJKgcmrzTA2lAk6FSA0krywjXiO5I2PFJCtY/SSRr1o+mI?= =?us-ascii?Q?DBqhSot74gkWLhYdIbg/oGZhZi0xCYdtapz5XXQhXijEYPcqOKH3O0Dq8kkT?= =?us-ascii?Q?UQ1r/ZC2yEjTins6TvUKHp33UgGA/Z1RGIzJXy09Iq/AJW7AHmaqBBm82hA5?= =?us-ascii?Q?Vqoxr7NUpCAisjyoJ/mhayhwKJNqCF8ot0wyJH8Y8jjN0Fz8x62lxAtCGDNg?= =?us-ascii?Q?9Dooigz1bSJpFnIYbNBPHlt1rkx?= X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;6:XDS8pe/UR4cMk4gp0Jv1Vs8GCp0VqFEihv9hAGBO2RPgjutab9T0Wpq4eb42Nl7KNgwn+UlIXGaYL6OdrCsuMZ4ClQ2TXskUCVXjCYS9qr0XLmFUN/Ly3dlM7BCmp8e6ORDfVaoiM7wcl4uNk+qFftq4N66fd+HIffUTgn7nVZmhgK2PQpaCY7jcOLL/IAiiedDRuTQkiILeb6x7T8W01VEhuPW063JafAuChdwJNox3hHrfxPDY3OJdwi5vthpiNta3cmHeoDzv3RLTjh04TvNnEVXpDKTuj6sBsX5+iyB3sxFtWqz6GmxC7Zd9b1L9ICgiYz6IHJ+fxyJsmneeCZPsSsLf2d91ZXKlUSkNiAA=;5:g9pZyVSA0cBndjlP+TmtXtzxfjWkIUnL6GbG7oLM3oVXW6aeMdig5WiqEWlekwXAeWCFIpUyOWRJ6T/rpJCwepoX/gFygMyn21PdCxBf2YDLJAR9AicgvHvuzKdaK6s5Y0Dqhn4KuXNHP/6RDKdqButGfifPXrynbntObXJ3ZPg=;24:NubyMQPt+/TfuXQ6nUf6Z6FEXMkExuPBSRIH9R3dO+UleoiNZPlpM9hV3UDKOXkUdZmFShaDZ3wV2PirAVgg0GbBRT10HF41CBmrxV7sss0=;7:3+6s6ytmjzEYKm0TYSIoKBDTJXU1bH7AVXIdJFMjUicxhUzpxiR/BkF6oFnQ53qqtewl53W8OOUsSTvHwdLM1JgIEcBOTYYsTopxpTwOemEUs4u7B0NYc33z8H3hkD4Ral84sCDzQqjNmAFqkMMGNkd+hFQiYUFPFs0EQtEv/pyLYMT3n6kQ4tHAfeq3FOVlqUdx+VeIjqyW/CUmgaSLpQy/jpyV/M16uN4zR7R7eiZ9Xy2zuqNRtLdWgf6OZGDZ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM3PR15MB1082;20:ESuJiBh7AfHOBkTha/m0cct2JlTzTKuPF5G2SfMjfh/JMDut+o9/r1MJpZO+R4PokH1BjTKIsf8Y37dR2cyyyOjoiPpxut2S8qE5vN1tOdcIYOxsriuL9lcnUPdwxRY9Bc65gQnAOEZRVUloN33DG9KD5yvEn/PjeHFuzlDr7K8= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2017 17:46:54.3202 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4c016a3a-a03c-4cfa-20c3-08d522e2df54 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-11-03_06:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The active development of cgroups v2 sometimes leads to a creation of interfaces, which are not turned on by default (to provide backward compatibility). It's handy to know from userspace, which cgroup v2 features are supported without calculating it based on the kernel version. So, let's export the list of such features using /sys/kernel/cgroup/features pseudo-file. The list is hardcoded and has to be extended when new functionality is added. Each feature is printed on a new line. Example: $ cat /sys/kernel/cgroup/features nsdelegate Signed-off-by: Roman Gushchin Cc: Tejun Heo Cc: kernel-team@fb.com --- kernel/cgroup/cgroup.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index 9dff92c17a1f..548b12609943 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -5877,8 +5877,16 @@ static ssize_t delegates_show(struct kobject *kobj, struct kobj_attribute *attr, } static struct kobj_attribute cgroup_delegates_attr = __ATTR_RO(delegates); +static ssize_t features_show(struct kobject *kobj, struct kobj_attribute *attr, + char *buf) +{ + return snprintf(buf, PAGE_SIZE, "nsdelegate\n"); +} +static struct kobj_attribute cgroup_features_attr = __ATTR_RO(features); + static struct attribute *cgroup_sysfs_attrs[] = { &cgroup_delegates_attr.attr, + &cgroup_features_attr.attr, NULL, }; -- 2.13.6