linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Bisected 3.12.0-rc1 Laptop screen goes blank during kernelboot
@ 2013-09-20 17:13 Hans de Bruin
  2013-09-22  2:10 ` Aaron Lu
  0 siblings, 1 reply; 4+ messages in thread
From: Hans de Bruin @ 2013-09-20 17:13 UTC (permalink / raw)
  To: linux-acpi, linux-pci

During boot time my laptop screen goes blank when de kernel switches the 
screen to another resolution. The backlight is on. Eventually a kde 
login box appears out of the blackness. Swiching to a lower resolution 
gives me a black screen again. After testing the 
intel-gfx@lists.freedesktop.org developers test-tree problem less they 
sugested a bisect. That bisect ended in:


commit 137b944e100278d696826cf25c83014ac17473fe
Author: Daniel Lezcano <daniel.lezcano@linaro.org>
Date:   Wed Jun 12 15:08:48 2013 +0200

   cpuidle: Make it clear that governors cannot be modules

   cpufreq governors are defined as modules in the code, but the Kconfig
   options do not allow them to be built as modules.  This is not really
   a problem, but the cpuidle init ordering is: the cpuidle init
   functions (framework and driver) and then the governors.  That leads
   to some weirdness in the cpuidle framework.

   Namely,  cpuidle_register_device() calls cpuidle_enable_device() which
   fails at the first attempt, because governors have not been registered
   yet.  When a governor is registered, the framework calls
   cpuidle_enable_device() again which runs __cpuidle_register_device()
   only then.  Of course, for that to work, the cpuidle_enable_device()
   return value has to be ignored by cpuidle_register_device().

     Instead of having this cyclic call graph and relying on a positive
     side effects of the hackish back and forth cpuidle_enable_device()
     calls it is better to fix the cpuidle init ordering.

     To that end, replace the module init code with postcore_initcall()
     so we have:

      * cpuidle framework : core_initcall
      * cpuidle governors : postcore_initcall
      * cpuidle drivers   : device_initcall

     and remove the corresponding module exit code as it is dead anyway
     (governors can't be built as modules).

     [rjw: Changelog]
     Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
     Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

:040000 040000 45e7cb28411864c00b62296a7ff239f9f139d5d9 
86a36b01dee52a77cfbab41a973b7a2bfa44ce34 M      drivers



Reverting it makes the problem go away.

-- 
Hans

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

* Re: Bisected 3.12.0-rc1 Laptop screen goes blank during kernelboot
  2013-09-20 17:13 Bisected 3.12.0-rc1 Laptop screen goes blank during kernelboot Hans de Bruin
@ 2013-09-22  2:10 ` Aaron Lu
  2013-09-25 12:29   ` Daniel Lezcano
  0 siblings, 1 reply; 4+ messages in thread
From: Aaron Lu @ 2013-09-22  2:10 UTC (permalink / raw)
  To: Hans de Bruin
  Cc: linux-acpi, linux-pci, Linux-pm mailing list, Daniel Lezcano

Add linux-pm.

-Aaron

On 09/21/2013 01:13 AM, Hans de Bruin wrote:
> During boot time my laptop screen goes blank when de kernel switches the 
> screen to another resolution. The backlight is on. Eventually a kde 
> login box appears out of the blackness. Swiching to a lower resolution 
> gives me a black screen again. After testing the 
> intel-gfx@lists.freedesktop.org developers test-tree problem less they 
> sugested a bisect. That bisect ended in:
> 
> 
> commit 137b944e100278d696826cf25c83014ac17473fe
> Author: Daniel Lezcano <daniel.lezcano@linaro.org>
> Date:   Wed Jun 12 15:08:48 2013 +0200
> 
>    cpuidle: Make it clear that governors cannot be modules
> 
>    cpufreq governors are defined as modules in the code, but the Kconfig
>    options do not allow them to be built as modules.  This is not really
>    a problem, but the cpuidle init ordering is: the cpuidle init
>    functions (framework and driver) and then the governors.  That leads
>    to some weirdness in the cpuidle framework.
> 
>    Namely,  cpuidle_register_device() calls cpuidle_enable_device() which
>    fails at the first attempt, because governors have not been registered
>    yet.  When a governor is registered, the framework calls
>    cpuidle_enable_device() again which runs __cpuidle_register_device()
>    only then.  Of course, for that to work, the cpuidle_enable_device()
>    return value has to be ignored by cpuidle_register_device().
> 
>      Instead of having this cyclic call graph and relying on a positive
>      side effects of the hackish back and forth cpuidle_enable_device()
>      calls it is better to fix the cpuidle init ordering.
> 
>      To that end, replace the module init code with postcore_initcall()
>      so we have:
> 
>       * cpuidle framework : core_initcall
>       * cpuidle governors : postcore_initcall
>       * cpuidle drivers   : device_initcall
> 
>      and remove the corresponding module exit code as it is dead anyway
>      (governors can't be built as modules).
> 
>      [rjw: Changelog]
>      Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
>      Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> :040000 040000 45e7cb28411864c00b62296a7ff239f9f139d5d9 
> 86a36b01dee52a77cfbab41a973b7a2bfa44ce34 M      drivers
> 
> 
> 
> Reverting it makes the problem go away.
> 


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

* Re: Bisected 3.12.0-rc1 Laptop screen goes blank during kernelboot
  2013-09-22  2:10 ` Aaron Lu
@ 2013-09-25 12:29   ` Daniel Lezcano
       [not found]     ` <52447A4C.3020000@xmsnet.nl>
  0 siblings, 1 reply; 4+ messages in thread
