[RFC PATCH 0/4] Support for passing runtime state idle time to TF-A
Sowjanya Komatineni
skomatineni at nvidia.com
Fri Apr 23 02:03:27 BST 2021
kernel test robot reported below errors for patch-2 of this series. Will
fix in next version to use div_u64() for nsec to usec conversion along
with the other feedback I may be receiving.
drivers/cpuidle/governors/menu.c:398: undefined reference to `__udivdi3'
ld: drivers/cpuidle/governors/menu.c:398: undefined reference to `__udivdi3'
ld: drivers/cpuidle/governors/menu.c:398: undefined reference to `__udivdi3'
ld: drivers/cpuidle/governors/menu.c:398: undefined reference to `__udivdi3'
Thanks
Sowjanya
On 4/22/21 1:30 PM, Sowjanya Komatineni wrote:
> Tegra194 and Tegra186 platforms use separate MCE firmware for CPUs which is
> in charge of deciding on state transition based on target state, state idle
> time, and some other Tegra CPU core cluster states information.
>
> Current PSCI specification don't have function defined for passing runtime
> state idle time predicted by governor (based on next events and state target
> residency) to ARM trusted firmware.
>
> With the support of adding new PSCI function to allow passing runtime state
> idle time from kernel to ARM trusted firmware, Tegra194 platforms can use
> generic psci cpuidle driver rather than having Tegra specific cpuidle driver.
>
> During Tegra specific cpuidle driver V1 review, Sudeep Holla from ARM also
> suggested to use generic cpuidle driver by generalizing the need of runtime
> state idle time.
>
> So had internal discussion between ARM and NVIDIA on adding new PSCI function
> to allow passing runtime state idle time from kernel to TF-A through PSCI and
> once this implementation is accepted by upstream, ARM will look into further
> to update PSCI specification for this new PSCI function.
>
> So sending these patches as RFC as new PSCI function added in this series is
> not part of PSCI specification and once this implementation is accepted by ARM
> and upstream community, ARM can help to take this forward to add to PSCI
> specification.
>
> To keep the backward compatibility we can't update CPU_SUSPEND function to pass
> state idle time argument. So added seperate function for passing state idle time
> and serializing this with cpu suspend state enter.
>
> Once this approach is agreed, we can either use this way of separate PSCI
> function for passing state idle time or with PSCI specification update we can
> use same CPU_SUSPEND function with extra argument for state idle time which can
> be decided later for final patches based on discussion with ARM.
>
>
> Sowjanya Komatineni (4):
> firmware/psci: add support for PSCI function SET_STATE_IDLE_TIME
> cpuidle: menu: add idle_time to cpuidle_state
> cpuidle: psci: pass state idle time before state enter callback
> arm64: dts: tegra194: Add CPU idle states
>
> arch/arm64/boot/dts/nvidia/tegra194.dtsi | 19 +++++++++++++++++++
> drivers/cpuidle/cpuidle-psci.c | 11 +++++++++++
> drivers/cpuidle/governors/menu.c | 7 ++++++-
> drivers/firmware/psci/psci.c | 9 +++++++++
> include/linux/cpuidle.h | 1 +
> include/linux/psci.h | 1 +
> include/uapi/linux/psci.h | 2 ++
> 7 files changed, 49 insertions(+), 1 deletion(-)
>
More information about the linux-arm-kernel
mailing list