intel_pstate_init(...) ...cpufreq_online(...) down_write(&policy->rwsem); ... cpufreq_init_policy(policy); ...intel_pstate_hwp_set(); get_online_cpus(); // Temporarily locks cpu_hotplug.lock ... up_write(&policy->rwsem); pm_suspend(...) ...disable_nonboot_cpus() _cpu_down() cpu_hotplug_begin(); // Locks cpu_hotplug.lock __cpu_notify(CPU_DOWN_PREPARE, ...); ...cpufreq_offline_prepare(); down_write(&policy->rwsem); // Locks policy->rwsem FULL TRACE FOR P-STATE INIT get_online_cpus+0x90/0xa0 ? get_online_cpus+0x2d/0xa0 intel_pstate_hwp_set+0x40/0x150 intel_pstate_set_policy+0x135/0x170 cpufreq_set_policy+0xdb/0x3f0 cpufreq_init_policy+0x6a/0xc0 ? cpufreq_update_policy+0x1e0/0x1e0 cpufreq_online+0x314/0xad0 cpufreq_add_dev+0x5a/0x80 subsys_interface_register+0xa7/0xf0 ? _raw_write_unlock_irqrestore+0x3d/0x60 cpufreq_register_driver+0x147/0x210 intel_pstate_init+0x35b/0x481 ? cpufreq_gov_dbs_init+0x12/0x12 do_one_initcall+0xa6/0x1d0 kernel_init_freeable+0x113/0x199 ? rest_init+0x140/0x140 kernel_init+0x9/0xe0 ret_from_fork+0x3f/0x70 ? rest_init+0x140/0x140 FULL TRACE FOR SUSPEND lock_acquire+0xc3/0x1d0 ? cpufreq_offline_prepare+0x92/0x2d0 down_write+0x3f/0x70 ? cpufreq_offline_prepare+0x92/0x2d0 cpufreq_offline_prepare+0x92/0x2d0 cpufreq_cpu_callback+0x45/0x50 notifier_call_chain+0x39/0xa0 __raw_notifier_call_chain+0x9/0x10 _cpu_down+0x9e/0x330 ? vprintk_emit+0x2cb/0x610 ? vprintk_emit+0x324/0x610 ? vprintk_default+0x1a/0x20 disable_nonboot_cpus+0xc0/0x350 suspend_devices_and_enter+0x409/0xb30 pm_suspend+0x53f/0x8c0 state_store+0x77/0xe0 kobj_attr_store+0xf/0x20 sysfs_kf_write+0x40/0x50 kernfs_fop_write+0x13c/0x180 __vfs_write+0x23/0xe0 ? percpu_down_read+0x52/0x90 ? __sb_start_write+0xb2/0xf0 ? __sb_start_write+0xb2/0xf0 vfs_write+0xa2/0x190 ? __fget_light+0x6a/0x90 SyS_write+0x44/0xb0 entry_SYSCALL_64_fastpath+0x16/0x73 # EOF