On Thu, Mar 30, 2023 at 02:12:49PM +0530, Maulik Shah wrote: > A switch from OSI to PC mode is only possible if all CPUs other than the > calling one are OFF, either through a call to CPU_OFF or not yet booted. > As per the spec, all cores are in one of the following states: - Running - OFF, either through a call to CPU_OFF or not yet booted - Suspended, through a call to CPU_DEFAULT_SUSPEND Better to provide full information. > Currently OSI mode is enabled before power domains are created. In cases > where CPUidle states are not using hierarchical CPU topology the bail out > path tries to switch back to PC mode which gets denied by firmware since > other CPUs are online at this point and creates inconsistent state as > firmware is in OSI mode and Linux in PC mode. > OK what is the issue if the other cores are online ? As long as they are running, it is allowed in the spec, so your statement is incorrect. Is CPUidle enabled before setting the OSI mode. I see only that can cause issue as we don't use CPU_DEFAULT_SUSPEND. If idle is not yet enabled, it shouldn't be a problem. -- Regards, Sudeep