Received: by 10.223.176.46 with SMTP id f43csp1297351wra; Wed, 24 Jan 2018 14:07:12 -0800 (PST) X-Google-Smtp-Source: AH8x227TlKYDBpylFJNk35278ZLYY51KqK3Kg0gpZFosXNSyo5Th6zkA4AFKJjOvtP6/Jj8Yy4rc X-Received: by 2002:a17:902:6849:: with SMTP id f9-v6mr9595903pln.113.1516831632637; Wed, 24 Jan 2018 14:07:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516831632; cv=none; d=google.com; s=arc-20160816; b=yZhq2AvDibsuNAy+tDXqJxyX9gh96nRRvU1vJolKzDzjyWla9F3cErHN1/lu1jmXo+ j4KhgE/xD3JmRoWJJjOLc5npHTVUReooJNjCEpnJgadtnCkiD+EBLWVlJ8ueL/HmA54q TaPHcQSaiGAuZAAJzFlop+MraYDDAxoxTZfanx+qBYA14UlvNbMVjxTyuR9+DuzairFL zAfPWIdA1k4W/I4i9DefMEWUd3OYE4wu+UAgKwBqkfMS/LlebqOVt2aL8V7Nt23/JcwS 3nezBL8CwSmTVvPhy2NqnwCbzGhPQ/oz74I62TEi/Ot+2sSUGetdoKFJ5bgiFZHyLV+o 8i1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=uXhwCBtZ1o+iwNzn3qKI6OhNK87j5MebOZmPu1Jg1GM=; b=NXtyOxUd1HezYLEsJV9LgHCn2n4sXb6SLZvr2j/sfE7W8KHSX8k2wyVnL8lw+YTYHl r0mIwMCc1pLOtLG+j88JZYp6yH8jpIYcqKQUGxiT7lENM5UOgBLe6npUwpbtzFxomf8d rHfUa7Ajxor1gIWGCWFgVK8mxhize/+zsxOQaMxOUTGtzTrQsePoihk54T5xy9JXOnFy gNZ0j7tVsU0uO1fiZwUI3PIWz4HmNc8HyvzqY4OoJFoVdkL2ZWEM/hqhHS7IN6hgA/df wR+g31tWnuoQzj10ZAzAdFl7lunTrIzzNnCsnJVXOnkNtoHRH8j+e+zkPLlLsWNCB61+ vvQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=cR4aDiWb; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h187si632372pgc.531.2018.01.24.14.06.45; Wed, 24 Jan 2018 14:07:12 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=cR4aDiWb; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932825AbeAXWGJ (ORCPT + 99 others); Wed, 24 Jan 2018 17:06:09 -0500 Received: from mail-it0-f67.google.com ([209.85.214.67]:40236 "EHLO mail-it0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932249AbeAXWGH (ORCPT ); Wed, 24 Jan 2018 17:06:07 -0500 Received: by mail-it0-f67.google.com with SMTP id 196so6978516iti.5 for ; Wed, 24 Jan 2018 14:06:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=uXhwCBtZ1o+iwNzn3qKI6OhNK87j5MebOZmPu1Jg1GM=; b=cR4aDiWbPkE2a43HvGobHEs25o33tVTSf9Rjd6xn1cPorQReqWYsyAGrR3OVt+bh1U 0XPQoQFf6OT4zEpkGED7ajcCrYJC34unSWH9mMb4jIRKCxlJLsYhyBHEcsrzL0kq6o86 8GrKKdQSRN3QPjHDpAZ3YzF2nsrPUXnQEwORucW1WMREV7atFffFqOL6l9u3Fj7XxEec ZfWAa5x343O5kiqiVYECLnaFzDBIXum4twcbkkwUpdy1mGFID6t58JjudS6j3G5yt5HQ k6XdIYLCCzCoX4FFTIqzYeCLuz2fXOvGzwX2wXo9rNj38dUmWLyxr/x2ckjtJh4184AV BWeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=uXhwCBtZ1o+iwNzn3qKI6OhNK87j5MebOZmPu1Jg1GM=; b=sjjn/PIabxAxPXEIscCvdJC7qlft7uflzZzH41eCEDf1C4JMTmKf7gVAHj/qeK7LA9 xddJZ1du0rReZa8yD0+Ymv7eQZVlhNP6fZLZc+LyWgHH6nNkSdiYVV7bQMaNcicb8yL+ bCyMCSKawCd0FJ8mXEUlULIaIDIJAmgT+XZA8y+zxFaMplGvZFei4wy/cR8rjidYn5os IrXF6JLJv/xpDQK5d7z01xSZRYhkUqvlWo+NN0UDW5va9SBsgE7rQZlZFhiuxyV05RiI FJhBX4h+Zua6ZSSQAsvAAQ3HW0f+NF5Su2ZcjhBYG0KxC7DGpzpm7MFU9397WMf9PKib kDZA== X-Gm-Message-State: AKwxyten/zJ3SAPr269hcQ+VVgJq1pyF7bWrKwUIqBWcaJqp05leWvKV m4q+n8G9uD2XBquJu+1eoqASkJx+B3dPFB+xprXKTA== X-Received: by 10.36.190.76 with SMTP id i73mr10907220itf.88.1516831566163; Wed, 24 Jan 2018 14:06:06 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.172.135 with HTTP; Wed, 24 Jan 2018 14:06:05 -0800 (PST) In-Reply-To: <20180124191609.GA5739@e110439-lin> References: <20180123180847.4477-1-patrick.bellasi@arm.com> <20180123180847.4477-2-patrick.bellasi@arm.com> <20180124191609.GA5739@e110439-lin> From: Joel Fernandes Date: Wed, 24 Jan 2018 14:06:05 -0800 Message-ID: Subject: Re: [PATCH v3 1/3] sched/fair: add util_est on top of PELT To: Patrick Bellasi Cc: LKML , Linux PM , Ingo Molnar , Peter Zijlstra , "Rafael J . Wysocki" , Viresh Kumar , Vincent Guittot , Paul Turner , Dietmar Eggemann , Morten Rasmussen , Juri Lelli , Todd Kjos , Steve Muckle Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jan 24, 2018 at 11:16 AM, Patrick Bellasi wrote: > On 24-Jan 08:40, Joel Fernandes wrote: >> On Tue, Jan 23, 2018 at 10:08 AM, Patrick Bellasi >> wrote: >> > The util_avg signal computed by PELT is too variable for some use-cases. >> > For example, a big task waking up after a long sleep period will have its >> > utilization almost completely decayed. This introduces some latency before >> > schedutil will be able to pick the best frequency to run a task. >> [...] >> > -static inline unsigned long task_util(struct task_struct *p); >> > static unsigned long cpu_util_wake(int cpu, struct task_struct *p); >> > >> > static unsigned long capacity_spare_wake(int cpu, struct task_struct *p) >> > @@ -6262,6 +6337,11 @@ static inline unsigned long task_util(struct task_struct *p) >> > return p->se.avg.util_avg; >> > } >> > >> > +static inline unsigned long task_util_est(struct task_struct *p) >> > +{ >> > + return max(p->se.avg.util_est.ewma, p->se.avg.util_est.last); >> > +} >> > + >> > /* >> > * cpu_util_wake: Compute cpu utilization with any contributions from >> > * the waking task p removed. >> > diff --git a/kernel/sched/features.h b/kernel/sched/features.h >> > index 9552fd5854bf..c459a4b61544 100644 >> > --- a/kernel/sched/features.h >> > +++ b/kernel/sched/features.h >> > @@ -85,3 +85,8 @@ SCHED_FEAT(ATTACH_AGE_LOAD, true) >> > SCHED_FEAT(WA_IDLE, true) >> > SCHED_FEAT(WA_WEIGHT, true) >> > SCHED_FEAT(WA_BIAS, true) >> > + >> > +/* >> > + * UtilEstimation. Use estimated CPU utilization. >> > + */ >> > +SCHED_FEAT(UTIL_EST, false) >> > diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h >> > index 2e95505e23c6..0b4d9750a927 100644 >> > --- a/kernel/sched/sched.h >> > +++ b/kernel/sched/sched.h >> > @@ -470,6 +470,7 @@ struct cfs_rq { >> > * CFS load tracking >> > */ >> > struct sched_avg avg; >> > + unsigned long util_est_runnable; >> >> Since struct sched_avg would now have util_est, cfs_rq gets it too. >> Then can we not try to reuse that struct and avoid having to expand >> cfs_rq more than needed? > > Yes, that's possible now... the main issue is that for RQ's we do not > track an EWMA, but still we can use the util_est::last field or maybe > use a union just to use a better name when used from the RQ side. Yes I think its good to make use of the space we're adding in cfs_rq that's not used for other things. > >> I went through previous conversations and couldn't find a reason, if I >> missed something I appreciate if you can explain the rationale. > > I've used a separate filed just because SE's util_est was not part of > sched_avg, and missed the opportunity to consolidate better this now > that we moved it. Thanks for pointing this out ;-) You're welcome :) thanks, - Joel