diff mbox

[V5,0/7] cpufreq: suspend early/resume late: dpm_{suspend|resume}()

Message ID CAKohpomhvuQQ0JN3wgLBnrSpFUjC9J9QwWZpD9nA6AFYw+paKA@mail.gmail.com
State New
Headers show

Commit Message

Viresh Kumar Feb. 17, 2014, 9:20 a.m. UTC
On 15 February 2014 05:33, Stephen Warren <swarren@wwwdotorg.org> wrote:
> On 02/14/2014 03:23 PM, Rafael J. Wysocki wrote:

>> Well, it would be good to verify which part, then.
>
> Patch 2/7 appears to stop that message from being printed during
> suspend, and perhaps reduce the number of times it's printed during
> resume. Patch 7/7 stops the message being printed at all.
>
> Looking at patch 7, I wonder if it's simply because tegra_target() was
> modified never to return -EBUSY, so the bug is still there, but it's
> just been hidden.

No, the bug is removed now. Its hidden in current linus/master :)

>>> Also, I sometimes see the following during resume. I saw it twice with
>>> Linus's tree, but then I did 10 more reboot+suspend+resume cycles and
>>> couldn't repro it, and I saw it once with Linus's tree plus this series
>>> applied, then couldn't reproduce it in 5 more tries.
>
> Oops. I screwed up my re-testing (tested on the wrong board, without
> cpufreq active:-/). The message below is reproducible 100% of the time
> with or without this series.

Somehow I missed it. Following will fix it, sending a separate patch for it as
well:

                if (new_cpu >= 0) {
--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Viresh Kumar Feb. 19, 2014, 4:15 a.m. UTC | #1
On 19-Feb-2014 1:48 AM, "Stephen Warren" <swarren@wwwdotorg.org> wrote:
>
> On 02/17/2014 02:20 AM, Viresh Kumar wrote:
> > On 15 February 2014 05:33, Stephen Warren <swarren@wwwdotorg.org> wrote:
> >> On 02/14/2014 03:23 PM, Rafael J. Wysocki wrote:
> >
> >>> Well, it would be good to verify which part, then.
> >>
> >> Patch 2/7 appears to stop that message from being printed during
> >> suspend, and perhaps reduce the number of times it's printed during
> >> resume. Patch 7/7 stops the message being printed at all.
> >>
> >> Looking at patch 7, I wonder if it's simply because tegra_target() was
> >> modified never to return -EBUSY, so the bug is still there, but it's
> >> just been hidden.
> >
> > No, the bug is removed now. Its hidden in current linus/master :)
>
> I'm not sure what that means; I still see the message:

I have given a better reply in one of the earlier mails in this thread.
And skipped a more elaborative reply now.

So this failure was always there since long time, as you disable your
target() fn early in suspend. But the message wasn't printed earlier.

A recently added core patch started printing this, so not a new bug.
But this series fixes suspend resume completely and you wouldn't see it
anymore.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Viresh Kumar Feb. 20, 2014, 1:49 a.m. UTC | #2
> On 19-Feb-2014, at 10:56 pm, Stephen Warren <swarren@wwwdotorg.org> wrote:
> 
>> On 02/18/2014 09:15 PM, Viresh Kumar wrote:
>>> On 19-Feb-2014 1:48 AM, "Stephen Warren" <swarren@wwwdotorg.org> wrote:
>>> 
>>>> On 02/17/2014 02:20 AM, Viresh Kumar wrote:
>>>>> On 15 February 2014 05:33, Stephen Warren <swarren@wwwdotorg.org> wrote:
>>>>> On 02/14/2014 03:23 PM, Rafael J. Wysocki wrote:
>>>> 
>>>>>> Well, it would be good to verify which part, then.
>>>>> 
>>>>> Patch 2/7 appears to stop that message from being printed during
>>>>> suspend, and perhaps reduce the number of times it's printed during
>>>>> resume. Patch 7/7 stops the message being printed at all.
>>>>> 
>>>>> Looking at patch 7, I wonder if it's simply because tegra_target() was
>>>>> modified never to return -EBUSY, so the bug is still there, but it's
>>>>> just been hidden.
>>>> 
>>>> No, the bug is removed now. Its hidden in current linus/master :)
>>> 
>>> I'm not sure what that means; I still see the message:
>> 
>> I have given a better reply in one of the earlier mails in this thread.
>> And skipped a more elaborative reply now.
>> 
>> So this failure was always there since long time, as you disable your
>> target() fn early in suspend. But the message wasn't printed earlier.
>> 
>> A recently added core patch started printing this, so not a new bug.
>> But this series fixes suspend resume completely and you wouldn't see it
>> anymore.
> 
> OK, so I suppose we have two options:
> 
> a) Just ignore the kernel error spew since it's a known issue.
> 
> b) If I make the Tegra driver return 0 rather than -EBUSY, would that
> work? It would certainly silence the error. However, I wonder if it
> would cause the cpufreq core to get out of sync with HW; the core would
> think that it'd set some frequency, which the driver ignored, and if it
> later wanted to switch frequency, the call might get skipped because the
> core thought the HW was already set to that frequency?

