cpuidle: teo: Do not call tick_nohz_get_sleep_length() upfront
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 3 Aug 2023 21:07:41 +0000 (23:07 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 9 Aug 2023 17:58:05 +0000 (19:58 +0200)
commit21d28cd2fa5fc01ee83e64df838ecd72112c09b7
tree1b73023d7c0fe1fbb260b125d0d74336ab17fe06
parent9a41e16f11103c37263271ff2a433f2f3885fced
cpuidle: teo: Do not call tick_nohz_get_sleep_length() upfront

Because the cost of calling tick_nohz_get_sleep_length() may increase
in the future, reorder the code in teo_select() so it first uses the
statistics to pick up a candidate idle state and applies the utilization
heuristic to it and only then calls tick_nohz_get_sleep_length() to
obtain the sleep length value and refine the selection if necessary.

This change by itself does not cause tick_nohz_get_sleep_length() to
be called less often, but it prepares the code for subsequent changes
that will do so.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Kajetan Puchalski <kajetan.puchalski@arm.com>
Tested-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
drivers/cpuidle/governors/teo.c