All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ionela Voinescu <ionela.voinescu@arm.com>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Sudeep Holla <sudeep.holla@arm.com>,
	Will Deacon <will@kernel.org>,
	Russell King - ARM Linux <linux@armlinux.org.uk>,
	Valentin Schneider <valentin.schneider@arm.com>,
	Ingo Molnar <mingo@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Linux PM <linux-pm@vger.kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/8] cpufreq: allow drivers to flag custom support for freq invariance
Date: Thu, 2 Jul 2020 12:44:25 +0100	[thread overview]
Message-ID: <20200702114425.GB28120@arm.com> (raw)
In-Reply-To: <20200702025818.s4oh7rzz3tr6zwqr@vireshk-i7>

Hi,

On Thursday 02 Jul 2020 at 08:28:18 (+0530), Viresh Kumar wrote:
> On 01-07-20, 18:05, Rafael J. Wysocki wrote:
> > On Wed, Jul 1, 2020 at 3:33 PM Ionela Voinescu <ionela.voinescu@arm.com> wrote:
> > > On Wednesday 01 Jul 2020 at 16:16:17 (+0530), Viresh Kumar wrote:
> > > > I will rather suggest CPUFREQ_SKIP_SET_FREQ_SCALE as the name and
> > > > functionality. We need to give drivers a choice if they do not want
> > > > the core to do it on their behalf, because they are doing it on their
> > > > own or they don't want to do it.
> > 
> > Well, this would go backwards to me, as we seem to be designing an
> > opt-out flag for something that's not even implemented already.
> > 
> > I would go for an opt-in instead.  That would be much cleaner and less
> > prone to regressions IMO.
> 
> That's fine, I just wanted an option for drivers to opt-out of this
> thing. I felt okay with the opt-out flag as this should be enabled for
> most of the drivers and so enabling by default looked okay as well.
> 
> > > In this case we would not be able to tell if cpufreq (driver or core)
> > > can provide the frequency scale factor, so we would not be able to tell
> > > if the system is really frequency invariant; CPUFREQ_SKIP_SET_FREQ_SCALE
> 
> That is easy to fix. Let the drivers call
> enable_cpufreq_freq_invariance() and set the flag.
> 

Right! I suppose part of "the dream" :) was for drivers to be ignorant of
frequency invariance, and for the core to figure out if it has proper
information to potentially* pass to the scheduler.

*potentially = depending on the arch_set_freq_scale() definition.

> > > would be set if either:
> > >  - the driver calls arch_set_freq_scale() on its own
> > >  - the driver does not want arch_set_freq_scale() to be called.
> > >
> > > So at the core level we would not be able to distinguish between the
> > > two, and return whether cpufreq-based invariance is supported.
> > >
> > > I don't really see a reason why a driver would not want to set the
> > > frequency scale factor
> 
> A simple case where the driver doesn't have any idea what the real
> freq 

For me, this would have been filtered by either the type of callback
they use (target_index(), fast_switch() and even target() would offer
some close to accurate indication of the current frequency, while
setpolicy() it obviously targets a range of frequencies) or by the
definition of arch_set_freq_scale().

> ..of the CPU is and it doesn't have counters to guess it as well.
> 
> There can be other reasons which we aren't able to imagine at this
> point of time.
> 

But I understand both the points you and Rafael raised so it's obvious
that a 'opt in' flag would be the better option.

Thank you both,
Ionela.

> -- 
> viresh

WARNING: multiple messages have this Message-ID (diff)
From: Ionela Voinescu <ionela.voinescu@arm.com>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Linux PM <linux-pm@vger.kernel.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Russell King - ARM Linux <linux@armlinux.org.uk>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Ingo Molnar <mingo@redhat.com>,
	Sudeep Holla <sudeep.holla@arm.com>,
	Will Deacon <will@kernel.org>,
	Valentin Schneider <valentin.schneider@arm.com>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH 1/8] cpufreq: allow drivers to flag custom support for freq invariance
