All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Revert "cpuidle: Make drivers initialize polling state"
@ 2018-01-22 16:27 Ville Syrjala
  2018-02-04  9:12 ` Rafael J. Wysocki
  0 siblings, 1 reply; 13+ messages in thread
From: Ville Syrjala @ 2018-01-22 16:27 UTC (permalink / raw)
  To: linux-pm
  Cc: linux-kernel, Rafael J . Wysocki, Sudeep Holla, Daniel Lezcano,
	Ville Syrjälä

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

This reverts commit 1b39e3f813b4685c7a30ae964d5529a1b0e3a286.

Makes my P3 machine oops somewhere in cpuidle. I suspect
CONFIG_ACPI=n may have something to do with this.

Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/acpi/processor_idle.c | 9 +--------
 drivers/cpuidle/driver.c      | 2 ++
 drivers/cpuidle/poll_state.c  | 3 +--
 drivers/idle/intel_idle.c     | 1 -
 include/linux/cpuidle.h       | 4 ++--
 5 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index d50a7b6ccddd..cb1c7634e2ca 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -842,7 +842,7 @@ static int acpi_processor_setup_cpuidle_cx(struct acpi_processor *pr,
 
 static int acpi_processor_setup_cstates(struct acpi_processor *pr)
 {
-	int i, count;
+	int i, count = ACPI_IDLE_STATE_START;
 	struct acpi_processor_cx *cx;
 	struct cpuidle_state *state;
 	struct cpuidle_driver *drv = &acpi_idle_driver;
@@ -850,13 +850,6 @@ static int acpi_processor_setup_cstates(struct acpi_processor *pr)
 	if (max_cstate == 0)
 		max_cstate = 1;
 
-	if (IS_ENABLED(CONFIG_ARCH_HAS_CPU_RELAX)) {
-		cpuidle_poll_state_init(drv);
-		count = 1;
-	} else {
-		count = 0;
-	}
-
 	for (i = 1; i < ACPI_PROCESSOR_MAX_POWER && i <= max_cstate; i++) {
 		cx = &pr->power.states[i];
 
diff --git a/drivers/cpuidle/driver.c b/drivers/cpuidle/driver.c
index dc32f34e68d9..6f694c86f3fa 100644
--- a/drivers/cpuidle/driver.c
+++ b/drivers/cpuidle/driver.c
@@ -216,6 +216,8 @@ static int __cpuidle_register_driver(struct cpuidle_driver *drv)
 		on_each_cpu_mask(drv->cpumask, cpuidle_setup_broadcast_timer,
 				 (void *)1, 1);
 
+	poll_idle_init(drv);
+
 	return 0;
 }
 
diff --git a/drivers/cpuidle/poll_state.c b/drivers/cpuidle/poll_state.c
index 7416b16287de..0db4f7273952 100644
--- a/drivers/cpuidle/poll_state.c
+++ b/drivers/cpuidle/poll_state.c
@@ -21,7 +21,7 @@ static int __cpuidle poll_idle(struct cpuidle_device *dev,
 	return index;
 }
 
-void cpuidle_poll_state_init(struct cpuidle_driver *drv)
+void poll_idle_init(struct cpuidle_driver *drv)
 {
 	struct cpuidle_state *state = &drv->states[0];
 
@@ -34,4 +34,3 @@ void cpuidle_poll_state_init(struct cpuidle_driver *drv)
 	state->disabled = false;
 	state->flags = CPUIDLE_FLAG_POLLING;
 }
-EXPORT_SYMBOL_GPL(cpuidle_poll_state_init);
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
index b2ccce5fb071..6d8a4b87e4d5 100644
--- a/drivers/idle/intel_idle.c
+++ b/drivers/idle/intel_idle.c
@@ -1342,7 +1342,6 @@ static void __init intel_idle_cpuidle_driver_init(void)
 
 	intel_idle_state_table_update();
 
-	cpuidle_poll_state_init(drv);
 	drv->state_count = 1;
 
 	for (cstate = 0; cstate < CPUIDLE_STATE_MAX; ++cstate) {
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index 8f7788d23b57..bc9f2603fe10 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
@@ -226,9 +226,9 @@ static inline void cpuidle_coupled_parallel_barrier(struct cpuidle_device *dev,
 #endif
 
 #ifdef CONFIG_ARCH_HAS_CPU_RELAX
-void cpuidle_poll_state_init(struct cpuidle_driver *drv);
+void poll_idle_init(struct cpuidle_driver *drv);
 #else
-static inline void cpuidle_poll_state_init(struct cpuidle_driver *drv) {}
+static void poll_idle_init(struct cpuidle_driver *drv) {}
 #endif
 
 /******************************
-- 
2.13.6

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH] Revert "cpuidle: Make drivers initialize polling state"
  2018-01-22 16:27 [PATCH] Revert "cpuidle: Make drivers initialize polling state" Ville Syrjala
@ 2018-02-04  9:12 ` Rafael J. Wysocki
  2018-02-04  9:18   ` Rafael J. Wysocki
  0 siblings, 1 reply; 13+ messages in thread
From: Rafael J. Wysocki @ 2018-02-04  9:12 UTC (permalink / raw)
  To: Ville Syrjala
  Cc: Linux PM, Linux Kernel Mailing List, Rafael J . Wysocki,
	Sudeep Holla, Daniel Lezcano

On Mon, Jan 22, 2018 at 5:27 PM, Ville Syrjala
<ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> This reverts commit 1b39e3f813b4685c7a30ae964d5529a1b0e3a286.
>
> Makes my P3 machine oops somewhere in cpuidle. I suspect
> CONFIG_ACPI=n may have something to do with this.

And if you don't do CONFIG_ACPI=n, does it still oops?

Anyway, there are later changes depending on this one, so reverting it
won't work in general.

Let me look deeper at this.

Thanks,
Rafael

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Revert "cpuidle: Make drivers initialize polling state"
  2018-02-04  9:12 ` Rafael J. Wysocki
