Thread (4 messages) 4 messages, 2 authors, 2021-10-25

Re: problem in changing from active to passive mode

From: Julia Lawall <julia.lawall@inria.fr>
Date: 2021-10-25 05:17:53
Also in: lkml


On Sun, 24 Oct 2021, Doug Smythies wrote:
On Sun, Oct 24, 2021 at 6:03 AM Julia Lawall [off-list ref] wrote:
quoted
Hello,
Hi,
quoted
I have an Intel 6130 and an Intel 5218.  These machines have HWP.  They
are configured to boot with active mode and performance as the power
governor.  Since the following commit:

commit a365ab6b9dfbaf8fb4fb4cd5d8a4c55dc4fb8b1c (HEAD, refs/bisect/bad)
Author: Rafael J. Wysocki [off-list ref]
Date:   Mon Dec 14 21:09:26 2020 +0100

    cpufreq: intel_pstate: Implement the ->adjust_perf() callback

If I change te mode from active to passive, I have the impression that the
machine is no longer able to raise the core frequencies above the minimum.
Changing the mode back to active has no effect.  This persists if I reboot
to another kernel.

Here are some runs that illustrate the problem.  I have tested the
benchmark many times, and apart from this issue its performance is stable.
Could you also list the CPU frequency scaling governor being used in your
tests. I know you mentioned the performance governor above, but it
changes between active/passive/active transitions.
Performance.  I only booted and then changed to passive and then changed
back.

I originally saw the problem when changeing from active-performance to
passive-schedutil.  But seeing the problem doesn't require changing the
governor to schedutil.
Example from my test computer:

Note 1: It is only for brevity of this e-mail that I only list for one CPU.
Obviously, I looked at all CPUs when doing this.

Note 2: The test example and conditions have been cherry picked
for dramatic effect.

$ cat /sys/devices/system/cpu/cpu6/cpufreq/scaling_driver
intel_pstate
$ cat /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
performance
$ cat /sys/devices/system/cpu/intel_pstate/status
active
$ ./ping-pong-many 100000 500 10
1418.0660 usecs/loop. (less is better)

$ echo passive | sudo tee /sys/devices/system/cpu/intel_pstate/status
passive
So converting to passive send you directly to schedutil?  I didn't check
on that - I have always changed to passive and then explicitly change to
schedutil.
$ cat /sys/devices/system/cpu/cpu6/cpufreq/scaling_driver
intel_cpufreq
$ cat /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
schedutil
$ cat /sys/devices/system/cpu/intel_pstate/status
passive
$ ./ping-pong-many 100000 500 10
5053.6355 usecs/loop.

$ echo active | sudo tee /sys/devices/system/cpu/intel_pstate/status
active
$ cat /sys/devices/system/cpu/cpu6/cpufreq/scaling_driver
intel_pstate
$ cat /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
powersave
$ cat /sys/devices/system/cpu/intel_pstate/status
active
$ ./ping-pong-many 100000 500 10
2253.5833 usecs/loop.
So now you are twice as slow, but don't know how much this benchmark
varies.  I suspect that on my machine I would get the 5000 number. I also
traced the frequencies and they were at the lowest point (1GHz) almost all
of the time.

I'll redo my tests and collect all of this information.

thanks,
julia
... Doug
quoted
Intel 6130:

root@yeti-2:/tmp# java -jar dacapo-9.12-MR1-bach.jar avrora -n 3
===== DaCapo 9.12-MR1 avrora starting warmup 1 =====
===== DaCapo 9.12-MR1 avrora completed warmup 1 in 3420 msec =====
===== DaCapo 9.12-MR1 avrora starting warmup 2 =====
===== DaCapo 9.12-MR1 avrora completed warmup 2 in 2536 msec =====
===== DaCapo 9.12-MR1 avrora starting =====
===== DaCapo 9.12-MR1 avrora PASSED in 2502 msec =====
root@yeti-2:/tmp# echo passive | tee /sys/devices/system/cpu/intel_pstate/status
passive
root@yeti-2:/tmp#
root@yeti-2:/tmp# echo active | tee /sys/devices/system/cpu/intel_pstate/status
active
root@yeti-2:/tmp# java -jar dacapo-9.12-MR1-bach.jar avrora -n 3
===== DaCapo 9.12-MR1 avrora starting warmup 1 =====
===== DaCapo 9.12-MR1 avrora completed warmup 1 in 7561 msec =====
===== DaCapo 9.12-MR1 avrora starting warmup 2 =====
===== DaCapo 9.12-MR1 avrora completed warmup 2 in 6528 msec =====
===== DaCapo 9.12-MR1 avrora starting =====
===== DaCapo 9.12-MR1 avrora PASSED in 7796 msec =====

-------------------------------------------------------------------------

Intel 5218:

root@troll-2:/tmp# java -jar dacapo-9.12-MR1-bach.jar avrora -n 3
===== DaCapo 9.12-MR1 avrora starting warmup 1 =====
===== DaCapo 9.12-MR1 avrora completed warmup 1 in 2265 msec =====
===== DaCapo 9.12-MR1 avrora starting warmup 2 =====
===== DaCapo 9.12-MR1 avrora completed warmup 2 in 2033 msec =====
===== DaCapo 9.12-MR1 avrora starting =====
===== DaCapo 9.12-MR1 avrora PASSED in 2068 msec =====
root@troll-2:/tmp# echo passive | tee /sys/devices/system/cpu/intel_pstate/status
passive
root@troll-2:/tmp# echo active | tee /sys/devices/system/cpu/intel_pstate/statusactive
root@troll-2:/tmp# java -jar dacapo-9.12-MR1-bach.jar avrora -n 3
===== DaCapo 9.12-MR1 avrora starting warmup 1 =====
===== DaCapo 9.12-MR1 avrora completed warmup 1 in 4363 msec =====
===== DaCapo 9.12-MR1 avrora starting warmup 2 =====
===== DaCapo 9.12-MR1 avrora completed warmup 2 in 4486 msec =====
===== DaCapo 9.12-MR1 avrora starting =====
===== DaCapo 9.12-MR1 avrora PASSED in 3417 msec =====

-------------------------------------------------------------------------

thanks,
julia
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help