linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Beata Michalska <beata.michalska@arm.com>
To: Jie Zhan <zhanjie9@hisilicon.com>
Cc: Prashant Malani <pmalani@google.com>,
	Viresh Kumar <viresh.kumar@linaro.org>,
	Bowen Yu <yubowen8@huawei.com>,
	rafael@kernel.org, linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org, linuxarm@huawei.com,
	jonathan.cameron@huawei.com, lihuisong@huawei.com,
	zhenglifeng1@huawei.com,
	Ionela Voinescu <ionela.voinescu@arm.com>
Subject: Re: [PATCH 2/2] cpufreq: CPPC: Fix error handling in cppc_scale_freq_workfn()
Date: Wed, 13 Aug 2025 11:30:33 +0200	[thread overview]
Message-ID: <aJxbOSMLWyTporw1@arm.com> (raw)
In-Reply-To: <8aa1efad-8f30-9548-259a-09fccb9da48a@hisilicon.com>

On Wed, Aug 13, 2025 at 03:15:12PM +0800, Jie Zhan wrote:
> 
> 
> On 05/08/2025 12:58, Prashant Malani wrote:
> > On Mon, 4 Aug 2025 at 18:12, Prashant Malani <pmalani@google.com> wrote:
> >>
> >> On Sun, 3 Aug 2025 at 23:21, Jie Zhan <zhanjie9@hisilicon.com> wrote
> >>> On 01/08/2025 16:58, Prashant Malani wrote:
> >>>> This begs the question: why is this work function being scheduled
> >>>> for CPUs that are in reset or offline/powered-down at all?
> >>>> IANAE but it sounds like it would be better to add logic to ensure this
> >>>> work function doesn't get scheduled/executed for CPUs that
> >>>> are truly offline/powered-down or in reset.
> >>> Yeah good question.  We may discuss that on your thread.
> >>
> >> OK.
> >> Quickly looking around, it sounds having in the CPPC tick function [1]
> >> might be a better option (one probably doesn't want to lift it beyond the
> >> CPPC layer, since other drivers might have different behaviour).
> >> One can add a cpu_online/cpu_enabled check there.
> > 
> > Fixed link:
> > [1] https://elixir.bootlin.com/linux/v6.13/source/drivers/cpufreq/cppc_cpufreq.c#L125
> I don't think a cpu_online/cpu_enabled check there would help.
> 
> Offlined CPUs don't make cppc_scale_freq_workfn() fail because they won't
> have FIE triggered.  It fails from accessing perf counters on powered-down
> CPUs.
> 
> Perhaps the CPPC FIE needs a bit rework.  AFAICS, FIE is meant to run in
> ticks, but currently the CPPC FIE eventually runs in a thread due to the
> possible PCC path when reading CPC regs I guess.
Just for my benefit: the tick is being fired on a given CPU which is when an
irq_work is being queued. Then before this goes through the kworker and finally
ends up in 'cppc_scale_freq_workfn' that CPU is entering a deeper idle state ?
Could the cppc driver register for pm notifications and cancel any pending work
for a CPU that is actually going down, directly or by setting some flag or smth
so that the final worker function is either not triggered or knows it has to
bail out early ?
(Note this is a rough idea and needs verification)

---
BR
Beata

  reply	other threads:[~2025-08-13  9:31 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-30  3:23 [PATCH 0/2] cpufreq: CPPC: Changing error message in CPPC FIE Bowen Yu
2025-07-30  3:23 ` [PATCH 1/2] cpufreq: CPPC: Don't warn on failing to read perf counters on offline cpus Bowen Yu
2025-07-30  3:23 ` [PATCH 2/2] cpufreq: CPPC: Fix error handling in cppc_scale_freq_workfn() Bowen Yu
2025-07-30  6:39   ` Viresh Kumar
2025-07-30 22:34     ` Prashant Malani
2025-07-31  8:32       ` Jie Zhan
2025-08-01  8:58         ` Prashant Malani
2025-08-04  6:21           ` Jie Zhan
2025-08-05  1:12             ` Prashant Malani
2025-08-05  4:58               ` Prashant Malani
2025-08-13  7:15                 ` Jie Zhan
2025-08-13  9:30                   ` Beata Michalska [this message]
2025-08-15  3:48                     ` Jie Zhan
2025-07-30 18:38   ` Markus Elfring
2025-07-31  4:21     ` Jie Zhan
2025-07-31 10:34       ` [2/2] " Markus Elfring
2025-07-31  8:19   ` [PATCH 2/2] " Beata Michalska
2025-07-31  8:52     ` Jie Zhan
2025-07-31  9:42       ` Beata Michalska
2025-08-04  6:31         ` Jie Zhan

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=aJxbOSMLWyTporw1@arm.com \
    --to=beata.michalska@arm.com \
    --cc=ionela.voinescu@arm.com \
    --cc=jonathan.cameron@huawei.com \
    --cc=lihuisong@huawei.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=pmalani@google.com \
    --cc=rafael@kernel.org \
    --cc=viresh.kumar@linaro.org \
    --cc=yubowen8@huawei.com \
    --cc=zhanjie9@hisilicon.com \
    --cc=zhenglifeng1@huawei.com \
    /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).