Re: problem in changing from active to passive mode

From: Julia Lawall
Date: Tue Oct 26 2021 - 11:13:25 EST


The problem is illustrated by the attached graphs. These graphs on the
odd numbered pages show the frequency of each core measures at every clock
tick. At each measurement there is a small bar representing 4ms of the
color associated with the frequency. The percentages shown are thus not
entirely accurate, because the frequency could change within those 4ms and
we would not observe that.

The first graph, 5.9schedutil_yeti, is the normal behavior of schedutil
running. The application mostly uses the second highest turbo mode, which
is the appropriate one given that there are around 5 active cores most of
the time. I traced power:cpu_frequency, which is the event that occurs
when the OS requests a change of frequency. This happens around 5400
times.

The second graph, 5.15-schedutil_yeti, is the latest version of Linus's
tree. The cores are almost always at the lowest frequency. There are no
occurrences of the power:cpu_frequency event.

The third graph, 5.9schedutil_after_yeti, it what happens when I reboot
into 5.9 after having changed to passive mode in 5.15. The number of
power:cpu_frequency drops to around 1100. The proper turbo mode is
actually used sometimes, but much less than in the first graph. More than
half of the time, an active core is at the lowest frequency.

This application (avrora from the DaCapo benchmarks) is continually
stopping and starting, both for very short intervals. This may discourage
the hardware from raising the frequency of its own volition. I also tried
a simple spin loop (for(;;);) with the 5.15 rc version, and it does go to
the highest frequency as one would expect. But there are again no
power:cpu_frequency events.

julia

Attachment: ff.pdf
Description: Adobe PDF document