* [PATCH v1 0/2] crash on reading cpufreq sysfs
@ 2015-10-07 20:50 Srinivas Pandruvada
2015-10-07 20:50 ` [PATCH v1 1/2] cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus Srinivas Pandruvada
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Srinivas Pandruvada @ 2015-10-07 20:50 UTC (permalink / raw)
To: rafael.j.wysocki, viresh.kumar; +Cc: linux-pm, Srinivas Pandruvada
Fixes for crash on reading cpufreq sysfs for offline cpus
v1
Fix commit discription on Patch 1/2. Included Acks from Viresh.
It has both patches, even though only one patch has change.
v0
two patches: one for acp-cpufreq and one for cpufreq core
Srinivas Pandruvada (2):
cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus
cpufreq: prevent lockup on reading scaling_available_frequencies
drivers/cpufreq/acpi-cpufreq.c | 3 +++
drivers/cpufreq/cpufreq.c | 4 +++-
2 files changed, 6 insertions(+), 1 deletion(-)
--
1.9.3
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH v1 1/2] cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus 2015-10-07 20:50 [PATCH v1 0/2] crash on reading cpufreq sysfs Srinivas Pandruvada @ 2015-10-07 20:50 ` Srinivas Pandruvada 2015-10-07 20:50 ` [PATCH v1 2/2] cpufreq: prevent lockup on reading scaling_available_frequencies Srinivas Pandruvada 2015-10-07 22:50 ` [PATCH v1 0/2] crash on reading cpufreq sysfs Rafael J. Wysocki 2 siblings, 0 replies; 8+ messages in thread From: Srinivas Pandruvada @ 2015-10-07 20:50 UTC (permalink / raw) To: rafael.j.wysocki, viresh.kumar; +Cc: linux-pm, Srinivas Pandruvada When freqdomain_cpus attribute is read from an offlined cpu, it will cause crash. This change prevents calling cpufreq_show_cpus when policy driver_data is NULL. Crash info: [ 170.814949] BUG: unable to handle kernel NULL pointer dereference at 0000000000000018 [ 170.814990] IP: [<ffffffff813b2490>] _find_next_bit.part.0+0x10/0x70 [ 170.815021] PGD 227d30067 PUD 229e56067 PMD 0 [ 170.815043] Oops: 0000 [#2] SMP [ 170.816022] CPU: 3 PID: 3121 Comm: cat Tainted: G D OE 4.3.0-rc3+ #33 ... ... [ 170.816657] Call Trace: [ 170.816672] [<ffffffff813b2505>] ? find_next_bit+0x15/0x20 [ 170.816696] [<ffffffff8160e47c>] cpufreq_show_cpus+0x5c/0xd0 [ 170.816722] [<ffffffffa031a409>] show_freqdomain_cpus+0x19/0x20 [acpi_cpufreq] [ 170.816749] [<ffffffff8160e65b>] show+0x3b/0x60 [ 170.816769] [<ffffffff8129b31c>] sysfs_kf_seq_show+0xbc/0x130 [ 170.816793] [<ffffffff81299be3>] kernfs_seq_show+0x23/0x30 [ 170.816816] [<ffffffff81240f2c>] seq_read+0xec/0x390 [ 170.816837] [<ffffffff8129a64a>] kernfs_fop_read+0x10a/0x160 [ 170.816861] [<ffffffff8121d9b7>] __vfs_read+0x37/0x100 [ 170.816883] [<ffffffff813217c0>] ? security_file_permission+0xa0/0xc0 [ 170.816909] [<ffffffff8121e2e3>] vfs_read+0x83/0x130 [ 170.816930] [<ffffffff8121f035>] SyS_read+0x55/0xc0 ... ... [ 170.817185] ---[ end trace bc6eadf82b2b965a ]--- Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> --- drivers/cpufreq/acpi-cpufreq.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c index 7982772..cec1ee2 100644 --- a/drivers/cpufreq/acpi-cpufreq.c +++ b/drivers/cpufreq/acpi-cpufreq.c @@ -149,6 +149,9 @@ static ssize_t show_freqdomain_cpus(struct cpufreq_policy *policy, char *buf) { struct acpi_cpufreq_data *data = policy->driver_data; + if (unlikely(!data)) + return -ENODEV; + return cpufreq_show_cpus(data->freqdomain_cpus, buf); } -- 1.9.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v1 2/2] cpufreq: prevent lockup on reading scaling_available_frequencies 2015-10-07 20:50 [PATCH v1 0/2] crash on reading cpufreq sysfs Srinivas Pandruvada 2015-10-07 20:50 ` [PATCH v1 1/2] cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus Srinivas Pandruvada @ 2015-10-07 20:50 ` Srinivas Pandruvada 2015-10-07 22:50 ` [PATCH v1 0/2] crash on reading cpufreq sysfs Rafael J. Wysocki 2 siblings, 0 replies; 8+ messages in thread From: Srinivas Pandruvada @ 2015-10-07 20:50 UTC (permalink / raw) To: rafael.j.wysocki, viresh.kumar; +Cc: linux-pm, Srinivas Pandruvada When scaling_available_frequencies is read on an offlined cpu, then either lockup or junk values are displayed. This is caused by freed freq_table, which policy is using. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> --- drivers/cpufreq/cpufreq.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index ef5ed94..25c4c15 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -1436,8 +1436,10 @@ static void cpufreq_offline_finish(unsigned int cpu) * since this is a core component, and is essential for the * subsequent light-weight ->init() to succeed. */ - if (cpufreq_driver->exit) + if (cpufreq_driver->exit) { cpufreq_driver->exit(policy); + policy->freq_table = NULL; + } } /** -- 1.9.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v1 0/2] crash on reading cpufreq sysfs 2015-10-07 20:50 [PATCH v1 0/2] crash on reading cpufreq sysfs Srinivas Pandruvada 2015-10-07 20:50 ` [PATCH v1 1/2] cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus Srinivas Pandruvada 2015-10-07 20:50 ` [PATCH v1 2/2] cpufreq: prevent lockup on reading scaling_available_frequencies Srinivas Pandruvada @ 2015-10-07 22:50 ` Rafael J. Wysocki 2015-10-07 23:50 ` Srinivas Pandruvada 2 siblings, 1 reply; 8+ messages in thread From: Rafael J. Wysocki @ 2015-10-07 22:50 UTC (permalink / raw) To: Srinivas Pandruvada; +Cc: rafael.j.wysocki, viresh.kumar, linux-pm On Wednesday, October 07, 2015 01:50:42 PM Srinivas Pandruvada wrote: > Fixes for crash on reading cpufreq sysfs for offline cpus > > v1 > Fix commit discription on Patch 1/2. Included Acks from Viresh. > It has both patches, even though only one patch has change. > > v0 > two patches: one for acp-cpufreq and one for cpufreq core > > Srinivas Pandruvada (2): > cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus > cpufreq: prevent lockup on reading scaling_available_frequencies Both applied, but they look like -stable material to me. What kernel versions are they applicable too (and in what kernels are they needed)? Thanks, Rafael ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1 0/2] crash on reading cpufreq sysfs 2015-10-07 22:50 ` [PATCH v1 0/2] crash on reading cpufreq sysfs Rafael J. Wysocki @ 2015-10-07 23:50 ` Srinivas Pandruvada 2015-10-08 0:17 ` Rafael J. Wysocki 0 siblings, 1 reply; 8+ messages in thread From: Srinivas Pandruvada @ 2015-10-07 23:50 UTC (permalink / raw) To: Rafael J. Wysocki; +Cc: rafael.j.wysocki, viresh.kumar, linux-pm On Thu, 2015-10-08 at 00:50 +0200, Rafael J. Wysocki wrote: > On Wednesday, October 07, 2015 01:50:42 PM Srinivas Pandruvada wrote: > > Fixes for crash on reading cpufreq sysfs for offline cpus > > > > v1 > > Fix commit discription on Patch 1/2. Included Acks from Viresh. > > It has both patches, even though only one patch has change. > > > > v0 > > two patches: one for acp-cpufreq and one for cpufreq core > > > > Srinivas Pandruvada (2): > > cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus > > cpufreq: prevent lockup on reading scaling_available_frequencies > > Both applied, but they look like -stable material to me. > I tested in 4.1 kernels, since on offline, cpufreq folder is not available there is no issue. For 4.2 kernels the I didn't see crash fixed by cpufreq core patch (cat scaling_available_frequencies), but the "cat freqdomain_cpus" still causes crash. So we need to apply cpufreq:acpi-cpufreq patch only. So one patch is applicable for stable tree. Thanks, Srinivas > What kernel versions are they applicable too (and in what kernels > are they needed)? > > Thanks, > Rafael > > -- > 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1 0/2] crash on reading cpufreq sysfs 2015-10-07 23:50 ` Srinivas Pandruvada @ 2015-10-08 0:17 ` Rafael J. Wysocki 2015-10-08 15:17 ` Srinivas Pandruvada 0 siblings, 1 reply; 8+ messages in thread From: Rafael J. Wysocki @ 2015-10-08 0:17 UTC (permalink / raw) To: Srinivas Pandruvada Cc: Rafael J. Wysocki, Rafael Wysocki, Viresh Kumar, linux-pm@vger.kernel.org On Thu, Oct 8, 2015 at 1:50 AM, Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> wrote: > On Thu, 2015-10-08 at 00:50 +0200, Rafael J. Wysocki wrote: >> On Wednesday, October 07, 2015 01:50:42 PM Srinivas Pandruvada wrote: >> > Fixes for crash on reading cpufreq sysfs for offline cpus >> > >> > v1 >> > Fix commit discription on Patch 1/2. Included Acks from Viresh. >> > It has both patches, even though only one patch has change. >> > >> > v0 >> > two patches: one for acp-cpufreq and one for cpufreq core >> > >> > Srinivas Pandruvada (2): >> > cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus >> > cpufreq: prevent lockup on reading scaling_available_frequencies >> >> Both applied, but they look like -stable material to me. >> > I tested in 4.1 kernels, since on offline, cpufreq folder is not > available there is no issue. > For 4.2 kernels the I didn't see crash fixed by cpufreq core patch (cat > scaling_available_frequencies), but the "cat freqdomain_cpus" still > causes crash. So we need to apply cpufreq:acpi-cpufreq patch only. So > one patch is applicable for stable tree. So [1/2] should go into 4.2.y and [2/2] fixes a regression introduced in this cycle, right? Thanks, Rafael ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1 0/2] crash on reading cpufreq sysfs 2015-10-08 0:17 ` Rafael J. Wysocki @ 2015-10-08 15:17 ` Srinivas Pandruvada 2015-10-08 20:19 ` Rafael J. Wysocki 0 siblings, 1 reply; 8+ messages in thread From: Srinivas Pandruvada @ 2015-10-08 15:17 UTC (permalink / raw) To: Rafael J. Wysocki Cc: Rafael J. Wysocki, Rafael Wysocki, Viresh Kumar, linux-pm@vger.kernel.org On Thu, 2015-10-08 at 02:17 +0200, Rafael J. Wysocki wrote: > On Thu, Oct 8, 2015 at 1:50 AM, Srinivas Pandruvada > <srinivas.pandruvada@linux.intel.com> wrote: > > On Thu, 2015-10-08 at 00:50 +0200, Rafael J. Wysocki wrote: > > > On Wednesday, October 07, 2015 01:50:42 PM Srinivas Pandruvada > > > wrote: > > > > Fixes for crash on reading cpufreq sysfs for offline cpus > > > > > > > > v1 > > > > Fix commit discription on Patch 1/2. Included Acks from Viresh. > > > > It has both patches, even though only one patch has change. > > > > > > > > v0 > > > > two patches: one for acp-cpufreq and one for cpufreq core > > > > > > > > Srinivas Pandruvada (2): > > > > cpufreq: acpi_cpufreq: prevent crash on reading > > > > freqdomain_cpus > > > > cpufreq: prevent lockup on reading > > > > scaling_available_frequencies > > > > > > Both applied, but they look like -stable material to me. > > > > > I tested in 4.1 kernels, since on offline, cpufreq folder is not > > available there is no issue. > > For 4.2 kernels the I didn't see crash fixed by cpufreq core patch > > (cat > > scaling_available_frequencies), but the "cat freqdomain_cpus" still > > causes crash. So we need to apply cpufreq:acpi-cpufreq patch only. > > So > > one patch is applicable for stable tree. > > So [1/2] should go into 4.2.y and [2/2] fixes a regression introduced > in this cycle, right? Yes. Thanks, Srinivas > > Thanks, > Rafael ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v1 0/2] crash on reading cpufreq sysfs 2015-10-08 15:17 ` Srinivas Pandruvada @ 2015-10-08 20:19 ` Rafael J. Wysocki 0 siblings, 0 replies; 8+ messages in thread From: Rafael J. Wysocki @ 2015-10-08 20:19 UTC (permalink / raw) To: Srinivas Pandruvada Cc: Rafael J. Wysocki, Rafael Wysocki, Viresh Kumar, linux-pm@vger.kernel.org On Thursday, October 08, 2015 08:17:57 AM Srinivas Pandruvada wrote: > On Thu, 2015-10-08 at 02:17 +0200, Rafael J. Wysocki wrote: > > On Thu, Oct 8, 2015 at 1:50 AM, Srinivas Pandruvada > > <srinivas.pandruvada@linux.intel.com> wrote: > > > On Thu, 2015-10-08 at 00:50 +0200, Rafael J. Wysocki wrote: > > > > On Wednesday, October 07, 2015 01:50:42 PM Srinivas Pandruvada > > > > wrote: > > > > > Fixes for crash on reading cpufreq sysfs for offline cpus > > > > > > > > > > v1 > > > > > Fix commit discription on Patch 1/2. Included Acks from Viresh. > > > > > It has both patches, even though only one patch has change. > > > > > > > > > > v0 > > > > > two patches: one for acp-cpufreq and one for cpufreq core > > > > > > > > > > Srinivas Pandruvada (2): > > > > > cpufreq: acpi_cpufreq: prevent crash on reading > > > > > freqdomain_cpus > > > > > cpufreq: prevent lockup on reading > > > > > scaling_available_frequencies > > > > > > > > Both applied, but they look like -stable material to me. > > > > > > > I tested in 4.1 kernels, since on offline, cpufreq folder is not > > > available there is no issue. > > > For 4.2 kernels the I didn't see crash fixed by cpufreq core patch > > > (cat > > > scaling_available_frequencies), but the "cat freqdomain_cpus" still > > > causes crash. So we need to apply cpufreq:acpi-cpufreq patch only. > > > So > > > one patch is applicable for stable tree. > > > > So [1/2] should go into 4.2.y and [2/2] fixes a regression introduced > > in this cycle, right? > Yes. OK, thanks! Rafael ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-10-08 19:50 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-10-07 20:50 [PATCH v1 0/2] crash on reading cpufreq sysfs Srinivas Pandruvada 2015-10-07 20:50 ` [PATCH v1 1/2] cpufreq: acpi_cpufreq: prevent crash on reading freqdomain_cpus Srinivas Pandruvada 2015-10-07 20:50 ` [PATCH v1 2/2] cpufreq: prevent lockup on reading scaling_available_frequencies Srinivas Pandruvada 2015-10-07 22:50 ` [PATCH v1 0/2] crash on reading cpufreq sysfs Rafael J. Wysocki 2015-10-07 23:50 ` Srinivas Pandruvada 2015-10-08 0:17 ` Rafael J. Wysocki 2015-10-08 15:17 ` Srinivas Pandruvada 2015-10-08 20:19 ` Rafael J. Wysocki
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).