Re: s2idle breaks on machines without cpuidle support

From: Sudeep Holla
Date: Mon Feb 06 2023 - 05:21:30 EST


Hi Kazaki,

On Sun, Feb 05, 2023 at 12:27:47AM +0900, Kazuki wrote:
>
> Hi everyone,
>
> s2idle is blocked on machines without proper cpuidle support here
> in kernel/sched/idle.c:
>
> > if (cpuidle_not_available(drv, dev)) {
> > tick_nohz_idle_stop_tick();
>
> > default_idle_call();
> > goto exit_idle;
> > }
>
> > /*
> > * Suspend-to-idle ("s2idle") is a system state in which all user space
> > * has been frozen, all I/O devices have been suspended and the only
>
> However, there are 2 problems with this approach:
>
> 1. The suspend framework does not expect this, and continues to suspend the
> machine, which causes machines without proper cpuidle support to break when
> suspending

What do you mean by break ? More details on the observation would be helpful.

> 2. Suspend actually works on ARM64 machines even without proper
> cpuidle (PSCI cpuidle) since they support wfi, so the assumption here is wrong
> on such machines
>

Sorry I am bit confused here. Your point (2) contradicts the $subject.

> I'm not exactly sure how to figure this out, and my attempts have all led to an
> unbootable kernel, so I've cc'ed the relevant people and hopefully we can find a
> solution to this problem.
>

Again, since s2idle is userspace driven, I don't understand what do you
mean by unbootable kernel in the context of s2idle.

--
Regards,
Sudeep