Option is the one you need.--
To unsubscribe from this list: send the line "unsubscribe cpufreq" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Viresh Kumar Feb. 20, 2014, 1:50 a.m. UTC | #3
> On 20-Feb-2014, at 7:19 am, Linaro <viresh.kumar@linaro.org> wrote:
> 
> 
> 
>>> On 19-Feb-2014, at 10:56 pm, Stephen Warren <swarren@wwwdotorg.org> wrote:
>>> 
>>>> On 02/18/2014 09:15 PM, Viresh Kumar wrote:
>>>>> On 19-Feb-2014 1:48 AM, "Stephen Warren" <swarren@wwwdotorg.org> wrote:
>>>>> 
>>>>>> On 02/17/2014 02:20 AM, Viresh Kumar wrote:
>>>>>> On 15 February 2014 05:33, Stephen Warren <swarren@wwwdotorg.org> wrote:
>>>>>> On 02/14/2014 03:23 PM, Rafael J. Wysocki wrote:
>>>>> 
>>>>>>> Well, it would be good to verify which part, then.
>>>>>> 
>>>>>> Patch 2/7 appears to stop that message from being printed during
>>>>>> suspend, and perhaps reduce the number of times it's printed during
>>>>>> resume. Patch 7/7 stops the message being printed at all.
>>>>>> 
>>>>>> Looking at patch 7, I wonder if it's simply because tegra_target() was
>>>>>> modified never to return -EBUSY, so the bug is still there, but it's
>>>>>> just been hidden.
>>>>> 
>>>>> No, the bug is removed now. Its hidden in current linus/master :)
>>>> 
>>>> I'm not sure what that means; I still see the message:
>>> 
>>> I have given a better reply in one of the earlier mails in this thread.
>>> And skipped a more elaborative reply now.
>>> 
>>> So this failure was always there since long time, as you disable your
>>> target() fn early in suspend. But the message wasn't printed earlier.
>>> 
>>> A recently added core patch started printing this, so not a new bug.
>>> But this series fixes suspend resume completely and you wouldn't see it
>>> anymore.
>> 
>> OK, so I suppose we have two options:
>> 
>> a) Just ignore the kernel error spew since it's a known issue.
>> 
>> b) If I make the Tegra driver return 0 rather than -EBUSY, would that
>> work? It would certainly silence the error. However, I wonder if it
>> would cause the cpufreq core to get out of sync with HW; the core would
>> think that it'd set some frequency, which the driver ignored, and if it
>> later wanted to switch frequency, the call might get skipped because the
>> core thought the HW was already set to that frequency?
> 
> Option is the one you need.

Option a..--
To unsubscribe from this list: send the line "unsubscribe cpufreq" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Viresh Kumar Feb. 24, 2014, 6:43 a.m. UTC | #4
On 20 February 2014 23:10, Stephen Warren <swarren@wwwdotorg.org> wrote:
> Well, except that still leaves a bunch of errors in the kernel log, and
> I have to remember to ignore them:-/

Just for few releases, before this patchset goes in.

> It'd be nice if the cpufreq core didn't keep changing its behaviour and
> adding new error prints. It really should be up to the cpufreq drivers
> to log the errors if they experience any.

Hmm... not sure.. Its better to do error prints at a single place, i.e. cpufreq
core on behalf of all drivers. If there is a error being returned from some
routine, we better print a message for that. Rather than living in the illusion
that everything is fine :)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
diff mbox

Patch

diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 2dfbb7e..48315e0 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1326,8 +1326,7 @@  static int __cpufreq_remove_dev_prepare(struct
device *dev,
        up_read(&policy->rwsem);

        if (cpu != policy->cpu) {
-               if (!frozen)
-                       sysfs_remove_link(&dev->kobj, "cpufreq");
+               sysfs_remove_link(&dev->kobj, "cpufreq");
        } else if (cpus > 1) {
                new_cpu = cpufreq_nominate_new_policy_cpu(policy, cpu);