Messages in this thread | | | From | "Rafael J. Wysocki" <> | Date | Wed, 10 Oct 2018 09:14:49 +0200 | Subject | Re: [PATCH 0/6] cpuidle: menu: Fixes, optimizations and cleanups |
| |
On Wed, Oct 10, 2018 at 2:02 AM Doug Smythies <dsmythies@telus.net> wrote: > > On 2018.10.09 03:43 Rafael J. Wysocki wrote: > > ...[snip]... > > > While at it, could you test the appended patch > > (on top of the previous 8) for me please? > > > > I think that this code can be simplified now. > > > > --- > > drivers/cpuidle/governors/menu.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > Index: linux-pm/drivers/cpuidle/governors/menu.c > > =================================================================== > > --- linux-pm.orig/drivers/cpuidle/governors/menu.c > > +++ linux-pm/drivers/cpuidle/governors/menu.c > > @@ -371,12 +371,12 @@ static int menu_select(struct cpuidle_dr > > if (s->target_residency > predicted_us) { > > /* > > * Use a physical idle state, not busy polling, unless > > - * a timer is going to trigger really really soon. > > + * a timer is going to trigger soon enough. > > */ > > if ((drv->states[idx].flags & CPUIDLE_FLAG_POLLING) && > > - i == idx + 1 && latency_req > s->exit_latency && > > - data->next_timer_us > max_t(unsigned int, 20, > > - s->target_residency)) { > > + s->exit_latency <= latency_req && > > + s->target_residency <= data->next_timer_us) { > > + predicted_us = s->target_residency; > > idx = i; > > break; > > } > > It seems to work fine. > I was unable to detect any difference between the 8 patch set and with > this additional patch for any of the tests that I ran. (at least beyond > noise and/or experimental error.)
Great, thank you!
Cheers, Rafael
| |