From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932574AbdKFQNG (ORCPT ); Mon, 6 Nov 2017 11:13:06 -0500 Received: from mail-eopbgr50139.outbound.protection.outlook.com ([40.107.5.139]:45487 "EHLO EUR03-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932165AbdKFQNE (ORCPT ); Mon, 6 Nov 2017 11:13:04 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ktkhai@virtuozzo.com; Subject: Re: [PATCH 2/4] sched: Account per task_group nr_iowait To: Peter Zijlstra Cc: mingo@redhat.com, linux-kernel@vger.kernel.org References: <150997831079.4082.2128628793286090861.stgit@localhost.localdomain> <150997923220.4082.7025655919924328239.stgit@localhost.localdomain> <20171106160621.GK3165@worktop.lehotels.local> From: Kirill Tkhai Message-ID: <0ecdcd5d-0b09-2ee8-6570-5910af93d9dc@virtuozzo.com> Date: Mon, 6 Nov 2017 19:12:58 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20171106160621.GK3165@worktop.lehotels.local> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR0402CA0042.eurprd04.prod.outlook.com (2603:10a6:7:7c::31) To AM5PR0801MB1331.eurprd08.prod.outlook.com (2603:10a6:203:1f::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c94f034b-44f5-4776-3e72-08d5253140ce X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603199);SRVR:AM5PR0801MB1331; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1331;3:QqKprMpNenA7irOxt0Txse4+mixm11rsIvehUKb9Psch8vQvuFudvZrkzM5iCBAcvbKwOuThWE+svtQjavThfKyslxDwxp8U8nOlAwxsB+fyR0Y9bywsXapGsPOd/6aRdxNw3vpizXxTa3Rkh8yTAHKVjGU0wnqUAMhVIiEmvBoJ+sIOqKrKXVmJJOP3x2jYWaaQtGtEXpJwh/RX7XNWHWiwBOyv2oVI2uTXsRl4/UbqQRDE9GBR2zJF4ZnfX5cN;25:C+qEndz93MHP4uQlzB+b2mM27kQ0RafB3Dyutn2AqBy+GohGPXFCwmlaOdVds85hwu5w2h6IxDtYtyeM1Ab5s0R0EIgY75SMmv+9dDi6JUfMJrObdP0213yuWPrpXFhTkN9DzYPUJH6H+ze1+BXaqU8lcpTx315ZR/N8rkhxVCZPM4iW4zvgfKuZ49pYTGc4BVxGZ86tkDzezxAOtVpvJH8FsjPyqUpwQ+kAZITohfoPw4lC9hHvZcUu3ZMiYpHpNPm1Ev59U/k9gtfGy50B/22Jfewk91DOe3R5ps2IgqOV4XWa62HPtiCqqKR/ISpOfaxZRT+eGyUCu5mgXCXpkQ==;31:4ZZa9Glev6muHqGCoFKaLQn3ZEM+pu86WflciSiJANKxMZFf8hI6C++l7haVWNHQUSdrmsxgTsZMc/kkeoJbUwoMcMrOmHOvvGn5soynDdZP+gzQWIFskXypb4qwLPqWAaYzp88iKDAA9NpZSV1aNDB85nyle+hjKTRtoYJkPtHu33N1XYbQgqBJFigygW7Wkz3pk4WJksD/D7EffRc7qF0/nFTyTejPhnUBtMCI/bw= X-MS-TrafficTypeDiagnostic: AM5PR0801MB1331: X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1331;20:vIfDUXPVINGH4CPJoznBFjO4usr+Q/nECek2g1pny9JUYLE/QxJur3phklTJeeHFWLd9orZC+PikFhIHqOA1hBU+C9tNRDHtqg5lsqz3NgHeas+b6jeV8hdjBNyTN8swGmbVDaxeqwro1QT5hWLnsHIbsNFM7NXEKJ5SOwduKVzw5WcoS7WxuRRRDKASirmDCnUlol4RJT6C+O3LPa6o0Gl7OvveFo78DUUHP6oCSVuvEHvs+R1U0ga+kcPqMNRilJV3EKgTdn4eIyn0UT/UHY8WQFoqvFaIPRRs3F/VzvsPpOYsD8UTz/ZXwq92BC2UxBQQXXJi49NBLkVNLz7RqNZpig+FSUjgDS4nPDk/m7BImNY7OqfRg1T+iGOhU2xYqlPlcX/qy8AxlvL3zy8erDosMDudrpXA16zy1W9A6TY=;4:P/lca8oalgtU0P6/ykD+1z2tgEglX9qAI0ptqvOT4apr2kBp3EWEE963WPsRZY+7QFYH00weRfE9kXHxjWpUv9rXQR5nyBJEAGW//GITPGmn2uPncoosnoQZOMABphZXEANO1KzZ4bcd/CZOZV/FuyTu1lmPbETMl0MQk0iVUh9TxyJKttGsG9Cgkh3jomq4scH08dFk+mc5HA+8gQOM/26XDK/RXId5exymHKn4C4kI4OeERKQHam0P7re/P1HZ3OyFlGvEBlTN6peH+Xn3CQ== 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:AM5PR0801MB1331;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:AM5PR0801MB1331; X-Forefront-PRVS: 048396AFA0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6049001)(6009001)(376002)(346002)(39830400002)(24454002)(189002)(199003)(47776003)(66066001)(65806001)(65956001)(68736007)(101416001)(83506002)(105586002)(7736002)(305945005)(50986999)(54356999)(76176999)(16526018)(8676002)(8936002)(81156014)(81166006)(6486002)(33646002)(77096006)(36756003)(23676003)(229853002)(106356001)(189998001)(53546010)(478600001)(3846002)(2950100002)(6916009)(53936002)(31686004)(6246003)(6116002)(50466002)(4326008)(16576012)(86362001)(230700001)(97736004)(25786009)(316002)(31696002)(65826007)(64126003)(2906002)(58126008)(5660300001);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0801MB1331;H:[172.16.25.196];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTVQUjA4MDFNQjEzMzE7MjM6ZWpGVHNFN29laldQNXRLcUR3cDNjc1A3?= =?utf-8?B?eVg1dEt6aHJyVktMdVE1NFVDb1l6RjduSGMzOTgyRkFMUzA0dDgyTzR2cEhR?= =?utf-8?B?U0Y2aFpuM2U0bFZtWnZmbno5OHFpdmZuck1EVmRRMkFLNzlmNlNnVTZwK1A3?= =?utf-8?B?RS8vMGRUcjV5S3JlM1VkZ0FySG82YUhMM3duZkVDNXBadGhiM1hLNmVBd2xk?= =?utf-8?B?UGw2dHdBN3JCQStrMGRLMWRvaWFRSGd1Nm1VejBQS1draGUzVE1oY1ptbVFp?= =?utf-8?B?TU53bFIveHJjb1dzZzdYdXl2c3cwZ3o2Q1MxQmF0WFFkVmVxMzRBU21VYVMy?= =?utf-8?B?eTV1UXlqRnI3dG1xTmoyelE5b1hIdHRyOStVSzFNeGkyRFVkdkpFVFhndHk1?= =?utf-8?B?eS9GRko5Y0ZQMUJENmo1ZVBNSm9BbjY0aXpRcGNKaVVBc1lhaXZqQmFWWndO?= =?utf-8?B?aFQyc0lGODQ1STFrS0tyeW9aWjIwR0crOWs0MWx4eGI4dnJUWG5uNngyWnVt?= =?utf-8?B?T21iMkxKRTJac2dsNGJ3MnJrZVJqR1AzTEw2ejUvOVZ6K01LeVhEWGNoOFJJ?= =?utf-8?B?RTVYY2o3VG5UYUlMeWJxeWh6dDVaYnlXRklKdzh3WEZDNS96TnlxMVBhcmd3?= =?utf-8?B?VXJDdlpZcE5vNUE2MVFsaDlTcWROWmFCTy9hRXFDTW5raHRuSERzekFVdmt3?= =?utf-8?B?aWxWa1FSWm5QWGZXNjNadUFHSTRnZys0QktiV0VraFRhQ2lSU1Q1NHNOVWls?= =?utf-8?B?SDBFRU5GaVVka3l3ZmJVSlM5d1lGWTJJVUlLRDg1MmtvVXNCelI4emNCVlRT?= =?utf-8?B?c3Y4OTYraWd4dDgranFFSFo1cTZpR0NvWHVmVXhYQ0RNRDJDQ0dBdjVuSlZy?= =?utf-8?B?anc4bUQ2YmJlekUwTmd6aEtoM1JpMlNJT3k1VXQ3eDBmcUxYR3dzN1U4aUtS?= =?utf-8?B?WU1lNUVGZSsrUkUyWE9XZUwyamNoMVNzK0R3SWs3Q2xXT2ZwOHFHMXhLaS9X?= =?utf-8?B?UHZoM0ZZRENJcUNuUWd2ZmFzN0NVUWRVUC8vYmFsbmE3dGZSdmphR2dDU2F1?= =?utf-8?B?SEJWS0RQZmIvMVpPMjdxSWZYYWpMQ2Y5T2JuS3dJUnZUMGY3MkR3Y3hXSWdt?= =?utf-8?B?ZE9iN3lxb3ExZVBXOEJxUm9wSHcvcG9oN0syRTlpM3Erc0ozUVRWSlZIYVBm?= =?utf-8?B?eFROVDNWVmRxRngxVmVmV1FjaWlOK041YlRVYTNyaUJscTNvb3pvcjZPNE5x?= =?utf-8?B?enlvM01raGFsdVpFTEdRWWQxek1TaTltK2ZCbXBtUS9BWEJLN2xTNEU2UFk3?= =?utf-8?B?aGlaQnZsVW1NWm5mWVpWMm5jK3hsVS9ocEpmSys5RnQwbW40QmdnUEkrclB1?= =?utf-8?B?QWUvMDVMVDZVKzRYZCtCdXdGemxXOGt0ZUhwRnZ2Y0w1dEZMMlFxT21zaDlZ?= =?utf-8?B?VlRHVmV4TWtLWktMSjRuaEN2dGFTcndjNFJUVlRrdkNtdUIrb0xqWHJadytw?= =?utf-8?B?Vm1XK3hZYjFYZ2JiM2dJSDk4VTRrdVhabUNJN3JKc1FQY3RCK1drbVVWckxL?= =?utf-8?B?VTh5blJ2anBNK1lXR3RoZDhuYjNjNjQrcCtSZlMrK3JCbFJmOHNIaEFySlZ2?= =?utf-8?B?dUE0NUd4QnQ3aDEzNnIvRVh4MGdLSjA5QXgxSmJRQ1RiTnRrN3ZRV1JWRDJt?= =?utf-8?B?R2VIUDRRc1N1ZmlYY2NEYlpmaldpNEhDeEJaN1J6MTFUTUQ2MGRpNU9FL0J1?= =?utf-8?Q?ZeT98V9nrrmmCdVA1brXcoK1s7Bl9R9By/rWkG0=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1331;6:4mWYTZFcZGyRdbfw6ImjUbJedTdkBsTYoEOfnLrNlXNmcwxFrpD93NJVX8/LUQI0CoVi7pqt/oWJqrKaPu5eVrTyrmk3I1gw79GJ/ctTi2eDD2Kt0rGoX0cC9ugJio0QloRlCPMOTH6M/VL+1GfgJPrTQU86GHZ2vpLaVUnincbcobqLRKW8W8ZTD3qCaU5fbYvyNyjNkZCpE2YjaI9HFM2kk419xOfJ/HTgbUcEC/oSYP2SCjn3oyJxeooBamfRrUnlmrUefY16Bqx5CRgslgMoBy3sKmq+QKRz69CZM9WaQuVbVC3C+OP6RSQDBrTkAasIYl5njM5V2VjPQqRJXblDliLzBwlJ9qi9x0+QfCc=;5:3DVGeqVXVLCcyKoc0IuOLWO0QjMw7EDWGIkUOPW7SdO8ebqXm+8rS4kwalJNTz4FRON/JT5iY8/qd7rIRV2nuZTEvMp+z7D6ErMa4XqYmGEqz46Dkta+HKR7+w5HmaOvG008sTOXCI/nsW97QYr/sLxlA9zMLCa1QUGPfNzjZhg=;24:Q/JJ7uKs05TKQSRMYVkJjWsDcn4x6meGGTW8QGlHN2A/1CHp1t3UJ/HYqgav5o7LC7k4QvtMNByM1+zuzVPDFYG57aPuRMGEGhoGvDIiMhA=;7:wpuGNMz3pXtdzXI/ioPEqDTplXhcygSxYNg64IoXgyecwEoOn9MDP1+GI93gv682QGUR8x1otP5X3adrRt9ec4MozZqQOY6SB/pPKnbdJ6XpohVXrrUgxtFu5aa8vGqitKXFQRRhrsEZwXPAvmh2fHm2VvyFEB0P/gs0HpOZTp1c4Sd1WS7yw5tC31X1rwdDGHruhhT643IbcDjKOB9JmXF1nmwruE68MBspqbxnnK3A86U7EOJ15H8U6Q0692Od SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM5PR0801MB1331;20:hyApVu6YrJY9kcAMQoP6vnVq4ZO5h0bjM3T94Q9JLTO2qx2XPhTaHbNqqmoedkAzeLdEN40vZNwm22fJ4fM0NGFNTY0TIbfOlU+31NuRflNeMU1tuTx9ai1MStxusMLFJpOatGgUx6yM+eZkpSwHDb1XLu924wUFMU17hgwnOWc= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2017 16:13:00.9614 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c94f034b-44f5-4776-3e72-08d5253140ce X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1331 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06.11.2017 19:06, Peter Zijlstra wrote: > On Mon, Nov 06, 2017 at 05:40:32PM +0300, Kirill Tkhai wrote: >> The patch makes number of task_group's tasks in iowait state >> be tracked separately. This may be useful for containers to >> check nr_iowait state of a single one. >> >> Signed-off-by: Kirill Tkhai >> --- >> kernel/sched/core.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ >> kernel/sched/sched.h | 5 +++++ >> 2 files changed, 50 insertions(+) >> >> diff --git a/kernel/sched/core.c b/kernel/sched/core.c >> index 712ee54edaa1..86d1ad5f49bd 100644 >> --- a/kernel/sched/core.c >> +++ b/kernel/sched/core.c >> @@ -796,12 +796,32 @@ void deactivate_task(struct rq *rq, struct task_struct *p, int flags) >> >> static void task_iowait_start(struct rq *rq, struct task_struct *p) >> { >> +#ifdef CONFIG_CGROUP_SCHED >> + struct task_group *tg = task_group(p); >> + >> + /* Task's sched_task_group is changed under both of the below locks */ >> + BUG_ON(!raw_spin_is_locked(&p->pi_lock) && !raw_spin_is_locked(&rq->lock)); > > We have lockdep_assert_held for that. > >> + while (task_group_is_autogroup(tg)) >> + tg = tg->parent; >> + atomic_inc(&tg->stat[rq->cpu].nr_iowait); > > You're joking right, more atomic ops on the fast paths.. There should be a synchronization... It's modified under rq->lock everywhere, except try_to_wakeup(). Would it be better to use one more rq->lock at try_to_wakeup() instead of atomic? >> +#endif >> + >> atomic_inc(&rq->nr_iowait); >> delayacct_blkio_start();