Re: [PATCH v3] cpuidle: poll_state: Add time limit to poll_idle()

Rik van Riel
2018-03-26T16:32:27Z

[-- Attachment #1: Type: text/plain, Size: 1350 bytes --]

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.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 488 bytes --]