Messages in this thread | | | Date | Thu, 12 Jan 2023 12:09:24 +0100 | From | Sebastian Andrzej Siewior <> | Subject | Re: [PATCH v2 3/5] cpuidle: psci: Do not suspend topology CPUs on PREEMPT_RT |
| |
On 2022-12-19 16:15:01 [+0100], Krzysztof Kozlowski wrote: > diff --git a/drivers/cpuidle/cpuidle-psci.c b/drivers/cpuidle/cpuidle-psci.c > index 57bc3e3ae391..9d971cc4b12b 100644 > --- a/drivers/cpuidle/cpuidle-psci.c > +++ b/drivers/cpuidle/cpuidle-psci.c > @@ -72,7 +72,7 @@ static int __psci_enter_domain_idle_state(struct cpuidle_device *dev, > ct_irq_enter_irqson(); > if (s2idle) > dev_pm_genpd_suspend(pd_dev); > - else > + else if (!IS_ENABLED(CONFIG_PREEMPT_RT)) > pm_runtime_put_sync_suspend(pd_dev);
So based on the commit description you run into a sleeping lock in pm_runtime_put_sync_suspend() while the CPU is in an IRQ-off region. Why is it okay to skip it on PREEMPT_RT?
> ct_irq_exit_irqson(); >
Sebastian
| |