@ 2018-02-04  9:18   ` Rafael J. Wysocki
  2018-02-05 14:04     ` Ville Syrjälä
  0 siblings, 1 reply; 13+ messages in thread
From: Rafael J. Wysocki @ 2018-02-04  9:18 UTC (permalink / raw)
  To: Ville Syrjala
  Cc: Linux PM, Linux Kernel Mailing List, Rafael J . Wysocki,
	Sudeep Holla, Daniel Lezcano

On Sun, Feb 4, 2018 at 10:12 AM, Rafael J. Wysocki <rafael@kernel.org> wrote:
> On Mon, Jan 22, 2018 at 5:27 PM, Ville Syrjala
> <ville.syrjala@linux.intel.com> wrote:
>> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>
>> This reverts commit 1b39e3f813b4685c7a30ae964d5529a1b0e3a286.
>>
>> Makes my P3 machine oops somewhere in cpuidle. I suspect
>> CONFIG_ACPI=n may have something to do with this.
>
> And if you don't do CONFIG_ACPI=n, does it still oops?
>
> Anyway, there are later changes depending on this one, so reverting it
> won't work in general.
>
> Let me look deeper at this.

What's there in /sys/devices/system/cpu/cpuidle/current_driver on your
system with the problematic commit reverted?

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Revert "cpuidle: Make drivers initialize polling state"
  2018-02-04  9:18   ` Rafael J. Wysocki
@ 2018-02-05 14:04     ` Ville Syrjälä
  2018-02-05 17:56       ` Rafael J. Wysocki
  0 siblings, 1 reply; 13+ messages in thread
From: Ville Syrjälä @ 2018-02-05 14:04 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Linux PM, Linux Kernel Mailing List, Rafael J . Wysocki,
	Sudeep Holla, Daniel Lezcano

On Sun, Feb 04, 2018 at 10:18:07AM +0100, Rafael J. Wysocki wrote:
> On Sun, Feb 4, 2018 at 10:12 AM, Rafael J. Wysocki <rafael@kernel.org> wrote:
> > On Mon, Jan 22, 2018 at 5:27 PM, Ville Syrjala
> > <ville.syrjala@linux.intel.com> wrote:
> >> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >>
> >> This reverts commit 1b39e3f813b4685c7a30ae964d5529a1b0e3a286.
> >>
> >> Makes my P3 machine oops somewhere in cpuidle. I suspect
> >> CONFIG_ACPI=n may have something to do with this.
> >
> > And if you don't do CONFIG_ACPI=n, does it still oops?

Don't think I actually tried that. I can give it a whirl tonight.

I think this machine should actually have ACPI, but it inherited
the .config from a P2 machine that did not. Apparently I was too
lazy to change .config when I swapped in the "new" machine.

> >
> > Anyway, there are later changes depending on this one, so reverting it
> > won't work in general.
> >
> > Let me look deeper at this.
> 
> What's there in /sys/devices/system/cpu/cpuidle/current_driver on your
> system with the problematic commit reverted?

# cat /sys/devices/system/cpu/cpuidle/current_driver
apm_idle

-- 
Ville Syrjälä
Intel OTC

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Revert "cpuidle: Make drivers initialize polling state"
  2018-02-05 14:04     ` Ville Syrjälä
