Hi All, As follows from the discussion triggered by the patch at
https://lore.kernel.org/lkml/20210311123708.23501-2-frede...@kernel.org/ the cpuidle governors using tick_nohz_get_sleep_length() assume it to always return positive values which is not correct in general. To address this issues, first document the fact that negative values can be returned by tick_nohz_get_sleep_length() (patch [1/5]). Then, in preparation for more substantial changes, change the data type of two fields in struct cpuidle_state to s64 so they can be used in computations involving negative numbers safely (patch [2/5]). Next, adjust the teo governor a bit so that negative "sleep length" values are counted like zero by it (patch [3/5]) and modify it so as to avoid mishandling negative "sleep length" values (patch [4/5]). Finally, make the menu governor take negative "sleep length" values into account properly (patch [5/5]). Please see the changelogs of the patches for details. Thanks!