Date: Thu, 2 Jul 2020 12:44:25 +0100	[thread overview]
Message-ID: <20200702114425.GB28120@arm.com> (raw)
In-Reply-To: <20200702025818.s4oh7rzz3tr6zwqr@vireshk-i7>

Hi,

On Thursday 02 Jul 2020 at 08:28:18 (+0530), Viresh Kumar wrote:
> On 01-07-20, 18:05, Rafael J. Wysocki wrote:
> > On Wed, Jul 1, 2020 at 3:33 PM Ionela Voinescu <ionela.voinescu@arm.com> wrote:
> > > On Wednesday 01 Jul 2020 at 16:16:17 (+0530), Viresh Kumar wrote:
> > > > I will rather suggest CPUFREQ_SKIP_SET_FREQ_SCALE as the name and
> > > > functionality. We need to give drivers a choice if they do not want
> > > > the core to do it on their behalf, because they are doing it on their
> > > > own or they don't want to do it.
> > 
> > Well, this would go backwards to me, as we seem to be designing an
> > opt-out flag for something that's not even implemented already.
> > 
> > I would go for an opt-in instead.  That would be much cleaner and less
> > prone to regressions IMO.
> 
> That's fine, I just wanted an option for drivers to opt-out of this
> thing. I felt okay with the opt-out flag as this should be enabled for
> most of the drivers and so enabling by default looked okay as well.
> 
> > > In this case we would not be able to tell if cpufreq (driver or core)
> > > can provide the frequency scale factor, so we would not be able to tell
> > > if the system is really frequency invariant; CPUFREQ_SKIP_SET_FREQ_SCALE
> 
> That is easy to fix. Let the drivers call
> enable_cpufreq_freq_invariance() and set the flag.
> 

Right! I suppose part of "the dream" :) was for drivers to be ignorant of
frequency invariance, and for the core to figure out if it has proper
information to potentially* pass to the scheduler.

*potentially = depending on the arch_set_freq_scale() definition.

> > > would be set if either:
> > >  - the driver calls arch_set_freq_scale() on its own
> > >  - the driver does not want arch_set_freq_scale() to be called.
> > >
> > > So at the core level we would not be able to distinguish between the
> > > two, and return whether cpufreq-based invariance is supported.
> > >
> > > I don't really see a reason why a driver would not want to set the
> > > frequency scale factor
> 
> A simple case where the driver doesn't have any idea what the real
> freq 

For me, this would have been filtered by either the type of callback
they use (target_index(), fast_switch() and even target() would offer
some close to accurate indication of the current frequency, while
setpolicy() it obviously targets a range of frequencies) or by the
definition of arch_set_freq_scale().

> ..of the CPU is and it doesn't have counters to guess it as well.
> 
> There can be other reasons which we aren't able to imagine at this
> point of time.
> 

But I understand both the points you and Rafael raised so it's obvious
that a 'opt in' flag would be the better option.

Thank you both,
Ionela.

