[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200827075149.ixunmyi3m6ygtehu@vireshk-i7>
Date: Thu, 27 Aug 2020 13:21:49 +0530
From: Viresh Kumar <viresh.kumar@...aro.org>
To: Ionela Voinescu <ionela.voinescu@....com>
Cc: Vincent Guittot <vincent.guittot@...aro.org>,
Ben Segall <bsegall@...gle.com>,
Catalin Marinas <catalin.marinas@....com>,
Dietmar Eggemann <dietmar.eggemann@....com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Ingo Molnar <mingo@...hat.com>,
Juri Lelli <juri.lelli@...hat.com>,
Mel Gorman <mgorman@...e.de>,
Peter Zijlstra <peterz@...radead.org>,
"Rafael J. Wysocki" <rafael@...nel.org>,
"Rafael J. Wysocki" <rjw@...ysocki.net>,
Steven Rostedt <rostedt@...dmis.org>,
Sudeep Holla <sudeep.holla@....com>,
Will Deacon <will@...nel.org>,
Peter Puhov <peter.puhov@...aro.org>,
LAK <linux-arm-kernel@...ts.infradead.org>,
linux-kernel <linux-kernel@...r.kernel.org>,
"open list:THERMAL" <linux-pm@...r.kernel.org>
Subject: Re: [RFC 0/3] cpufreq: cppc: Add support for frequency invariance
On 25-08-20, 10:56, Ionela Voinescu wrote:
> I've been putting some more thought/code into this one and I believe
> something as follows might look nicer as well as cover a few corner cases
> (ignore implementation details for now, they can be changed):
I saw the other patchset you sent where AMU can be used as the backend
for CPPC driver, which means that if AMU IP is present on the platform
it will be used by the CPPC to get the perf counts, right ?
> - Have a per cpu value that marks the use of either AMUs, CPPC, or
> cpufreq for freq invariance (can be done with per-cpu variable or with
> cpumasks)
>
> - arch_topology.c: initialization code as follows:
>
> for_each_present_cpu(cpu) {
> if (freq_inv_amus_valid(cpu) &&
> !freq_inv_set_max_ratio(cpufreq_get_hw_max_freq(cpu) * 1000,
> arch_timer_get_rate(), cpu)) {
> per_cpu(inv_source, cpu) = INV_AMU_COUNTERS;
> continue;
> }
> if (freq_inv_cppc_counters_valid(cpu) &&
> !freq_inv_set_max_ratio(cppc_max_perf, cppc_ref_perf, cpu)) {
> per_cpu(inv_source, cpu) = INV_CPPC_COUNTERS;
> continue;
> }
> if (!cpufreq_supports_freq_invariance() ||
> freq_inv_set_max_ratio(cpufreq_get_hw_max_freq(cpu),
> 1, cpu)) {
> pr_info("FIE disabled: no valid source for CPU%d.", cpu);
> return 0;
> }
> }
Based on that (your other patchset), I think this can get further
simplified to whomsoever can register first for freq invariance.
i.e. if CPPC registers for it first then there is no need to check
AMUs further (as CPPC will be using AMUs anyway), else we will
fallback to AMU, else cpufreq.
Is that understanding correct ?
--
viresh
Powered by blists - more mailing lists