All of lore.kernel.org
 help / color / mirror / Atom feed
From: Doug Smythies <dsmythies@telus.net>
To: Julia Lawall <julia.lawall@inria.fr>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
	Len Brown <lenb@kernel.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Viresh Kumar <viresh.kumar@linaro.org>,
	Linux PM list <linux-pm@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	dsmythies <dsmythies@telus.net>
Subject: Re: problem in changing from active to passive mode
Date: Wed, 27 Oct 2021 08:10:12 -0700	[thread overview]
Message-ID: <CAAYoRsWXew+9Pch_9ux+UK0LFwy+211d2LmNLGKF_UTr3eS2Fw@mail.gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.22.394.2110261658440.3825@hadrien>

On Tue, Oct 26, 2021 at 8:13 AM Julia Lawall <julia.lawall@inria.fr> wrote:
>
> The problem is illustrated by the attached graphs.  These graphs on the
> odd numbered pages show the frequency of each core measures at every clock
> tick.  At each measurement there is a small bar representing 4ms of the
> color associated with the frequency.  The percentages shown are thus not
> entirely accurate, because the frequency could change within those 4ms and
> we would not observe that.
>
> The first graph, 5.9schedutil_yeti, is the normal behavior of schedutil
> running.  The application mostly uses the second highest turbo mode, which
> is the appropriate one given that there are around 5 active cores most of
> the time.  I traced power:cpu_frequency, which is the event that occurs
> when the OS requests a change of frequency.  This happens around 5400
> times.
>
> The second graph, 5.15-schedutil_yeti, is the latest version of Linus's
> tree.  The cores are almost always at the lowest frequency.  There are no
> occurrences of the power:cpu_frequency event.
>
> The third graph, 5.9schedutil_after_yeti, it what happens when I reboot
> into 5.9 after having changed to passive mode in 5.15.  The number of
> power:cpu_frequency drops to around 1100.  The proper turbo mode is
> actually used sometimes, but much less than in the first graph.  More than
> half of the time, an active core is at the lowest frequency.
>
> This application (avrora from the DaCapo benchmarks) is continually
> stopping and starting, both for very short intervals.  This may discourage
> the hardware from raising the frequency of its own volition.

Agreed. This type of workflow has long been known to be a challenge
for various CPU frequency scaling governors. It comes up every so
often on the linux-pm email list. Basically, the schedutil CPU frequency
scaling governor becomes somewhat indecisive under these conditions.
However, if for some reason it gets kicked up to max CPU frequency,
then often it will stay there (depending on details of the workflow,
it stays up for my workflows).

Around the time of the commit you referenced in your earlier
email, it was recognised that proposed changes were adding
a bit of a downward bias to the hwp-passive-scheutil case for
some of these difficult workflows [1].

I booted an old 5.9, HWP enabled, passive, schedutil.
I got the following for my ping-pong test type workflow,
(which is not the best example):

Run 1: 6234 uSecs/loop
Run 2: 2813 uSecs/loop
Run 3: 2721 uSecs/loop
Run 4: 2813 uSecs/loop
Run 5: 11303 uSecs/loop
Run 6: 13803 uSecs/loop
Run 7: 2809 uSecs/loop
Run 8: 2796 uSecs/loop
Run 9: 2760 uSecs/loop
Run 10: 2691 uSecs/loop
Run 11: 9288 uSecs/loop
Run 12: 4275 uSecs/loop

Then the same with kernel 5.15-rc5
(I am a couple of weeks behind).

Run 1: 13618 uSecs/loop
Run 2: 13901 uSecs/loop
Run 3: 8929 uSecs/loop
Run 4: 12189 uSecs/loop
Run 5: 10338 uSecs/loop
Run 6: 12846 uSecs/loop
Run 7: 5418 uSecs/loop
Run 8: 7692 uSecs/loop
Run 9: 11531 uSecs/loop
Run 10: 9763 uSecs/loop

Now, for your graph 3, are you saying this pseudo
code of the process is repeatable?:

Power up the system, booting kernel 5.9
switch to passive/schedutil.
wait X minutes for system to settle
do benchmark, result ~13 seconds
re-boot to kernel 5.15-RC
switch to passive/schedutil.
wait X minutes for system to settle
do benchmark, result ~40 seconds
re-boot to kernel 5.9
switch to passive/schedutil.
wait X minutes for system to settle
do benchmark, result ~28 seconds

... Doug

>  I also tried
> a simple spin loop (for(;;);) with the 5.15 rc version, and it does go to
> the highest frequency as one would expect.  But there are again no
> power:cpu_frequency events.
>
> julia

[1] https://www.spinics.net/lists/kernel/msg3775304.html

  reply	other threads:[~2021-10-27 15:10 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-24 13:02 problem in changing from active to passive mode Julia Lawall
2021-10-24 22:44 ` Doug Smythies
2021-10-25  5:17   ` Julia Lawall
2021-10-25 20:49   ` Julia Lawall
2021-10-26 15:13   ` Julia Lawall
2021-10-27 15:10     ` Doug Smythies [this message]
2021-10-27 15:16       ` Julia Lawall
2021-10-28 17:10       ` Julia Lawall
2021-10-28 17:29         ` Rafael J. Wysocki
2021-10-28 17:57           ` Rafael J. Wysocki
2021-10-28 18:16             ` Rafael J. Wysocki
2021-10-28 18:43               ` Rafael J. Wysocki
2021-10-28 19:13               ` Julia Lawall
2021-10-28 19:21                 ` Rafael J. Wysocki
2021-10-28 19:25                   ` Julia Lawall
2021-10-28 19:48                     ` Rafael J. Wysocki
2021-10-28 20:18                       ` Julia Lawall
2021-10-29 15:39                         ` Rafael J. Wysocki
2021-10-29 20:29                           ` Julia Lawall

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=CAAYoRsWXew+9Pch_9ux+UK0LFwy+211d2LmNLGKF_UTr3eS2Fw@mail.gmail.com \
    --to=dsmythies@telus.net \
    --cc=julia.lawall@inria.fr \
    --cc=lenb@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=srinivas.pandruvada@linux.intel.com \
    --cc=viresh.kumar@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.