Messages in this thread | | | Subject | Re: [PATCH v3] cpuidle: poll_state: Add time limit to poll_idle() | From | Rik van Riel <> | Date | Mon, 26 Mar 2018 12:32:12 -0400 |
| |
On Sun, 2018-03-25 at 23:34 +0200, Rafael J. Wysocki wrote: > On Sunday, March 25, 2018 10:15:52 PM CEST Rik van Riel wrote: > > > > I plan to try two more things: > > > > 1) Disable polling on SMT systems, with > > the idea that putting one thread to > > sleep with monitor/mwait in C1 will > > allow the other thread to run faster. > > Sounds plausible.
Plausible, but wrong. Tests showed that CPU use during the peak load of this test increased from about 71% to about 78% with this change, or just under 10% increase relative to the baseline.
Coincidentally, that is the same CPU use increase I have seen with the poll_idle() changes. Not sure if that means anything...
> > 2) Insert more cpu_relax() calls into the > > main loop, so the CPU core spends more > > of its time in cpu_relax() and less > > time doing other things: > > Well, maybe it's a matter of doing cpu_relax() between any other bits > of > significant computation in there:
I tried that, as well, and some other variations.
Every single change to poll_idle() that I tried seems to result in a 9-10% relative increase in CPU use during the peak load of the test.
During the busiest parts of the load, every CPU sees on the order of 20k context switches a second.
kind regards,
Rik -- All Rights Reversed.[unhandled content-type:application/pgp-signature] | |