linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Doug Smythies <dsmythies@telus.net>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
	Linux PM <linux-pm@vger.kernel.org>,
	Linux ACPI <linux-acpi@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Viresh Kumar <viresh.kumar@linaro.org>,
	Sudeep Holla <sudeep.holla@arm.com>,
	Dmitry Osipenko <digetx@gmail.com>
Subject: Re: [RFT][PATCH 1/3] PM: QoS: Introduce frequency QoS
Date: Tue, 19 Nov 2019 23:13:53 +0100	[thread overview]
Message-ID: <6710300.onecg0m5mP@kreacher> (raw)
In-Reply-To: <CAJZ5v0i1iAjpWju6FiCjP3RvspKDRfSwz4=b_3qgGhhfz8sSrw@mail.gmail.com>

On Tuesday, November 19, 2019 8:17:05 PM CET Rafael J. Wysocki wrote:
> On Tue, Nov 19, 2019 at 3:35 PM Doug Smythies <dsmythies@telus.net> wrote:
> >
> > On 2019.11.17 08:13 Doug Smythies wrote:
> > > On 2019.11.16 23:35 Doug Smythies wrote:
> >
> > >> Hi Rafael,
> > >>
> > >> Not sure, but I think it is this one that
> > >> causes complaining when I try to set the
> > >> intel_pstate driver to passive mode.
> > >> I started from active mode, powersave governor,
> > >> no HWP.
> > >>
> > >> Kernel: 5.4-rc7
> > >>
> > >> I did not go back and try previous 5.4 RCs.
> >
> > After looking at the git tags for this patch,
> > I tried kernel 5.4-rc2, which was the closest
> > Kernel I had to before the patch set was added.
> > It worked fine, as expected.
> >
> > >> I did try kernel 5.3-rc8, because I already had
> > >> it installed, and it worked fine.
> > >>
> > >> I use a script (for years), run as sudo:
> > >>
> > >> doug@s15:~/temp$ cat set_cpu_passive
> > >> #! /bin/bash
> > >> cat /sys/devices/system/cpu/intel_pstate/status
> > >> echo passive > /sys/devices/system/cpu/intel_pstate/status
> > >> cat /sys/devices/system/cpu/intel_pstate/status
> > >>
> > >> And I get this (very small excerpt):
> > >>
> > >> freq_qos_add_request() called for active request
> > >> WARNING: CPU: 1 PID: 2758 at kernel/power/qos.c:763 freq_qos_add_request+0x4c/0xa0
> > >> CPU: 1 PID: 2758 Comm: set_cpu_passive Not tainted 5.4.0-rc7-stock #727
> > >> Failed to add freq constraint for CPU0 (-22)
> > >>
> > >> freq_qos_add_request() called for active request
> > >> WARNING: CPU: 1 PID: 2758 at kernel/power/qos.c:763 freq_qos_add_request+0x4c/0xa0
> > >> CPU: 1 PID: 2758 Comm: set_cpu_passive Tainted: G        W         5.4.0-rc7-stock #727
> > >> Failed to add freq constraint for CPU1 (-22)
> >
> > Updated summary of previous emails:
> > This patch or patch set breaks the after boot
> > ability to change CPU frequency scaling drivers.
> >
> > Using a workaround of booting with
> > "intel_pstate=passive" seems to prevent the errors.
> >
> > Changing between the intel_pstate and intel_cpufreq drivers
> > (i.e. between active and passive modes)
> > after boot, either way, causes the errors. i.e.
> >
> > Failed to add freq constraint for CPU7 (-22)
> > (2 per CPU per attempt)
> 
> These messages come from acpi_processor_ppc_init() and
> acpi_thermal_cpufreq_init(), AFAICS, which are invoked by
> acpi_processor_notifier() and that is invoked by the
> blocking_notifier_call_chain() in cpufreq_online() which tirggers for
> new policies after adding the max freq QoS request to
> policy->constraints.
> 
> The requests added by them should be removed by
> acpi_processor_ppc_exit() and acpi_thermal_cpufreq_exit(),
> respectively, invoked by the blocking_notifier_call_chain() in
> cpufreq_policy_free(), but it looks like that doesn't happen.
> 
> However, I now also see that freq_qos_remove_request() doesn't clear
> the qos field in req which is should do, so freq_qos_add_request()
> will complain and fail if the object pointed to by req is passed to it
> again.
> 
> I'll send a patch to test for this later today.
> 

