[PATCH 0/8] Cpufreq, cpu hotplug, suspend/resume related fixes

From: Srivatsa S. Bhat
Date: Thu Jul 11 2013 - 18:18:57 EST



Hi,

Commit a66b2e (cpufreq: Preserve sysfs files across suspend/resume) caused
some subtle regressions in the cpufreq subsystem during suspend/resume.
This patchset is aimed at rectifying those problems, by fixing the regression
as well as achieving the original goal of that commit in a proper way.

Patch 1 reverts the above commit, and is CC'ed to stable.

Patches 2 - 5 reorganize the code and have no functional impact, and can go
in as general cleanups as well. This reorganization builds a base that the
rest of the patches will make use of.

Patch 6 and 7 add a mechanism to perform light-weight init/tear-down of CPUs
in the cpufreq subsystem and finally patch 8 uses it to preserve sysfs files
across suspend/resume.

All the patches apply on current mainline.


Robert, Durgadoss, it would be great if you could try it out and see if it works
well for your usecase. I tested it locally and cpufreq related files did retain
their permissions across suspend/resume. Let me know if it works fine in your
setup too.

And I'd of course appreciate to hear from Dirk, Tianyu and Toralf to know
whether their systems work fine after:
a. applying only the first commit (this is what gets backported to stable)
b. applying all the commits

(Note: I had to use Michael's fix[1] to avoid CPU hotplug deadlock while
testing this patchset. Though that patch also touches cpufreq subsystem, it
doesn't affect this patchset in any way and there is absolutely no dependency
between the two in terms of code. That fix just makes basic CPU hotplug work
without locking up on current mainline).

[1]. https://lkml.org/lkml/2013/7/10/611


Thank you very much!


Srivatsa S. Bhat (8):
cpufreq: Revert commit a66b2e to fix cpufreq regression during suspend/resume
cpufreq: Fix misplaced call to cpufreq_update_policy()
cpufreq: Add helper to perform alloc/free of policy structure
cpufreq: Extract non-interface related stuff from cpufreq_add_dev_interface
cpufreq: Extract the handover of policy cpu to a helper function
cpufreq: Introduce a flag ('frozen') to separate full vs temporary init/teardown
cpufreq: Preserve policy structure across suspend/resume
cpufreq: Perform light-weight init/teardown during suspend/resume

drivers/cpufreq/cpufreq.c | 297 ++++++++++++++++++++++++++-------------
drivers/cpufreq/cpufreq_stats.c | 10 -
2 files changed, 199 insertions(+), 108 deletions(-)


Thanks,
Srivatsa S. Bhat
IBM Linux Technology Center

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/