intel_idle: Rescan "dead" SMT siblings during initialization
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 5 Jun 2025 15:06:08 +0000 (17:06 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sat, 7 Jun 2025 12:23:22 +0000 (14:23 +0200)
Make intel_idle_init() call arch_cpu_rescan_dead_smt_siblings() after
successfully registering intel_idle as the cpuidle driver so as to
allow the "dead" SMT siblings (if any) to go into deep idle states.

This is necessary for the processor to be able to reach deep package
C-states (like PC10) going forward which is requisite for reducing
power sufficiently in suspend-to-idle, among other things.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Link: https://patch.msgid.link/10669885.nUPlyArG6x@rjwysocki.net
drivers/idle/intel_idle.c

index 64ac4da0809400b1e1fb08ac79ea3fc70a4769e8..63565814c7e5d3a53e4fb7fc3ad18dd9e95386f6 100644 (file)
@@ -2507,6 +2507,8 @@ static int __init intel_idle_init(void)
        pr_debug("Local APIC timer is reliable in %s\n",
                 boot_cpu_has(X86_FEATURE_ARAT) ? "all C-states" : "C1");
 
+       arch_cpu_rescan_dead_smt_siblings();
+
        return 0;
 
 hp_setup_fail: