Intel_idle on 10th Ice Lake

Is there any support for intel_idle on Ice Lake new CPUs?
I got this on Dell XPS 7390 2in1 with i7 1065g7 :

root@arazu~ # dmesg | grep intel_idle
[    0.913169] calling  intel_idle_init+0x0/0x275 @ 1
[    0.913171] intel_idle: does not run on family 6 model 126
[    0.913172] initcall intel_idle_init+0x0/0x275 returned -19 after 1 usecs

Which kernel do you have running? uname -r

Linux arazu 5.5.10-921.native #1 SMP Wed Mar 18 16:03:14 PDT 2020 x86_64 GNU/Linux

Serg Podtynnyi

I searched through https://github.com/torvalds/linux/blob/b74b991fb8b9d642b8fea20d6245c6e19125a305/drivers/idle/intel_idle.c and do not see any mention for Ice Lake C-States, only SkyLake.
Maybe we could kindly ask Len Brown or Rafael J. Wysocki for supporting Ice Lake c-states ?

This my turbostat report:

turbostat version 19.08.31 - Len Brown <lenb@kernel.org>
CPUID(0): GenuineIntel 0x1b CPUID levels; 0x80000008 xlevels; family:model:stepping 0x6:7e:5 (6:126:5)
CPUID(1): SSE3 MONITOR - EIST TM2 TSC MSR ACPI-TM HT TM
CPUID(6): APERF, TURBO, DTS, PTM, HWP, No-HWPnotify, HWPwindow, HWPepp, HWPpkg, EPB
cpu3: MSR_IA32_MISC_ENABLE: 0x00850089 (TCC EIST MWAIT PREFETCH TURBO)
CPUID(7): SGX
cpu3: MSR_IA32_FEATURE_CONTROL: 0x00020005 (Locked )
CPUID(0x15): eax_crystal: 2 ebx_tsc: 78 ecx_crystal_hz: 38400000
TSC: 1497 MHz (38400000 Hz * 78 / 2 / 1000000)
CPUID(0x16): base_mhz: 1500 max_mhz: 3900 bus_mhz: 100
cpu3: MSR_MISC_PWR_MGMT: 0x00401c40 (ENable-EIST_Coordination DISable-EPB DISable-OOB)
RAPL: 17476 sec. Joule Counter Range, at 15 Watts
cpu3: MSR_PLATFORM_INFO: 0x4043cf1810f00
4 * 100.0 = 400.0 MHz max efficiency frequency
15 * 100.0 = 1500.0 MHz base frequency
cpu3: MSR_IA32_POWER_CTL: 0x0024005f (C1E auto-promotion: ENabled)
cpu3: MSR_TURBO_RATIO_LIMIT: 0x2323232323232627
35 * 100.0 = 3500.0 MHz max turbo 8 active cores
35 * 100.0 = 3500.0 MHz max turbo 7 active cores
35 * 100.0 = 3500.0 MHz max turbo 6 active cores
35 * 100.0 = 3500.0 MHz max turbo 5 active cores
35 * 100.0 = 3500.0 MHz max turbo 4 active cores
35 * 100.0 = 3500.0 MHz max turbo 3 active cores
38 * 100.0 = 3800.0 MHz max turbo 2 active cores
39 * 100.0 = 3900.0 MHz max turbo 1 active cores
cpu3: MSR_CONFIG_TDP_NOMINAL: 0x0000000d (base_ratio=13)
cpu3: MSR_CONFIG_TDP_LEVEL_1: 0x000a0060 (PKG_MIN_PWR_LVL1=0 PKG_MAX_PWR_LVL1=0 LVL1_RATIO=10 PKG_TDP_LVL1=96)
cpu3: MSR_CONFIG_TDP_LEVEL_2: 0x000f00c8 (PKG_MIN_PWR_LVL2=0 PKG_MAX_PWR_LVL2=0 LVL2_RATIO=15 PKG_TDP_LVL2=200)
cpu3: MSR_CONFIG_TDP_CONTROL: 0x00000000 ( lock=0)
cpu3: MSR_TURBO_ACTIVATION_RATIO: 0x0000000c (MAX_NON_TURBO_RATIO=12 lock=0)
cpu3: MSR_PKG_CST_CONFIG_CONTROL: 0x74008008 (UNdemote-C1, demote-C1, locked, pkg-cstate-limit=8 (unlimited))
cpu3: POLL: CPUIDLE CORE POLL IDLE
cpu3: C1: ACPI FFH MWAIT 0x0
cpu3: C2: ACPI FFH MWAIT 0x31
cpu3: C3: ACPI FFH MWAIT 0x60
cpu3: cpufreq driver: intel_pstate
cpu3: cpufreq governor: performance
cpufreq intel_pstate no_turbo: 0
cpu3: MSR_MISC_FEATURE_CONTROL: 0x00000000 (L2-Prefetch L2-Prefetch-pair L1-Prefetch L1-IP-Prefetch)
cpu0: MSR_PM_ENABLE: 0x00000001 (HWP)
cpu0: MSR_HWP_CAPABILITIES: 0x010d0d27 (high 39 guar 13 eff 13 low 1)
cpu0: MSR_HWP_REQUEST: 0x00002727 (min 39 max 39 des 0 epp 0x0 window 0x0 pkg 0x0)
cpu0: MSR_HWP_REQUEST_PKG: 0x8000ff01 (min 1 max 255 des 0 epp 0x80 window 0x0)
cpu0: MSR_HWP_STATUS: 0x00000000 (No-Guaranteed_Perf_Change, No-Excursion_Min)
cpu0: MSR_IA32_ENERGY_PERF_BIAS: 0x00000006 (balanced)
cpu0: MSR_RAPL_POWER_UNIT: 0x000a0e03 (0.125000 Watts, 0.000061 Joules, 0.000977 sec.)
cpu0: MSR_PKG_POWER_INFO: 0x00000078 (15 W TDP, RAPL 0 - 0 W, 0.000000 sec.)
cpu0: MSR_PKG_POWER_LIMIT: 0x42017000dc80c8 (UNlocked)
cpu0: PKG Limit #1: ENabled (25.000000 Watts, 28.000000 sec, clamp DISabled)
cpu0: PKG Limit #2: DISabled (46.000000 Watts, 0.002441* sec, clamp DISabled)
cpu0: MSR_DRAM_POWER_LIMIT: 0x5400de00000000 (UNlocked)
cpu0: DRAM Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu0: MSR_PP0_POLICY: 0
cpu0: MSR_PP0_POWER_LIMIT: 0x00000000 (UNlocked)
cpu0: Cores Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu0: MSR_PP1_POLICY: 0
cpu0: MSR_PP1_POWER_LIMIT: 0x00000000 (UNlocked)
cpu0: GFX Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x00640000 (100 C)
cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x88200800 (68 C)
cpu0: MSR_IA32_PACKAGE_THERM_INTERRUPT: 0x00000003 (100 C, 100 C)
cpu3: MSR_PKGC3_IRTL: 0x00000000 (NOTvalid, 0 ns)
cpu3: MSR_PKGC6_IRTL: 0x00000000 (NOTvalid, 0 ns)
cpu3: MSR_PKGC7_IRTL: 0x00000000 (NOTvalid, 0 ns)
cpu3: MSR_PKGC8_IRTL: 0x00000000 (NOTvalid, 0 ns)
cpu3: MSR_PKGC9_IRTL: 0x00000000 (NOTvalid, 0 ns)
cpu3: MSR_PKGC10_IRTL: 0x00000000 (NOTvalid, 0 ns)

I already did. Might take a few days to get a reply.

OK, thank you. Looking forward for reply.

Looks like kernel 5.6 should fix this - and it’s not far around the corner.

18734958e9bfb

Got it, I checked this commit recently, but I did’ not highlight the idea, now it’s clear. Thank you, waiting for new mainline release then.

Hi,
Indeed, the kernel 5.6 adds support for the IceLake family to the intel_idle driver. However, the intel_idle driver can only find ACPI states, such as C0_ACPI, C1_ACPI, and C3_ACPI on my system.
I took a look at the drivers/idle/intel_idle.c source file of the mainline kernel 5.7.7 and did not find any mention, states table, whatsoever to the IceLake family.
Can you confirm that your idle states are being gathered by the ACPI states table by checking into the idle tab of the powertop utility?
I have a i5-1035g1 on a Lenovo s740 14iil system.
Regards,.