Skip to content

Commit fbe409d

Browse files
AboorvaDevarajanmaddy-kerneldev
authored andcommitted
powerpc/powernv: Enable cpuidle state detection for POWER11
Extend cpuidle state detection to POWER11 by updating the PVR check. This ensures POWER11 correctly recognizes supported stop states, similar to POWER9 and POWER10. Without Patch: (Power11 - PowerNV systems) CPUidle driver: powernv_idle CPUidle governor: menu analyzing CPU 927: Number of idle states: 1 Available idle states: snooze snooze: Flags/Description: snooze Latency: 0 Usage: 251631 Duration: 207497715900 -- With Patch: (Power11 - PowerNV systems) CPUidle driver: powernv_idle CPUidle governor: menu analyzing CPU 959: Number of idle states: 4 Available idle states: snooze stop0_lite stop0 stop3 snooze: Flags/Description: snooze Latency: 0 Usage: 2 Duration: 33 stop0_lite: Flags/Description: stop0_lite Latency: 1 Usage: 1 Duration: 52 stop0: Flags/Description: stop0 Latency: 10 Usage: 13 Duration: 1920 stop3: Flags/Description: stop3 Latency: 45 Usage: 381 Duration: 21638478 Signed-off-by: Aboorva Devarajan <aboorvad@linux.ibm.com> Tested-by: Madadi Vineeth Reddy <vineethr@linux.ibm.com> Reviewed-by: Madadi Vineeth Reddy <vineethr@linux.ibm.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20250908085123.216780-1-aboorvad@linux.ibm.com
1 parent b94b735 commit fbe409d

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

  • arch/powerpc/platforms/powernv

arch/powerpc/platforms/powernv/idle.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1171,8 +1171,9 @@ static void __init pnv_arch300_idle_init(void)
11711171
u64 max_residency_ns = 0;
11721172
int i;
11731173

1174-
/* stop is not really architected, we only have p9,p10 drivers */
1175-
if (!pvr_version_is(PVR_POWER10) && !pvr_version_is(PVR_POWER9))
1174+
/* stop is not really architected, we only have p9,p10 and p11 drivers */
1175+
if (!pvr_version_is(PVR_POWER9) && !pvr_version_is(PVR_POWER10) &&
1176+
!pvr_version_is(PVR_POWER11))
11761177
return;
11771178

11781179
/*
@@ -1189,8 +1190,8 @@ static void __init pnv_arch300_idle_init(void)
11891190
struct pnv_idle_states_t *state = &pnv_idle_states[i];
11901191
u64 psscr_rl = state->psscr_val & PSSCR_RL_MASK;
11911192

1192-
/* No deep loss driver implemented for POWER10 yet */
1193-
if (pvr_version_is(PVR_POWER10) &&
1193+
/* No deep loss driver implemented for POWER10 and POWER11 yet */
1194+
if ((pvr_version_is(PVR_POWER10) || pvr_version_is(PVR_POWER11)) &&
11941195
state->flags & (OPAL_PM_TIMEBASE_STOP|OPAL_PM_LOSE_FULL_CONTEXT))
11951196
continue;
11961197

0 commit comments

Comments
 (0)