Message ID | 3327997.aeNJFYEL58@rjwysocki.net |
---|---|
State | New |
Headers | show |
Series | cpuidle: teo: Cleanups and very frequent wakeups handling update | expand |
On 1/13/25 18:40, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > Local variable prev_intercept_idx in teo_select() is redundant becase s/becase/because > it cannot be 0 when candidate state index is 0. > > The prev_intercept_idx value is the index of the deepest enabled idle > state, so if it is 0, state 0 is the deepest enabled idle state, in > which case it must be the only enabled idle state, but then teo_select() > would have returned early before initializing prev_intercept_idx. > > Thus prev_intercept_idx must be nonzero and the check of it against 0 > always passes, so it can be dropped altogether. > > No intentional functional impact. > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > --- > drivers/cpuidle/governors/teo.c | 15 +++++---------- > 1 file changed, 5 insertions(+), 10 deletions(-) > > --- a/drivers/cpuidle/governors/teo.c > +++ b/drivers/cpuidle/governors/teo.c > @@ -292,7 +292,6 @@ > unsigned int hit_sum = 0; > int constraint_idx = 0; > int idx0 = 0, idx = -1; > - int prev_intercept_idx; > s64 duration_ns; > int i; > > @@ -370,7 +369,6 @@ > * all of the deeper states, a shallower idle state is likely to be a > * better choice. > */ > - prev_intercept_idx = idx; > if (2 * idx_intercept_sum > cpu_data->total - idx_hit_sum) { > int first_suitable_idx = idx; > > @@ -437,14 +435,11 @@ > idx = constraint_idx; > > if (!idx) { > - if (prev_intercept_idx) { > - /* > - * Query the sleep length to be able to count the wakeup > - * as a hit if it is caused by a timer. > - */ > - duration_ns = tick_nohz_get_sleep_length(&delta_tick); > - cpu_data->sleep_length_ns = duration_ns; > - } > + /* > + * Query the sleep length to be able to count the wakeup as a > + * hit if it is caused by a timer. > + */ > + cpu_data->sleep_length_ns = tick_nohz_get_sleep_length(&delta_tick); > goto out_tick; Just like the previous one: Reviewed-by: Christian Loehle <christian.loehle@arm.com>
--- a/drivers/cpuidle/governors/teo.c +++ b/drivers/cpuidle/governors/teo.c @@ -292,7 +292,6 @@ unsigned int hit_sum = 0; int constraint_idx = 0; int idx0 = 0, idx = -1; - int prev_intercept_idx; s64 duration_ns; int i; @@ -370,7 +369,6 @@ * all of the deeper states, a shallower idle state is likely to be a * better choice. */ - prev_intercept_idx = idx; if (2 * idx_intercept_sum > cpu_data->total - idx_hit_sum) { int first_suitable_idx = idx; @@ -437,14 +435,11 @@ idx = constraint_idx; if (!idx) { - if (prev_intercept_idx) { - /* - * Query the sleep length to be able to count the wakeup - * as a hit if it is caused by a timer. - */ - duration_ns = tick_nohz_get_sleep_length(&delta_tick); - cpu_data->sleep_length_ns = duration_ns; - } + /* + * Query the sleep length to be able to count the wakeup as a + * hit if it is caused by a timer. + */ + cpu_data->sleep_length_ns = tick_nohz_get_sleep_length(&delta_tick); goto out_tick; }