From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753677AbdKFOku (ORCPT ); Mon, 6 Nov 2017 09:40:50 -0500 Received: from mail-eopbgr20127.outbound.protection.outlook.com ([40.107.2.127]:39328 "EHLO EUR02-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752714AbdKFOkp (ORCPT ); Mon, 6 Nov 2017 09:40:45 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; Subject: [PATCH 3/4] sched: Export per task_cgroup nr_iowait to userspace From: Kirill Tkhai To: mingo@redhat.com, peterz@infradead.org, linux-kernel@vger.kernel.org, ktkhai@virtuozzo.com Date: Mon, 06 Nov 2017 17:40:41 +0300 Message-ID: <150997924128.4082.15703293256289419444.stgit@localhost.localdomain> In-Reply-To: <150997831079.4082.2128628793286090861.stgit@localhost.localdomain> References: <150997831079.4082.2128628793286090861.stgit@localhost.localdomain> User-Agent: StGit/0.18 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: AM5PR0402CA0003.eurprd04.prod.outlook.com (2603:10a6:203:90::13) To VI1PR0801MB1341.eurprd08.prod.outlook.com (2603:10a6:800:3a::27) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2f12c121-49e8-4a09-23fa-08d525245b4d X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603249);SRVR:VI1PR0801MB1341; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1341;3:3k+JmaMbt7k0baqo3PZV2C05e78T4CbkvYdbhiBQHUVp3mzy2pJzk/FyeZ+qPTiC0CWSTnzSMMheWyZDG3W7LHOkKlUsDrE0p0B1DEqcMzeeQES2gsssfjMxjVn6SYhhXcC6gy9PIwjdFA74CLOTQbpyBmLA51YfGtKaY8QhtMOVpxEpJM81dPHp39hswOstr/z0TxxbndzNRy78ZlYd+nsnBNiz5nYHTPxZpSFKeel7o+54fQwWl+kV524GRsF8;25:3ScgxiHLHaWvdmJtXMTvbECkLaz4G04BkrDgK/EvPcSsYoV7tsO5Go1Sn0ZglnFIgPEf0MLxKcBhO3UokGYQ4D+Khb3faxmhYqTg9uM7ClVwBr09wIY4ZH0ePp3tlk1RdiMuYgL/kujfjGNY+BiNqAsVmtWKlh3PMxko8ljTwG29CzTkE3rQB7iGpezspZaC2Shaj6OdMgqQcOmOWMxg8TZ5jWEsRbTJxfCDqO8iyPmygE5PPshM8ijb0niq1k+gvzJiGX9bA9uwL9841dzHG8G+JXqdyHyn5IaU/H43J1yVVhgA3FVeP5mh/acbdgckdU+9czJJqhbPFSQm3vtuBw==;31:EklvudzvSeOkJxn8jcjXq07SBMuvXnBbXzO3CFDdlRN4QZxrsDVDXybmb/HK6Fkj8mThGGksuiq9XomJH5D7EaG7FyeKZ6HsBKHCSIxZS7ijZFKl72yn04HovPbTfrtHxbTTJaQX38q3OicqwwE5VI+Y7fYNvJv2s7HdzfEmPQ5UInf+53k7TI0uA+jp9Ggh0nFRo50FLGOLuCk9suKljpgFxZWsbs8thNfOlZFRViU= X-MS-TrafficTypeDiagnostic: VI1PR0801MB1341: X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1341;20:cTegC7MzugkJ8u+smHVfs6Jca6J77DZ/ag0PVHMyi5zmGPCr+84OugaQrWkYre4cUwOm402RHAqINa+7GlpZ05BraglRYwVIvHO3YO7ZYwySyrRuHMC1yr4NHBQPB3/yFFMKiG7Q7flGCxlhpxt+pRGlmTiJY+m3Tu2i0CK1u7ZXYcLK3xdbR7KeQcUHuiR3BBXm7bHWFpIvPanxwlSPOkbSU5oEAmicghU3FysShDLAFO38y06/D80DtImGTeNrrkpYoPQeNbAH0ewz9WNOy5wXlJKgCwloXr1WBNuL5JaQkH3lTGld1BjfJhJeIX2s2MaCrO0i1t4vfLfJ6PXRlAt4lB3HNKU6Q6jyC+Sxfq3AdyxDdv6Geem6lncjTmO5ciTfgVHgIeV5H3b5H+78tDb6OS0YdfJLMqyexOkw/h0=;4:vDPN4/UkrOR94/E+4i5/a9oMg617kb+idV56uul7QzyuUGnna/XhcAfWcL9a04no649kGusK9LTA8T20S9WMDWKXYrA1yTiswLvN6YJHRAxzst30lVw4f8o54uSz5wcX2WJoWzraytue3WFrgSyA4MjEUPSm+YS/bnB06vApHR99c9zPcOfer6Ikym3Lj4K0y0VDKp6/VYk8XHsfKzsEQi+z/2RiE1ED395gOHPjHaE11zVFNzdLOTzqw3SAQ4T8uN3Hghe81CgsWhNlTYxZtA== 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)(8121501046)(5005006)(3231021)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(6041248)(20161123564025)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:VI1PR0801MB1341;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:VI1PR0801MB1341; X-Forefront-PRVS: 048396AFA0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(6069001)(346002)(376002)(199003)(189002)(66066001)(103116003)(81156014)(81166006)(8676002)(8936002)(478600001)(316002)(2906002)(5660300001)(86362001)(16526018)(61506002)(305945005)(7736002)(23676003)(47776003)(97736004)(58126008)(50466002)(83506002)(9686003)(68736007)(33646002)(53936002)(2950100002)(189998001)(50986999)(76176999)(230700001)(101416001)(54356999)(3846002)(6506006)(25786009)(6116002)(105586002)(55016002)(106356001);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR0801MB1341;H:localhost.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjA4MDFNQjEzNDE7MjM6aDAvV1Q1REF3NDh6cG8wejNxRndvRVIz?= =?utf-8?B?ZDR5TjZMZ0ZxYXVhU3o0UkxGNUNLc0dsZDV2NCtPUjVUS2ptTGJleDhmb1Q0?= =?utf-8?B?SzhqcHpTaHNqL0pGUkg5MVE2VXAzdmFGWTZOcU1yMlpidE9UUjFTZjFHQ3pz?= =?utf-8?B?bll5ZThYTEVKY2RQeStGaHN6UDZsdHFvZTFBdGVxT1hxRm5HQnN6ZEw3YVlw?= =?utf-8?B?OE43N09qU1dKa1dtZ0I3RGd2ektuMDRuQkkrSTJmV1BSc3Z3YVpxYmZrRFU3?= =?utf-8?B?eU01UUlTaDEwSlhubzl1MjJvSWViTmpUT2lJV1BnZFE5Y0hpR3djVGQ4SUJ2?= =?utf-8?B?cDg2a01oc3RRUDk4cmNoUko0MFJBUVhvODRIbkluV2ljNnptdkdCU1J5MEU3?= =?utf-8?B?Ym00bjB6SVg0RlBuN3R4VTdqeGFiOHZ2OGlpeHRLbERxU0I5RzVjMzIzTSt5?= =?utf-8?B?Mk1rWWJ2Vis1aVk3bW0wSU80VTNYNVh0Sm9GL2owNXZJNGR0VHJISXVMMUo0?= =?utf-8?B?OFUwcU44YVZpSzBjdytTZXVJdWZPZXFNaTQrQi9IUnZjQ1JBVjNXVU9qVGdE?= =?utf-8?B?emVkejVwUFpxZ0tSeDFEakJ4YnpNc0hpaWxXWDJNSVd1VzhWa0ZDWFgweEY5?= =?utf-8?B?eXpEZm9yUStsc2EzMEFqWVA4V2tQYVcydE82b09OdGpTOE1JRTU5Q1RDRklq?= =?utf-8?B?SUFGMW0vMFNEOUdDZFhCMXRWOVZuZ3BJNWxsZ01YaUo1SnhKUVBRRUZwRFlI?= =?utf-8?B?U2JrQTJMREJNSm9EUFp6bVVRZkRBRi9OWXczTDNqNTdFeFdOV0ozaUtlYWl4?= =?utf-8?B?N3h0R1c0R0xyUVVCbytmV3lqVW14YkZIYXVlRW5DS2M5OUlpMkpzRDIxS3FR?= =?utf-8?B?d0R2anBDZXJJMzJRY3Z0WkhoZHZCRjdPR0c1aENxZDF3MUpKZTNULzkwenZH?= =?utf-8?B?ZGpxczVKazhjd0Q5VEFuTlgrYWtiYlNwY1lhTUZFeU1hVTByY1kwTG5abHNo?= =?utf-8?B?M3hpSzROUTJxa2oyS055TFJnUldQTjY1THNhTitEeFFveXVQQWZEeFJSbDIw?= =?utf-8?B?OUt4b0F4WmNicWZHZXdYMjIreWFXUkJRcjM1MTU0Q2dPc1dzbnYzL1BNT0Fl?= =?utf-8?B?RmtCVStCNnAvYVpNS3ZlcHlOTGVwenhnRXBzZWZMNU9iOWw2UUpjakVMeThJ?= =?utf-8?B?RFVIeGJIWW1UQTZ1OXNXRjljVmZpczhqZnpyZnRYZXM2ckwyeFcrQkZZZTl3?= =?utf-8?B?QmJ4SGtqeDZKTEZqOG9DVVo1cEUyTlk0dU1VWEE4VEl0NDlZRkpCbEVRYXZS?= =?utf-8?B?OHE4YzZNclo4VE1VUzU4MGxQejRLd1J2dndoeE5lZ1hMcUx4N0RGckRES0k5?= =?utf-8?B?R21TM2JUM1pnVk0yWmFhZStObjd2d251L0hpTkJDRnQzMmJnQ2lUTGFNeVdw?= =?utf-8?Q?eAPkNe7M=3D?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1341;6:RSTmzs7OokMy7iNROS5CUZFUHmpyf1dpaUJ9zUzRWSmCCJ5S3gobtFPwjy2ijqHDrsMpsCLDBJlHplR6FxuvWvAocm+YPHSI51Zfc6j/yST76kWU0fLn/DVPLz/6NdDDrzdAdBk247eQ4KUQWq5OffQXbiW1I9Anpjn9TAAOQP4fx2xXvOmh9Ivs3JdPISn4Rp+3ywmLiKOEx3R31x06trK7iK78JRzqXeACTi/om3k26/TV0Dwf9zoEe+U6wykbiDrQ6JdGegybGHWCJAQknBJOSZlSfHKzWpEmKJ62T8eiztDvjXRWBMOkmcEUNVcyIyPn44DN/DL+PT067uULwsCze7cQZ09ht0mdgVcMimQ=;5:fPVIZY6wf2j9iJ2aEMD7gPk6FdsHs5IVjXXJLD6JmKOPpyr24DFOX1NtRvyvIzDmk6TvE8CtmJowEUc0SAMVpq3/sjWvnFggEmAkrK6fK6UoqILMz0hBgE7e1ILPONNhEXLOA/AN4NpgoWM1sSST6QcNKJwifCD/9xiN03BHJt8=;24:4tkYKpvWaqfTJfLx4N15BifJaxnkUxs4DG1PwsdNKl2AYq66mW1VQQKpy49U8eIIxdY5nqdOQqTlI/ONDAjHmsHfS/dvAfl9+RP4meqdfFc=;7:a7gC+P7um0yIw0a3C+aXKwRbsH9uhGqrsGF8RW0AHdVEXJ1ArGlQbhHj94+XRkGulbBwW4e/guI/zKu3GWgdhos2C7iMG4F/laFPGK3Abz7VItoV0bdZ8WQ6RwUFio6DQBLzIuCd6eXb1Gi1vhV7ipuIzc4/uwZ8DYt4a+F9DmfOzdcr9iA8yauq9yti9YV4loolmUvxsvS4Zzi41GYacK70IISrfyKff/0tnxszXhqKRGIik9xaLwbPnjzLFj5w SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1341;20:5IPcOamTYJ98KX3m4/bBfpG2kWQ15C520JzNppwJ3zjnlfScUBZvnmULPGNKlMOvn2QWF4JLdyK0FwmU4jWBboh3Lq0TcPsCaXDOxNQquZYmqa/O13GWmDrRstyOca1aIChlun+le1u2xKDCvi1d/RAVEugTt8lkHYGq8iUAIMI= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2017 14:40:41.9406 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2f12c121-49e8-4a09-23fa-08d525245b4d X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1341 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Make "stat" file always exist in cpu cgroup directory (not only in CONFIG_CFS_BANDWIDTH case), and show task_cgroup's nr_iowait there. This may be useful for containers to check a statistics of a single container. Signed-off-by: Kirill Tkhai --- kernel/sched/core.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 86d1ad5f49bd..1b54707f5344 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6665,20 +6665,27 @@ static int __cfs_schedulable(struct task_group *tg, u64 period, u64 quota) return ret; } +#endif /* CONFIG_CFS_BANDWIDTH */ +#endif /* CONFIG_FAIR_GROUP_SCHED */ static int cpu_stats_show(struct seq_file *sf, void *v) { struct task_group *tg = css_tg(seq_css(sf)); + int i, nr_iowait = 0; +#ifdef CONFIG_CFS_BANDWIDTH struct cfs_bandwidth *cfs_b = &tg->cfs_bandwidth; seq_printf(sf, "nr_periods %d\n", cfs_b->nr_periods); seq_printf(sf, "nr_throttled %d\n", cfs_b->nr_throttled); seq_printf(sf, "throttled_time %llu\n", cfs_b->throttled_time); +#endif + for_each_possible_cpu(i) { + nr_iowait += atomic_read(&tg->stat[i].nr_iowait); + } + seq_printf(sf, "nr_iowait %d\n", nr_iowait); return 0; } -#endif /* CONFIG_CFS_BANDWIDTH */ -#endif /* CONFIG_FAIR_GROUP_SCHED */ #ifdef CONFIG_RT_GROUP_SCHED static int cpu_rt_runtime_write(struct cgroup_subsys_state *css, @@ -6707,6 +6714,10 @@ static u64 cpu_rt_period_read_uint(struct cgroup_subsys_state *css, #endif /* CONFIG_RT_GROUP_SCHED */ static struct cftype cpu_files[] = { + { + .name = "stat", + .seq_show = cpu_stats_show, + }, #ifdef CONFIG_FAIR_GROUP_SCHED { .name = "shares", @@ -6725,10 +6736,6 @@ static struct cftype cpu_files[] = { .read_u64 = cpu_cfs_period_read_u64, .write_u64 = cpu_cfs_period_write_u64, }, - { - .name = "stat", - .seq_show = cpu_stats_show, - }, #endif #ifdef CONFIG_RT_GROUP_SCHED {