@ 2018-02-05 17:56       ` Rafael J. Wysocki
  2018-02-06 16:31         ` Ville Syrjälä
  0 siblings, 1 reply; 13+ messages in thread
From: Rafael J. Wysocki @ 2018-02-05 17:56 UTC (permalink / raw)
  To: Ville Syrjälä, Linux PM
  Cc: Linux Kernel Mailing List, Rafael J . Wysocki, Sudeep Holla,
	Daniel Lezcano

On Monday, February 5, 2018 3:04:45 PM CET Ville Syrjälä wrote:
> On Sun, Feb 04, 2018 at 10:18:07AM +0100, Rafael J. Wysocki wrote:
> > On Sun, Feb 4, 2018 at 10:12 AM, Rafael J. Wysocki <rafael@kernel.org> wrote:
> > > On Mon, Jan 22, 2018 at 5:27 PM, Ville Syrjala
> > > <ville.syrjala@linux.intel.com> wrote:
> > >> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > >>
> > >> This reverts commit 1b39e3f813b4685c7a30ae964d5529a1b0e3a286.
> > >>
> > >> Makes my P3 machine oops somewhere in cpuidle. I suspect
> > >> CONFIG_ACPI=n may have something to do with this.
> > >
> > > And if you don't do CONFIG_ACPI=n, does it still oops?
> 
> Don't think I actually tried that. I can give it a whirl tonight.
> 
> I think this machine should actually have ACPI, but it inherited
> the .config from a P2 machine that did not. Apparently I was too
> lazy to change .config when I swapped in the "new" machine.

I guess it would work, but never mind.

> > >
> > > Anyway, there are later changes depending on this one, so reverting it
> > > won't work in general.
> > >
> > > Let me look deeper at this.
> > 
> > What's there in /sys/devices/system/cpu/cpuidle/current_driver on your
> > system with the problematic commit reverted?
> 
> # cat /sys/devices/system/cpu/cpuidle/current_driver
> apm_idle

That is the key bit: I overlooked this little fellow.

Does the below (untested here) help?

---
 arch/x86/kernel/apm_32.c |    1 +
 1 file changed, 1 insertion(+)