> -- 
> viresh

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2020-07-02 11:44 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-01  9:07 [PATCH 0/8] cpufreq: improve frequency invariance support Ionela Voinescu
2020-07-01  9:07 ` Ionela Voinescu
2020-07-01  9:07 ` [PATCH 1/8] cpufreq: allow drivers to flag custom support for freq invariance Ionela Voinescu
2020-07-01  9:07   ` Ionela Voinescu
2020-07-01 10:46   ` Viresh Kumar
2020-07-01 10:46     ` Viresh Kumar
2020-07-01 13:33     ` Ionela Voinescu
2020-07-01 13:33       ` Ionela Voinescu
2020-07-01 16:05       ` Rafael J. Wysocki
2020-07-01 16:05         ` Rafael J. Wysocki
2020-07-01 18:06         ` Ionela Voinescu
2020-07-01 18:06           ` Ionela Voinescu
2020-07-02  2:58         ` Viresh Kumar
2020-07-02  2:58           ` Viresh Kumar
2020-07-02 11:44           ` Ionela Voinescu [this message]
2020-07-02 11:44             ` Ionela Voinescu
2020-07-06 12:14             ` Dietmar Eggemann
2020-07-06 12:14               ` Dietmar Eggemann
2020-07-09  8:53               ` Ionela Voinescu
2020-07-09  8:53                 ` Ionela Voinescu
2020-07-09  9:09                 ` Viresh Kumar
2020-07-09  9:09                   ` Viresh Kumar
2020-07-01  9:07 ` [PATCH 2/8] cpufreq: move invariance setter calls in cpufreq core Ionela Voinescu
2020-07-01  9:07   ` Ionela Voinescu
2020-07-01 10:46   ` Viresh Kumar
2020-07-01 10:46     ` Viresh Kumar
2020-07-01 15:27     ` Ionela Voinescu
2020-07-01 15:27       ` Ionela Voinescu
2020-07-01 15:51       ` Rafael J. Wysocki
2020-07-01 15:51         ` Rafael J. Wysocki
2020-07-02  3:01         ` Viresh Kumar
2020-07-02  3:01           ` Viresh Kumar
2020-07-02 11:45         ` Ionela Voinescu
2020-07-02 11:45           ` Ionela Voinescu
2020-07-01  9:07 ` [PATCH 3/8] cpufreq,drivers: remove setting of frequency scale factor Ionela Voinescu
2020-07-01  9:07   ` [PATCH 3/8] cpufreq, drivers: " Ionela Voinescu
2020-07-01  9:07 ` [PATCH 4/8] cpufreq,vexpress-spc: fix Frequency Invariance (FI) for bL switching Ionela Voinescu
2020-07-01  9:07   ` [PATCH 4/8] cpufreq, vexpress-spc: " Ionela Voinescu
2020-07-01 10:46   ` [PATCH 4/8] cpufreq,vexpress-spc: " Viresh Kumar
2020-07-01 10:46     ` Viresh Kumar
2020-07-01 14:07     ` Ionela Voinescu
2020-07-01 14:07       ` Ionela Voinescu
2020-07-02  3:05       ` Viresh Kumar
2020-07-02  3:05         ` Viresh Kumar
2020-07-02 11:41         ` Ionela Voinescu
2020-07-02 11:41           ` Ionela Voinescu
2020-07-02 11:46           ` Viresh Kumar
2020-07-02 11:46             ` Viresh Kumar
2020-07-01  9:07 ` [PATCH 5/8] cpufreq: report whether cpufreq supports Frequency Invariance (FI) Ionela Voinescu
2020-07-01  9:07   ` Ionela Voinescu
2020-07-01 10:46   ` Viresh Kumar
2020-07-01 10:46     ` Viresh Kumar
2020-07-01  9:07 ` [PATCH 6/8] arch_topology,cpufreq,sched/core: constify arch_* cpumasks Ionela Voinescu
2020-07-01  9:07   ` [PATCH 6/8] arch_topology, cpufreq, sched/core: " Ionela Voinescu
2020-07-01  9:07 ` [PATCH 7/8] arch_topology,arm64: define arch_scale_freq_invariant() Ionela Voinescu
2020-07-01  9:07   ` Ionela Voinescu
2020-07-01 16:06   ` [PATCH 7/8] arch_topology, arm64: " kernel test robot
2020-07-01  9:07 ` [PATCH 8/8] cpufreq: make schedutil the default for arm and arm64 Ionela Voinescu
2020-07-01  9:07   ` Ionela Voinescu

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=20200702114425.GB28120@arm.com \
    --to=ionela.voinescu@arm.com \
    --cc=catalin.marinas@arm.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rafael@kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=sudeep.holla@arm.com \
    --cc=valentin.schneider@arm.com \
    --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 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.