From: Catalin Marinas <catalin.marinas@arm.com>
To: Ionela Voinescu <ionela.voinescu@arm.com>
Cc: mingo@redhat.com, peterz@infradead.org,
vincent.guittot@linaro.org, will@kernel.org, rjw@rjwysocki.net,
viresh.kumar@linaro.org, dietmar.eggemann@arm.com,
qperret@google.com, valentin.schneider@arm.com,
linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH RESEND v2 2/3] arm64: rebuild sched domains on invariance status changes
Date: Tue, 10 Nov 2020 17:20:23 +0000 [thread overview]
Message-ID: <X6rL1zv/JuqOVBQu@trantor> (raw)
In-Reply-To: <20201027180713.7642-3-ionela.voinescu@arm.com>
On Tue, Oct 27, 2020 at 06:07:12PM +0000, Ionela Voinescu wrote:
> Task scheduler behavior depends on frequency invariance (FI) support and
> the resulting invariant load tracking signals. For example, in order to
> make accurate predictions across CPUs for all performance states, Energy
> Aware Scheduling (EAS) needs frequency-invariant load tracking signals
> and therefore it has a direct dependency on FI. This dependency is known,
> but EAS enablement is not yet conditioned on the presence of FI during
> the built of the scheduling domain hierarchy.
>
> Before this is done, the following must be considered: while
> arch_scale_freq_invariant() will see changes in FI support and could
> be used to condition the use of EAS, it could return different values
> during system initialisation.
>
> For arm64, such a scenario will happen for a system that does not support
> cpufreq driven FI, but does support counter-driven FI. For such a system,
> arch_scale_freq_invariant() will return false if called before counter
> based FI initialisation, but change its status to true after it.
> If EAS becomes explicitly dependent on FI this would affect the task
> scheduler behavior which builds its scheduling domain hierarchy well
> before the late counter-based FI init. During that process, EAS would be
> disabled due to its dependency on FI.
>
> Two points of future early calls to arch_scale_freq_invariant() which
> would determine EAS enablement are:
> - (1) drivers/base/arch_topology.c:126 <<update_topology_flags_workfn>>
> rebuild_sched_domains();
> This will happen after CPU capacity initialisation.
> - (2) kernel/sched/cpufreq_schedutil.c:917 <<rebuild_sd_workfn>>
> rebuild_sched_domains_energy();
> -->rebuild_sched_domains();
> This will happen during sched_cpufreq_governor_change() for the
> schedutil cpufreq governor.
>
> Therefore, before enforcing the presence of FI support for the use of EAS,
> ensure the following: if there is a change in FI support status after
> counter init, use the existing rebuild_sched_domains_energy() function to
> trigger a rebuild of the scheduling and performance domains that in turn
> will determine the enablement of EAS.
>
> Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
next prev parent reply other threads:[~2020-11-10 17:20 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-27 18:07 [PATCH RESEND v2 0/3] condition EAS enablement on FI support Ionela Voinescu
2020-10-27 18:07 ` [PATCH RESEND v2 1/3] sched/topology,schedutil: wrap sched domains rebuild Ionela Voinescu
2020-10-30 15:26 ` Rafael J. Wysocki
2020-11-05 14:03 ` Ionela Voinescu
2020-10-27 18:07 ` [PATCH RESEND v2 2/3] arm64: rebuild sched domains on invariance status changes Ionela Voinescu
2020-11-10 17:20 ` Catalin Marinas [this message]
2020-10-27 18:07 ` [PATCH RESEND v2 3/3] sched/topology: condition EAS enablement on FIE support Ionela Voinescu
2020-11-18 11:42 ` [PATCH RESEND v2 0/3] condition EAS enablement on FI support Ionela Voinescu
2020-11-18 14:01 ` Peter Zijlstra
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=X6rL1zv/JuqOVBQu@trantor \
--to=catalin.marinas@arm.com \
--cc=dietmar.eggemann@arm.com \
--cc=ionela.voinescu@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=qperret@google.com \
--cc=rjw@rjwysocki.net \
--cc=valentin.schneider@arm.com \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@linaro.org \
--cc=will@kernel.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;
as well as URLs for NNTP newsgroup(s).