Index: linux-pm/arch/x86/kernel/apm_32.c
===================================================================
--- linux-pm.orig/arch/x86/kernel/apm_32.c
+++ linux-pm/arch/x86/kernel/apm_32.c
@@ -2389,6 +2389,7 @@ static int __init apm_init(void)
 	if (HZ != 100)
 		idle_period = (idle_period * HZ) / 100;
 	if (idle_threshold < 100) {
+		cpuidle_poll_state_init(&apm_idle_driver);
 		if (!cpuidle_register_driver(&apm_idle_driver))
 			if (cpuidle_register_device(&apm_cpuidle_device))
 				cpuidle_unregister_driver(&apm_idle_driver);

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Revert "cpuidle: Make drivers initialize polling state"
  2018-02-05 17:56       ` Rafael J. Wysocki
@ 2018-02-06 16:31         ` Ville Syrjälä
  2018-02-06 18:00           ` Rafael J. Wysocki
  2018-02-06 18:02             ` Rafael J. Wysocki
  0 siblings, 2 replies; 13+ messages in thread
From: Ville Syrjälä @ 2018-02-06 16:31 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Linux PM, Linux Kernel Mailing List, Rafael J . Wysocki,
	Sudeep Holla, Daniel Lezcano

On Mon, Feb 05, 2018 at 06:56:31PM +0100, Rafael J. Wysocki wrote:
> On Monday, February 5, 2018 3:04:45 PM CET Ville Syrjälä wrote:
> > On Sun, Feb 04, 2018 at 10:18:07AM +0100, Rafael J. Wysocki wrote:
> > > On Sun, Feb 4, 2018 at 10:12 AM, Rafael J. Wysocki <rafael@kernel.org> wrote:
> > > > On Mon, Jan 22, 2018 at 5:27 PM, Ville Syrjala
> > > > <ville.syrjala@linux.intel.com> wrote:
> > > >> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > >>
> > > >> This reverts commit 1b39e3f813b4685c7a30ae964d5529a1b0e3a286.
> > > >>
> > > >> Makes my P3 machine oops somewhere in cpuidle. I suspect
> > > >> CONFIG_ACPI=n may have something to do with this.
> > > >
> > > > And if you don't do CONFIG_ACPI=n, does it still oops?
> > 
> > Don't think I actually tried that. I can give it a whirl tonight.
> > 
> > I think this machine should actually have ACPI, but it inherited
> > the .config from a P2 machine that did not. Apparently I was too
> > lazy to change .config when I swapped in the "new" machine.
> 
> I guess it would work, but never mind.
> 
> > > >
> > > > Anyway, there are later changes depending on this one, so reverting it
> > > > won't work in general.
> > > >
> > > > Let me look deeper at this.
> > > 
> > > What's there in /sys/devices/system/cpu/cpuidle/current_driver on your
> > > system with the problematic commit reverted?
> > 
> > # cat /sys/devices/system/cpu/cpuidle/current_driver
> > apm_idle
> 
> That is the key bit: I overlooked this little fellow.
> 
> Does the below (untested here) help?
> 
> ---
>  arch/x86/kernel/apm_32.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> Index: linux-pm/arch/x86/kernel/apm_32.c
> ===================================================================
> --- linux-pm.orig/arch/x86/kernel/apm_32.c
> +++ linux-pm/arch/x86/kernel/apm_32.c
> @@ -2389,6 +2389,7 @@ static int __init apm_init(void)
>  	if (HZ != 100)
>  		idle_period = (idle_period * HZ) / 100;
>  	if (idle_threshold < 100) {
> +		cpuidle_poll_state_init(&apm_idle_driver);
>  		if (!cpuidle_register_driver(&apm_idle_driver))
>  			if (cpuidle_register_device(&apm_cpuidle_device))
>  				cpuidle_unregister_driver(&apm_idle_driver);

Yep, this works. Thanks.

Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

-- 
Ville Syrjälä
Intel OTC

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Revert "cpuidle: Make drivers initialize polling state"
  2018-02-06 16:31         ` Ville Syrjälä
@ 2018-02-06 18:00           ` Rafael J. Wysocki
  2018-02-06 18:02             ` Rafael J. Wysocki
  1 sibling, 0 replies; 13+ messages in thread
From: Rafael J. Wysocki @ 2018-02-06 18:00 UTC (permalink / raw)
  To: Ville Syrjälä
  Cc: Linux PM, Linux Kernel Mailing List, Rafael J . Wysocki,
	Sudeep Holla, Daniel Lezcano

On Tuesday, February 6, 2018 5:31:34 PM CET Ville Syrjälä wrote:
> On Mon, Feb 05, 2018 at 06:56:31PM +0100, Rafael J. Wysocki wrote:
> > On Monday, February 5, 2018 3:04:45 PM CET Ville Syrjälä wrote:
> > > On Sun, Feb 04, 2018 at 10:18:07AM +0100, Rafael J. Wysocki wrote:
> > > > On Sun, Feb 4, 2018 at 10:12 AM, Rafael J. Wysocki <rafael@kernel.org> wrote:
> > > > > On Mon, Jan 22, 2018 at 5:27 PM, Ville Syrjala
> > > > > <ville.syrjala@linux.intel.com> wrote:
> > > > >> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > > >>
> > > > >> This reverts commit 1b39e3f813b4685c7a30ae964d5529a1b0e3a286.
> > > > >>
> > > > >> Makes my P3 machine oops somewhere in cpuidle. I suspect
> > > > >> CONFIG_ACPI=n may have something to do with this.
> > > > >
> > > > > And if you don't do CONFIG_ACPI=n, does it still oops?
> > > 
> > > Don't think I actually tried that. I can give it a whirl tonight.
> > > 
> > > I think this machine should actually have ACPI, but it inherited
> > > the .config from a P2 machine that did not. Apparently I was too
> > > lazy to change .config when I swapped in the "new" machine.
> > 
> > I guess it would work, but never mind.
> > 
> > > > >
> > > > > Anyway, there are later changes depending on this one, so reverting it
> > > > > won't work in general.
> > > > >
> > > > > Let me look deeper at this.
> > > > 
> > > > What's there in /sys/devices/system/cpu/cpuidle/current_driver on your
> > > > system with the problematic commit reverted?
> > > 
> > > # cat /sys/devices/system/cpu/cpuidle/current_driver
> > > apm_idle
> > 
> > That is the key bit: I overlooked this little fellow.
> > 
> > Does the below (untested here) help?
> > 
> > ---
> >  arch/x86/kernel/apm_32.c |    1 +
> >  1 file changed, 1 insertion(+)
> > 
> > Index: linux-pm/arch/x86/kernel/apm_32.c
> > ===================================================================
> > --- linux-pm.orig/arch/x86/kernel/apm_32.c
> > +++ linux-pm/arch/x86/kernel/apm_32.c
> > @@ -2389,6 +2389,7 @@ static int __init apm_init(void)
> >  	if (HZ != 100)
> >  		idle_period = (idle_period * HZ) / 100;
> >  	if (idle_threshold < 100) {
> > +		cpuidle_poll_state_init(&apm_idle_driver);
> >  		if (!cpuidle_register_driver(&apm_idle_driver))
> >  			if (cpuidle_register_device(&apm_cpuidle_device))
> >  				cpuidle_unregister_driver(&apm_idle_driver);
> 
> Yep, this works. Thanks.
> 
> Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Thanks!

Let me respin it with a changelog/tags etc

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH] x86: PM: Make APM idle driver initialize polling state
  2018-02-06 16:31         ` Ville Syrjälä
@ 2018-02-06 18:02             ` Rafael J. Wysocki
  2018-02-06 18:02             ` Rafael J. Wysocki
  1 sibling, 0 replies; 13+ messages in thread
From: Rafael J. Wysocki @ 2018-02-06 18:02 UTC (permalink / raw)
  To: Linux PM
  Cc: Ville Syrjälä,
	Linux Kernel Mailing List, Rafael J . Wysocki, x86, Jiri Koshina,
	LKML

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Update the APM driver overlooked by commit 1b39e3f813b4 (cpuidle: Make
drivers initialize polling state) to initialize the polling state like
the other cpuidle drivers modified by that commit to prevent cpuidle
from crashing.

Fixes: 1b39e3f813b4 (cpuidle: Make drivers initialize polling state)
Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 arch/x86/kernel/apm_32.c |    1 +
 1 file changed, 1 insertion(+)

Index: linux-pm/arch/x86/kernel/apm_32.c
===================================================================
--- linux-pm.orig/arch/x86/kernel/apm_32.c
+++ linux-pm/arch/x86/kernel/apm_32.c
@@ -2389,6 +2389,7 @@ static int __init apm_init(void)
 	if (HZ != 100)
 		idle_period = (idle_period * HZ) / 100;
 	if (idle_threshold < 100) {
+		cpuidle_poll_state_init(&apm_idle_driver);
 		if (!cpuidle_register_driver(&apm_idle_driver))
 			if (cpuidle_register_device(&apm_cpuidle_device))
 				cpuidle_unregister_driver(&apm_idle_driver);

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH] x86: PM: Make APM idle driver initialize polling state
@ 2018-02-06 18:02             ` Rafael J. Wysocki
  0 siblings, 0 replies; 13+ messages in thread
From: Rafael J. Wysocki @ 2018-02-06 18:02 UTC (permalink / raw)
  To: Linux PM
  Cc: Ville Syrjälä,
	Linux Kernel Mailing List, Rafael J . Wysocki, x86, Jiri Koshina

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Update the APM driver overlooked by commit 1b39e3f813b4 (cpuidle: Make
drivers initialize polling state) to initialize the polling state like
the other cpuidle drivers modified by that commit to prevent cpuidle
from crashing.

Fixes: 1b39e3f813b4 (cpuidle: Make drivers initialize polling state)
Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 arch/x86/kernel/apm_32.c |    1 +
 1 file changed, 1 insertion(+)

Index: linux-pm/arch/x86/kernel/apm_32.c
===================================================================
--- linux-pm.orig/arch/x86/kernel/apm_32.c
+++ linux-pm/arch/x86/kernel/apm_32.c
@@ -2389,6 +2389,7 @@ static int __init apm_init(void)
 	if (HZ != 100)
 		idle_period = (idle_period * HZ) / 100;
 	if (idle_threshold < 100) {
+		cpuidle_poll_state_init(&apm_idle_driver);
 		if (!cpuidle_register_driver(&apm_idle_driver))
 			if (cpuidle_register_device(&apm_cpuidle_device))
 				cpuidle_unregister_driver(&apm_idle_driver);

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] x86: PM: Make APM idle driver initialize polling state
  2018-02-06 18:02             ` Rafael J. Wysocki
  (?)
@ 2018-02-06 18:26             ` Ville Syrjälä
  2018-02-07  9:20               ` Rafael J. Wysocki
  -1 siblings, 1 reply; 13+ messages in thread
From: Ville Syrjälä @ 2018-02-06 18:26 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Linux PM, Linux Kernel Mailing List, Rafael J . Wysocki, x86,
	Jiri Koshina

On Tue, Feb 06, 2018 at 07:02:58PM +0100, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> Update the APM driver overlooked by commit 1b39e3f813b4 (cpuidle: Make
> drivers initialize polling state) to initialize the polling state like
> the other cpuidle drivers modified by that commit to prevent cpuidle
> from crashing.
> 
> Fixes: 1b39e3f813b4 (cpuidle: Make drivers initialize polling state)
> Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

And maybe?

Cc: <stable@vger.kernel.org> # v4.14+

> ---
>  arch/x86/kernel/apm_32.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> Index: linux-pm/arch/x86/kernel/apm_32.c
> ===================================================================
> --- linux-pm.orig/arch/x86/kernel/apm_32.c
> +++ linux-pm/arch/x86/kernel/apm_32.c
> @@ -2389,6 +2389,7 @@ static int __init apm_init(void)
>  	if (HZ != 100)
>  		idle_period = (idle_period * HZ) / 100;
>  	if (idle_threshold < 100) {
> +		cpuidle_poll_state_init(&apm_idle_driver);
>  		if (!cpuidle_register_driver(&apm_idle_driver))
>  			if (cpuidle_register_device(&apm_cpuidle_device))
>  				cpuidle_unregister_driver(&apm_idle_driver);
> 

-- 
Ville Syrjälä
Intel OTC

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] x86: PM: Make APM idle driver initialize polling state
  2018-02-06 18:26             ` Ville Syrjälä
@ 2018-02-07  9:20               ` Rafael J. Wysocki
  2018-02-07 14:00                 ` Ville Syrjälä
  0 siblings, 1 reply; 13+ messages in thread
From: Rafael J. Wysocki @ 2018-02-07  9:20 UTC (permalink / raw)
  To: Ville Syrjälä
  Cc: Linux PM, Linux Kernel Mailing List, Rafael J . Wysocki, x86,
	Jiri Koshina

On Tuesday, February 6, 2018 7:26:17 PM CET Ville Syrjälä wrote:
> On Tue, Feb 06, 2018 at 07:02:58PM +0100, Rafael J. Wysocki wrote:
> > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > 
> > Update the APM driver overlooked by commit 1b39e3f813b4 (cpuidle: Make
> > drivers initialize polling state) to initialize the polling state like
> > the other cpuidle drivers modified by that commit to prevent cpuidle
> > from crashing.
> > 
> > Fixes: 1b39e3f813b4 (cpuidle: Make drivers initialize polling state)
> > Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> And maybe?
> 
> Cc: <stable@vger.kernel.org> # v4.14+

I add these when applying patches.

Actually, I've queued up the patch with this tag already.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] x86: PM: Make APM idle driver initialize polling state
  2018-02-07  9:20               ` Rafael J. Wysocki
@ 2018-02-07 14:00                 ` Ville Syrjälä
  0 siblings, 0 replies; 13+ messages in thread
From: Ville Syrjälä @ 2018-02-07 14:00 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Linux PM, Linux Kernel Mailing List, Rafael J . Wysocki, x86,
	Jiri Koshina

On Wed, Feb 07, 2018 at 10:20:58AM +0100, Rafael J. Wysocki wrote:
> On Tuesday, February 6, 2018 7:26:17 PM CET Ville Syrjälä wrote:
> > On Tue, Feb 06, 2018 at 07:02:58PM +0100, Rafael J. Wysocki wrote:
> > > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > > 
> > > Update the APM driver overlooked by commit 1b39e3f813b4 (cpuidle: Make
> > > drivers initialize polling state) to initialize the polling state like
> > > the other cpuidle drivers modified by that commit to prevent cpuidle
> > > from crashing.
> > > 
> > > Fixes: 1b39e3f813b4 (cpuidle: Make drivers initialize polling state)
> > > Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > 
> > And maybe?
> > 
> > Cc: <stable@vger.kernel.org> # v4.14+
> 
> I add these when applying patches.
> 
> Actually, I've queued up the patch with this tag already.

Cool. Thanks.

-- 
Ville Syrjälä
Intel OTC

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH] PM: cpuidle: Fix cpuidle_poll_state_init() prototype
  2018-02-06 18:02             ` Rafael J. Wysocki
  (?)
  (?)
@ 2018-02-12  9:21             ` Rafael J. Wysocki
  -1 siblings, 0 replies; 13+ messages in thread
From: Rafael J. Wysocki @ 2018-02-12  9:21 UTC (permalink / raw)
  To: Linux PM
  Cc: Ville Syrjälä,
	Linux Kernel Mailing List, Rafael J . Wysocki, x86, Jiri Koshina

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Commit f85942207516 (x86: PM: Make APM idle driver initialize polling
state) made apm_init() call cpuidle_poll_state_init(), but that only
is defined for CONFIG_CPU_IDLE set, so make the empty stub of it
available for CONFIG_CPU_IDLE unset too to fix the resulting build
issue.

Fixes: f85942207516 (x86: PM: Make APM idle driver initialize polling state)
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 include/linux/cpuidle.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-pm/include/linux/cpuidle.h
===================================================================
--- linux-pm.orig/include/linux/cpuidle.h
+++ linux-pm/include/linux/cpuidle.h
@@ -225,7 +225,7 @@ static inline void cpuidle_coupled_paral
 }
 #endif
 
-#ifdef CONFIG_ARCH_HAS_CPU_RELAX
+#if defined(CONFIG_CPU_IDLE) && defined(CONFIG_ARCH_HAS_CPU_RELAX)
 void cpuidle_poll_state_init(struct cpuidle_driver *drv);
 #else
 static inline void cpuidle_poll_state_init(struct cpuidle_driver *drv) {}

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2018-02-12  9:23 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-22 16:27 [PATCH] Revert "cpuidle: Make drivers initialize polling state" Ville Syrjala
2018-02-04  9:12 ` Rafael J. Wysocki
2018-02-04  9:18   ` Rafael J. Wysocki
2018-02-05 14:04     ` Ville Syrjälä
2018-02-05 17:56       ` Rafael J. Wysocki
2018-02-06 16:31         ` Ville Syrjälä
2018-02-06 18:00           ` Rafael J. Wysocki
2018-02-06 18:02           ` [PATCH] x86: PM: Make APM idle driver initialize polling state Rafael J. Wysocki
2018-02-06 18:02             ` Rafael J. Wysocki
2018-02-06 18:26             ` Ville Syrjälä
2018-02-07  9:20               ` Rafael J. Wysocki
2018-02-07 14:00                 ` Ville Syrjälä
2018-02-12  9:21             ` [PATCH] PM: cpuidle: Fix cpuidle_poll_state_init() prototype Rafael J. Wysocki

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.