From: Daniel Lezcano @ 2013-09-25 12:29 UTC (permalink / raw)
  To: Aaron Lu; +Cc: Hans de Bruin, linux-acpi, linux-pci, Linux-pm mailing list

On 09/22/2013 04:10 AM, Aaron Lu wrote:
> Add linux-pm.
> 
> -Aaron
> 
> On 09/21/2013 01:13 AM, Hans de Bruin wrote:
>> During boot time my laptop screen goes blank when de kernel switches the 
>> screen to another resolution. The backlight is on. Eventually a kde 
>> login box appears out of the blackness. Swiching to a lower resolution 
>> gives me a black screen again. After testing the 
>> intel-gfx@lists.freedesktop.org developers test-tree problem less they 
>> sugested a bisect. That bisect ended in:
>>
>>
>> commit 137b944e100278d696826cf25c83014ac17473fe
>> Author: Daniel Lezcano <daniel.lezcano@linaro.org>
>> Date:   Wed Jun 12 15:08:48 2013 +0200
>>
>>    cpuidle: Make it clear that governors cannot be modules
>>
>>    cpufreq governors are defined as modules in the code, but the Kconfig
>>    options do not allow them to be built as modules.  This is not really
>>    a problem, but the cpuidle init ordering is: the cpuidle init
>>    functions (framework and driver) and then the governors.  That leads
>>    to some weirdness in the cpuidle framework.
>>
>>    Namely,  cpuidle_register_device() calls cpuidle_enable_device() which
>>    fails at the first attempt, because governors have not been registered
>>    yet.  When a governor is registered, the framework calls
>>    cpuidle_enable_device() again which runs __cpuidle_register_device()
>>    only then.  Of course, for that to work, the cpuidle_enable_device()
>>    return value has to be ignored by cpuidle_register_device().
>>
>>      Instead of having this cyclic call graph and relying on a positive
>>      side effects of the hackish back and forth cpuidle_enable_device()
>>      calls it is better to fix the cpuidle init ordering.
>>
>>      To that end, replace the module init code with postcore_initcall()
>>      so we have:
>>
>>       * cpuidle framework : core_initcall
>>       * cpuidle governors : postcore_initcall
>>       * cpuidle drivers   : device_initcall
>>
>>      and remove the corresponding module exit code as it is dead anyway
>>      (governors can't be built as modules).
>>
>>      [rjw: Changelog]
>>      Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
>>      Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>>
>> :040000 040000 45e7cb28411864c00b62296a7ff239f9f139d5d9 
>> 86a36b01dee52a77cfbab41a973b7a2bfa44ce34 M      drivers
>>
>>
>>
>> Reverting it makes the problem go away.

Ok, can you give more informations about it, I don't see the connection
between screen resolution and cpuidle.

It would be interesting here to understand the root problem.

Can you give the cpuidle configuration (used governor and driver) ? If
you don't revert the patch but disable cpuidle (eg. cpuidle.off=1 or
don't compile it in the kernel), does the bug issue still occur ?

Thanks
  -- Daniel


-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog


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

* Re: Bisected 3.12.0-rc1 Laptop screen goes blank during kernelboot
       [not found]     ` <52447A4C.3020000@xmsnet.nl>
@ 2013-09-27  7:05       ` Daniel Lezcano
  0 siblings, 0 replies; 4+ messages in thread
From: Daniel Lezcano @ 2013-09-27  7:05 UTC (permalink / raw)
  To: Hans de Bruin; +Cc: Aaron Lu, linux-acpi, linux-pci, Linux-pm mailing list

On 09/26/2013 08:17 PM, Hans de Bruin wrote:

[ ... ]

> todays kernel with problem:
>
> #
> # CPU Idle
> #
> CONFIG_CPU_IDLE=y
> # CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set
> CONFIG_CPU_IDLE_GOV_LADDER=y
> CONFIG_CPU_IDLE_GOV_MENU=y
> # CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
> CONFIG_INTEL_IDLE=y
>
>
> ==> /sys/devices/system/cpu/cpuidle/current_driver <==
> acpi_idle
>
> ==> /sys/devices/system/cpu/cpuidle/current_governor_ro <==
> menu
>
> [    0.056000] cpuidle: using governor ladder
> [    0.056000] cpuidle: using governor menu
>
>
>
> 3.8.0:
> bash-4.1# tail /sys/devices/system/cpu/cpuidle/*
> ==> /sys/devices/system/cpu/cpuidle/current_driver <==
> acpi_idle
>
> ==> /sys/devices/system/cpu/cpuidle/current_governor_ro <==
> menu
>
> [    1.759857] cpuidle: using governor ladder
> [    1.763849] scsi 0:0:0:0: Direct-Access     ATA      TOSHIBA MK4009GA
> BS11 PQ: 0 ANSI: 5
> [    1.767098] cpuidle: using governor menu

Thanks for the detailed information. Could you pastebin you kernel 
config file or send it to me privately so I can reproduce the problem ?


-- 
  <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog


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

end of thread, other threads:[~2013-09-27  7:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-20 17:13 Bisected 3.12.0-rc1 Laptop screen goes blank during kernelboot Hans de Bruin
2013-09-22  2:10 ` Aaron Lu
2013-09-25 12:29   ` Daniel Lezcano
     [not found]     ` <52447A4C.3020000@xmsnet.nl>
2013-09-27  7:05       ` Daniel Lezcano

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).