Messages in this thread | | | From | "Doug Smythies" <> | Subject | RE: [PATCH 0/6] cpuidle: menu: Fixes, optimizations and cleanups | Date | Tue, 9 Oct 2018 17:02:36 -0700 |
| |
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.)
Note: I didn't publish any of the pretty graphs.
... Doug
| |