Messages in this thread | | | From | "Rafael J. Wysocki" <> | Date | Tue, 27 Mar 2018 23:09:35 +0200 | Subject | Re: [PATCH v2] cpuidle: poll_state: Add time limit to poll_idle() |
| |
On Tue, Mar 27, 2018 at 8:02 PM, Rik van Riel <riel@surriel.com> wrote: > On Tue, 2018-03-27 at 18:42 +0200, Rafael J. Wysocki wrote: >> On Thu, Mar 22, 2018 at 5:32 PM, Rik van Riel <riel@surriel.com> >> wrote: >> > On Wed, 2018-03-14 at 13:04 +0100, Peter Zijlstra wrote: >> > >> > > On x86 we don't have to use that time_check_counter thing, >> > > sched_clock() >> > > is really cheap, not sure if it makes sense on other platforms. >> > >> > Are you sure? I saw a 5-10% increase in CPU use, >> > for a constant query rate to a memcache style >> > workload, with v3 of this patch. >> >> I think I know what's going on. > > I ran my tests wrong, and the script never propagated > errors back to me. Sigh.
Again, no worries. :-)
> However, the poll_idle() that reads the TSC at a > reduced rate seems to perform better than the one > that reads the TSC every time it goes around the > loop.
OK
> The size of the idle loop seems to make a slight > difference, too. Having just one cpu_relax() in > the entire loop seems to be better than having > them all over the place.
OK
Thanks for the above observations, they match my understanding of what's happening.
I'll resend the patch to read the TSC at a reduced rate with a proper changelog and I'll tentatively add it to my pm-cpuidle branch.
Thanks!
| |