The patch is appended.  Please test it (on top of 5.4-rc8) and report back.


---
 kernel/power/qos.c |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Index: linux-pm/kernel/power/qos.c
===================================================================
--- linux-pm.orig/kernel/power/qos.c
+++ linux-pm/kernel/power/qos.c
@@ -814,6 +814,8 @@ EXPORT_SYMBOL_GPL(freq_qos_update_reques
  */
 int freq_qos_remove_request(struct freq_qos_request *req)
 {
+	int ret;
+
 	if (!req)
 		return -EINVAL;
 
@@ -821,7 +823,11 @@ int freq_qos_remove_request(struct freq_
 		 "%s() called for unknown object\n", __func__))
 		return -EINVAL;
 
-	return freq_qos_apply(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE);
+	ret = freq_qos_apply(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE);
+	req->qos = NULL;
+	req->type = 0;
+
+	return ret;
 }
 EXPORT_SYMBOL_GPL(freq_qos_remove_request);
 




  reply	other threads:[~2019-11-19 22:14 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-16 10:37 [RFT][PATCH 0/3] cpufreq / PM: QoS: Introduce frequency QoS and use it in cpufreq Rafael J. Wysocki
2019-10-16 10:41 ` [RFT][PATCH 1/3] PM: QoS: Introduce frequency QoS Rafael J. Wysocki
2019-10-17  9:41   ` Viresh Kumar
2019-10-17 14:16     ` Rafael J. Wysocki
2019-10-18  5:41       ` Viresh Kumar
2019-10-24 19:01   ` Leonard Crestez
2019-10-24 19:34     ` Leonard Crestez
2019-11-17 16:13   ` Doug Smythies
2019-11-19 14:35     ` Doug Smythies
2019-11-19 19:17       ` Rafael J. Wysocki
2019-11-19 22:13         ` Rafael J. Wysocki [this message]
2019-11-20  6:55           ` Doug Smythies
2019-11-20  9:08             ` Rafael J. Wysocki
2019-10-16 10:47 ` [RFT][PATCH 2/3] cpufreq: Use per-policy " Rafael J. Wysocki
2019-10-16 18:01   ` Dmitry Osipenko
2019-10-17 21:29     ` Dmitry Osipenko
2019-10-18  9:29       ` Viresh Kumar
2019-10-18 15:31         ` Dmitry Osipenko
2019-10-16 10:47 ` [RFT][PATCH 3/3] PM: QoS: Drop frequency QoS types from device PM QoS Rafael J. Wysocki
2019-10-16 14:23 ` [RFT][PATCH 0/3] cpufreq / PM: QoS: Introduce frequency QoS and use it in cpufreq Sudeep Holla
2019-10-17  9:57   ` Viresh Kumar
2019-10-17  9:59     ` Sudeep Holla
2019-10-17 16:34       ` Rafael J. Wysocki
2019-10-17 16:42         ` Sudeep Holla
2019-10-18  5:44         ` Viresh Kumar
2019-10-18  8:24           ` Rafael J. Wysocki
2019-10-18  8:27             ` Viresh Kumar
2019-10-18  8:30               ` Rafael J. Wysocki
2019-10-18  9:24                 ` Viresh Kumar
2019-10-18  9:26                   ` Rafael J. Wysocki
2019-10-18  9:28                     ` Viresh Kumar
2019-10-17 17:14   ` Sudeep Holla
2019-10-17  9:46 ` 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=6710300.onecg0m5mP@kreacher \
    --to=rjw@rjwysocki.net \
    --cc=digetx@gmail.com \
    --cc=dsmythies@telus.net \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=sudeep.holla@arm.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 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).