Messages in this thread Patch in this message | | | From | Jon Kohler <> | Subject | [PATCH] intel_idle: add CPUIDLE_FLAG_IRQ_ENABLE to SPR C1 and C1E | Date | Thu, 30 Jun 2022 15:43:09 -0400 |
| |
Add CPUIDLE_FLAG_IRQ_ENABLE to spr_cstates C1 and C1E, which will allow local IRQs to be enabled during fast idle transitions on SPR.
Note: Enabling this for both C1 and C1E is slightly different than the approach for SKX/ICX, where CPUIDLE_FLAG_IRQ_ENABLE is only enabled on C1; however, given that SPR target/exit latency is 1/1 for c1 and 2/4 for C1E, respectively, which is slower than C1 for SKX, it seems prudent to now enable it on both states.
This is also important as on SPR it is possible for only C1 or only C1E to be enabled (i.e. one of them would be disabled), so only enabling C1 would short change C1E-only configurations.
Fixes: 9edf3c0ffef0 ("intel_idle: add SPR support") Signed-off-by: Jon Kohler <jon@nutanix.com> --- drivers/idle/intel_idle.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c index 424ef470223d..f51857cddf2b 100644 --- a/drivers/idle/intel_idle.c +++ b/drivers/idle/intel_idle.c @@ -893,7 +893,7 @@ static struct cpuidle_state spr_cstates[] __initdata = { { .name = "C1", .desc = "MWAIT 0x00", - .flags = MWAIT2flg(0x00), + .flags = MWAIT2flg(0x00) | CPUIDLE_FLAG_IRQ_ENABLE, .exit_latency = 1, .target_residency = 1, .enter = &intel_idle, @@ -902,7 +902,8 @@ static struct cpuidle_state spr_cstates[] __initdata = { .name = "C1E", .desc = "MWAIT 0x01", .flags = MWAIT2flg(0x01) | CPUIDLE_FLAG_ALWAYS_ENABLE | - CPUIDLE_FLAG_UNUSABLE, + CPUIDLE_FLAG_UNUSABLE | + CPUIDLE_FLAG_IRQ_ENABLE, .exit_latency = 2, .target_residency = 4, .enter = &intel_idle, -- 2.30.1 (Apple Git-130)
| |