From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Andy Gross <agross@kernel.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Viresh Kumar <viresh.kumar@linaro.org>,
linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org,
Thara Gopinath <thara.gopinath@gmail.com>
Subject: Re: [PATCH v4 2/4] cpufreq: qcom-hw: fix the race between LMH worker and cpuhp
Date: Thu, 31 Mar 2022 11:33:15 -0700 [thread overview]
Message-ID: <YkXz61vmG9f3ETRX@ripper> (raw)
In-Reply-To: <20220326155153.7377-3-dmitry.baryshkov@linaro.org>
On Sat 26 Mar 08:51 PDT 2022, Dmitry Baryshkov wrote:
> The driver would disable the worker when cpu is being put offline, but
> it happens closer to the end of cpufreq_offline(). The function
> qcom_lmh_dcvs_poll() can be running in parallel with this, when
> policy->cpus already has been updated. Read policy->related_cpus
> instead.
>
> [ 37.122433] ------------[ cut here ]------------
> [ 37.127225] WARNING: CPU: 0 PID: 187 at drivers/base/arch_topology.c:180 topology_update_thermal_pressure+0xec/0x100
> [ 37.138098] Modules linked in:
> [ 37.141279] CPU: 0 PID: 187 Comm: kworker/0:3 Tainted: G S 5.17.0-rc6-00389-g37c83d0b8710-dirty #713
> [ 37.158306] Workqueue: events qcom_lmh_dcvs_poll
> [ 37.163095] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [ 37.170278] pc : topology_update_thermal_pressure+0xec/0x100
> [ 37.176131] lr : topology_update_thermal_pressure+0x20/0x100
> [ 37.181977] sp : ffff800009b6bce0
> [ 37.185402] x29: ffff800009b6bce0 x28: ffffd87abe92b000 x27: ffff04bd7292e205
> [ 37.192792] x26: ffffd87abe930af8 x25: ffffd87abe94e4c8 x24: 0000000000000000
> [ 37.200180] x23: ffff04bb01177018 x22: ffff04bb011770c0 x21: ffff04bb01177000
> [ 37.207567] x20: ffff04bb0a419000 x19: 00000000000c4e00 x18: 0000000000000000
> [ 37.214954] x17: 000000040044ffff x16: 004000b2b5503510 x15: 0000006aaa1326d2
> [ 37.222333] x14: 0000000000000232 x13: 0000000000000001 x12: 0000000000000040
> [ 37.229718] x11: ffff04bb00400000 x10: 968f57bd39f701c8 x9 : ffff04bb0acc8674
> [ 37.237095] x8 : fefefefefefefeff x7 : 0000000000000018 x6 : ffffd87abd90092c
> [ 37.244478] x5 : 0000000000000016 x4 : 0000000000000000 x3 : 0000000000000100
> [ 37.251852] x2 : ffff04bb0a419020 x1 : 0000000000000100 x0 : 0000000000000100
> [ 37.259235] Call trace:
> [ 37.261771] topology_update_thermal_pressure+0xec/0x100
> [ 37.267266] qcom_lmh_dcvs_poll+0xbc/0x154
> [ 37.271505] process_one_work+0x288/0x69c
> [ 37.275654] worker_thread+0x74/0x470
> [ 37.279450] kthread+0xfc/0x100
> [ 37.282712] ret_from_fork+0x10/0x20
> [ 37.286417] irq event stamp: 74
> [ 37.289664] hardirqs last enabled at (73): [<ffffd87abdd78af4>] _raw_spin_unlock_irq+0x44/0x80
> [ 37.298632] hardirqs last disabled at (74): [<ffffd87abdd71fc0>] __schedule+0x710/0xa10
> [ 37.306885] softirqs last enabled at (58): [<ffffd87abcc90410>] _stext+0x410/0x588
> [ 37.314778] softirqs last disabled at (51): [<ffffd87abcd1bf68>] __irq_exit_rcu+0x158/0x174
> [ 37.323386] ---[ end trace 0000000000000000 ]---
>
> Fixes: 275157b367f4 ("cpufreq: qcom-cpufreq-hw: Add dcvs interrupt support")
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Regards,
Bjorn
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
> drivers/cpufreq/qcom-cpufreq-hw.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/cpufreq/qcom-cpufreq-hw.c b/drivers/cpufreq/qcom-cpufreq-hw.c
> index 44d46e52baea..d39a0ef9ea45 100644
> --- a/drivers/cpufreq/qcom-cpufreq-hw.c
> +++ b/drivers/cpufreq/qcom-cpufreq-hw.c
> @@ -290,7 +290,7 @@ static unsigned int qcom_lmh_get_throttle_freq(struct qcom_cpufreq_data *data)
> static void qcom_lmh_dcvs_notify(struct qcom_cpufreq_data *data)
> {
> struct cpufreq_policy *policy = data->policy;
> - int cpu = cpumask_first(policy->cpus);
> + int cpu = cpumask_first(policy->related_cpus);
> struct device *dev = get_cpu_device(cpu);
> unsigned long freq_hz, throttled_freq;
> struct dev_pm_opp *opp;
> --
> 2.35.1
>
next prev parent reply other threads:[~2022-03-31 18:30 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-26 15:51 [PATCH v4 0/4] cpufreq: qcom-hw: Fixes for cpu hotplug support Dmitry Baryshkov
2022-03-26 15:51 ` [PATCH v4 1/4] cpufreq: qcom-hw: drop affinity hint before freeing the IRQ Dmitry Baryshkov
2022-03-26 15:51 ` [PATCH v4 2/4] cpufreq: qcom-hw: fix the race between LMH worker and cpuhp Dmitry Baryshkov
2022-03-31 18:33 ` Bjorn Andersson [this message]
2022-03-26 15:51 ` [PATCH v4 3/4] cpufreq: qcom-hw: fix the opp entries refcounting Dmitry Baryshkov
2022-03-26 15:51 ` [PATCH v4 4/4] cpufreq: qcom-hw: provide online/offline operations Dmitry Baryshkov
2022-03-31 18:34 ` [PATCH v4 0/4] cpufreq: qcom-hw: Fixes for cpu hotplug support Bjorn Andersson
2022-04-01 2:39 ` Viresh Kumar
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=YkXz61vmG9f3ETRX@ripper \
--to=bjorn.andersson@linaro.org \
--cc=agross@kernel.org \
--cc=dmitry.baryshkov@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=thara.gopinath@gmail.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.