From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3C1DFC3DA7D for ; Thu, 5 Jan 2023 11:33:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232858AbjAELd0 (ORCPT ); Thu, 5 Jan 2023 06:33:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34752 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231971AbjAELdX (ORCPT ); Thu, 5 Jan 2023 06:33:23 -0500 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id D3C0D11A27 for ; Thu, 5 Jan 2023 03:33:21 -0800 (PST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0520815BF; Thu, 5 Jan 2023 03:34:03 -0800 (PST) Received: from [192.168.178.6] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B77283F663; Thu, 5 Jan 2023 03:33:17 -0800 (PST) Message-ID: <82689dd6-9db1-dd00-069b-73a637a21126@arm.com> Date: Thu, 5 Jan 2023 12:33:16 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [RFC PATCH v4 1/2] sched/fair: Introduce short duration task check Content-Language: en-US To: Chen Yu , Peter Zijlstra , Vincent Guittot , Tim Chen , Mel Gorman Cc: Juri Lelli , Rik van Riel , Aaron Lu , Abel Wu , K Prateek Nayak , Yicong Yang , "Gautham R . Shenoy" , Ingo Molnar , Steven Rostedt , Ben Segall , Daniel Bristot de Oliveira , Valentin Schneider , Hillf Danton , Honglei Wang , Len Brown , Chen Yu , Tianchen Ding , Joel Fernandes , Josh Don , linux-kernel@vger.kernel.org References: From: Dietmar Eggemann In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 16/12/2022 07:11, Chen Yu wrote: [...] > @@ -5995,6 +6005,18 @@ enqueue_task_fair(struct rq *rq, struct task_struct *p, int flags) > > static void set_next_buddy(struct sched_entity *se); > > +static inline void dur_avg_update(struct task_struct *p, bool task_sleep) > +{ > + u64 dur; > + > + if (!task_sleep) > + return; > + > + dur = p->se.sum_exec_runtime - p->se.prev_sum_exec_runtime_vol; > + p->se.prev_sum_exec_runtime_vol = p->se.sum_exec_runtime; Shouldn't se->prev_sum_exec_runtime_vol be set in enqueue_task_fair() and not in dequeue_task_fair()->dur_avg_update()? Otherwise `dur` will contain sleep time. Like we do for se->prev_sum_exec_runtime in set_next_entity() but for one `set_next_entity()-put_prev_entity()` run section. AFAICS, you want to measure the exec_runtime sum over all run sections between enqueue and dequeue. > + update_avg(&p->se.dur_avg, dur); > +} > + [...]