• Alex Shi's avatar
    cpuidle / ACPI: recover percpu ACPI processor cstate · 6240a10d
    Alex Shi authored
    Commit ac3ebafa "ACPI / idle: remove usage of the statedata"
    changed the percpu processor cstate to a unified cstate in ACPI idle.
    That caused all our NHM boxes to boot hang or panic.
    
    2178751 Task dump for CPU 1:
    	2178752 swapper/1       R  running task     6736     0      1 0x00000000
    	2178753  ffff8801e8029dc8 ffffffff8101cf96 ffff8801e8029e28 ffffffff813d294b
    	2178754  0000000000000f99 0000000000000003 00000000003cf654 0000000025c17d03
    	2178755  ffff8801e8029e38 ffff8801e74fc000 00000002590dc5c4 ffffffff8163cdb0
    	2178756 Call Trace:
    	2178757  [<ffffffff8101cf96>] ? acpi_processor_ffh_cstate_enter+0x2d/0x2f
    	2178758  [<ffffffff813d294b>] acpi_idle_enter_bm+0x1b1/0x236
    	2178759  [<ffffffff8163cdb0>] ? disable_cpuidle+0x10/0x10
    	2178760  [<ffffffff8163cdc2>] cpuidle_enter+0x12/0x14
    	2178761  [<ffffffff8163d286>] cpuidle_wrap_enter+0x2f/0x6d
    	2178762  [<ffffffff8163d2d4>] cpuidle_enter_tk+0x10/0x12
    	2178763  [<ffffffff8163cdd6>] cpuidle_enter_state+0x12/0x3a
    	2178764  [<ffffffff8163d4a7>] cpuidle_idle_call+0xe8/0x161
    	2178765  [<ffffffff81008d99>] cpu_idle+0x5e/0xa4
    	2178766  [<ffffffff8174c6c1>] start_secondary+0x1a9/0x1ad
    	2178767 Task dump for CPU 2:
    
    In fact, the ACPI idle is based on the assumption of difference percpu
    cstate structures that are necessary for the implementation to work
    cprrectly.  A unique acpi_processor_cx is not sifficient by far.
    
    This patch is just a quick fix re-introducing the percpu cstates.
    
    If someone really wants to unify the ACPI cstates, please make sure
    that the whole software infrastructure is changed and take hardware
    as well as many different kinds of BIOS settings into account.
    
    [rjw: Changelog]
    Reported-by: default avatarLKP project <lkp@linux.intel.com>
    Reported-by: default avatarXie ChanglongX <changlongx.xie@intel.com>
    Tested-by: default avatarYinghai Lu <yinghai@kernel.org>
    Signed-off-by: default avatarAlex Shi <alex.shi@intel.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    6240a10d
processor_idle.c 31.3 KB