mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Viresh Kumar <viresh.kumar@linaro.org>
To: Joel Fernandes <joelaf@google.com>
Cc: linux-kernel@vger.kernel.org,
	"Rafael J . Wysocki" <rjw@rjwysocki.net>,
	Ingo Molnar <mingo@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	"Cc: Srinivas Pandruvada" <srinivas.pandruvada@linux.intel.com>,
	"Cc: Len Brown" <lenb@kernel.org>,
	"Cc: Juri Lelli" <juri.lelli@arm.com>,
	"Cc: Patrick Bellasi" <patrick.bellasi@arm.com>,
	"Cc: Steve Muckle" <smuckle@google.com>,
	"Cc: Brendan Jackman" <brendan.jackman@arm.com>,
	"Cc: Chris Redpath" <Chris.Redpath@arm.com>,
	"Cc: Atish Patra" <atish.patra@oracle.com>,
	"Cc: Dietmar Eggemann" <dietmar.eggemann@arm.com>,
	"Cc: Vincent Guittot" <vincent.guittot@linaro.org>,
	"Cc: Morten Ramussen" <morten.rasmussen@arm.com>,
	"Cc: Frederic Weisbecker" <fweisbec@gmail.com>,
	"Cc: Thomas Gleixner" <tglx@linutronix.de>,
	"Cc: EAS Dev" <eas-dev@lists.linaro.org>,
	"Cc: Android Kernel" <kernel-team@android.com>
Subject: Re: [PATCH RFC 2/5] sched/fair: Skip frequency update if CPU about to idle
Date: Mon, 30 Oct 2017 17:37:09 +0530	[thread overview]
Message-ID: <20171030120709.GO4240@vireshk-i7> (raw)
In-Reply-To: <20171028095941.4773-3-joelaf@google.com>

On 28-10-17, 02:59, Joel Fernandes wrote:
> Updating CPU frequency on last dequeue of a CPU is useless. Because the
> utilization since CPU came out of idle can increase till the last dequeue, this
> means we are requesting for a higher frequency before entering idle which is
> not very meaningful or useful. It causes unwanted wakeups of the schedutil
> governor kthread in slow-switch systems resulting in large number of wake ups
> that could have been avoided. In an Android application playing music where the
> music app's thread wakes up and sleeps periodically on an Android device, its
> seen that the frequency increases slightly on the dequeue and is reduced when
> the task wakes up again. This oscillation continues between 300Mhz and 350Mhz,
> and while the task is running, its at 300MHz the whole time. This is pointless.
> Adding to that, these are unnecessary wake ups. Infact most of the time when
> the sugov thread wakes up, all the CPUs are idle - so it can hurt power by
> disturbing the cluster when it is idling.
> 
> This patch prevents a frequency update on the last dequeue. With this the
> number of schedutil governor thread wake ups are reduces more than 2 times
> (1389 -> 527).
> 
> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
> Cc: Viresh Kumar <viresh.kumar@linaro.org>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Signed-off-by: Joel Fernandes <joelaf@google.com>
> ---
>  kernel/sched/fair.c  | 25 ++++++++++++++++++++++---
>  kernel/sched/sched.h |  1 +
>  2 files changed, 23 insertions(+), 3 deletions(-)

So you are doing this only for CFS, isn't that required for RT/DL as
well?

Also, this more looks like a policy decision. Will it be better to
put that directly into schedutil? Like this:

        if (cpu_idle())
                "Don't change the freq";

Will something like that work?

-- 
viresh

  reply	other threads:[~2017-10-30 12:07 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-28  9:59 [PATCH RFC 0/5] sched and cpufreq fixes/cleanups Joel Fernandes
2017-10-28  9:59 ` [PATCH RFC 1/5] Revert "sched/fair: Drop always true parameter of update_cfs_rq_load_avg()" Joel Fernandes
2017-10-28  9:59 ` [PATCH RFC 2/5] sched/fair: Skip frequency update if CPU about to idle Joel Fernandes
2017-10-30 12:07   ` Viresh Kumar [this message]
2017-10-30 19:02     ` Joel Fernandes
2017-11-01 19:35       ` Steve Muckle
2017-11-04  5:44         ` Joel Fernandes
2017-11-06  8:00           ` Vincent Guittot
2017-11-06  9:29             ` Uladzislau Rezki
2017-11-08  5:11             ` Joel Fernandes
2017-10-28  9:59 ` [PATCH RFC 3/5] cpufreq: schedutil: Use idle_calls counter of the remote CPU Joel Fernandes
2017-10-30  9:18   ` Viresh Kumar
2017-10-28  9:59 ` [PATCH RFC 4/5] sched/fair: Correct obsolete comment about cpufreq_update_util Joel Fernandes
2017-10-30  9:22   ` Viresh Kumar
2017-10-30 19:16     ` Joel Fernandes
2017-10-28  9:59 ` [PATCH RFC 5/5] sched/fair: remove impossible condition from find_idlest_group_cpu Joel Fernandes
2017-10-30 15:41   ` Brendan Jackman
2017-10-30 16:00   ` Vincent Guittot
2017-10-30 16:19     ` Joel Fernandes
2017-10-30 16:26       ` Vincent Guittot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171030120709.GO4240@vireshk-i7 \
    --to=viresh.kumar@linaro.org \
    --cc=Chris.Redpath@arm.com \
    --cc=atish.patra@oracle.com \
    --cc=brendan.jackman@arm.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=eas-dev@lists.linaro.org \
    --cc=fweisbec@gmail.com \
    --cc=joelaf@google.com \
    --cc=juri.lelli@arm.com \
    --cc=kernel-team@android.com \
    --cc=lenb@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=morten.rasmussen@arm.com \
    --cc=patrick.bellasi@arm.com \
    --cc=peterz@infradead.org \
    --cc=rjw@rjwysocki.net \
    --cc=smuckle@google.com \
    --cc=srinivas.pandruvada@linux.intel.com \
    --cc=tglx@linutronix.de \
    --cc=vincent.guittot@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®