Bug 72385 - [HSW] GPU peak frequency can't reach peak immediately as expected
Summary: [HSW] GPU peak frequency can't reach peak immediately as expected
Status: CLOSED INVALID
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg git
Hardware: All Linux (All)
: medium major
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-12-06 07:56 UTC by ZhaoShengyan
Modified: 2017-10-06 14:41 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description ZhaoShengyan 2013-12-06 07:56:40 UTC
Test Env:
------------------------------------
Platform:               HSW
Arch:                   x86
OS:                     Fedora 19
Xserver:                (server-1.14-branch)xorg-server-1.14.4.901
Xf86_video_intel:               (master)2.99.906
Kernel:                  kernel-3.12.2_20131203+-2.x86_64


Reproduced Steps:
------------------------------------
1. rpm -ivh kernel-3.12.2_20131203+-2.x86_64.rpm
2. Start up X.
3. Check the minimum frequency: cat /sys/class/drm/card0/gt_min_freq_mhz
4. Check the maximum frequency:cat /sys/class/drm/card0/gt_max_freq_mhz
5. Check the current frequency: cat /sys/class/drm/card0/gt_cur_freq_mhz
6. Start glxgears && cat /sys/class/drm/card0/gt_cur_freq_mhz
7. Stop glxgears && cat /sys/class/drm/card0/gt_cur_freq_mhz


The expected phenomenon should be: when start glxgears, the current frequency should be reach to max frequency(e.g. 1100MHz), when stop glxgears, the current frequency should be fall down to minimum frequency(e.g. 200MHz) quickly. However, actually, when we start glxgears, we cat /sys/class/drm/card0/gt_cur_freq_mhz and got frequency remain minimum value, after 30 mins, the value reach to peak value. At this time, when we kill glxgears, the peak value fall down a little(e.g. 100HMz, from 1100MHz to 1000MHz) instead of our expected minimum value(e.g. 200MHz).



Reproduced Rate:
------------------------------------
100%
Comment 1 Daniel Vetter 2013-12-06 09:10:04 UTC
Can you please retest with latest drm-intel-nightly? Chris' turbo improvements should help here a lot.
Comment 2 Chris Wilson 2013-12-06 09:19:26 UTC
glxgears in its default configuration can hit its framerate with min frequency.
Comment 3 Daniel Vetter 2013-12-06 09:20:29 UTC
They also have an issue with the freq not going down quickly afterwards, imo that's worth testing a bit ...
Comment 4 Chris Wilson 2013-12-06 09:41:52 UTC
It's so unlikely, one suspects a reporting error.
Comment 5 ZhaoShengyan 2013-12-09 03:14:17 UTC
Daniel Vetter & Chris Wilson , we tried with kernel 3.13.0-rc1_drm-intel-nightly_41199e_20131207+ with the following two experiments:
1. Experiment One:
1> Made a script to cat /sys/class/drm/card0/gt_cur_freq_mhz every second and name the script as ls_cur_freq_mhz.sh, you can refer to the following details:
#file: ls_cur_freq_mhz.sh
#!/bin/bash
peak_freq=$(cat /sys/class/drm/card0/gt_max_freq_mhz)
min_freq=$(cat /sys/class/drm/card0/gt_min_freq_mhz)
echo "freq_rangle: [${min_freq}~${peak_freq}]MHz"
while true
do
    cur_freq=$(cat /sys/class/drm/card0/gt_cur_freq_mhz)
    echo "current frequency is: ${cur_freq}"
    sleep 1
done

2> . ls_cur_freq_mhz.sh in one terminal;
3> Startup glxgears & in another terminal;
4> check the current frequency output, if got current frequency is 200, just repeat 3>, until got frequency is 1100.
4> pkill glxgears and moniter the current frequency output.

In kernel 3.13.0-rc1_drm-intel-nightly_41199e_20131207+, we tried more than 20 times, generally, run 2 glxgears at background will lead to current frequency to 1100MHz. Then, we pkill glxgears and moniter the current frequency output.
The frequency falling down immediately just corresponding we kill the glxgears process.
In kernel kernel-3.12.2_20131203+-2.x86_64, we found more than 2 glxgears can also trigger to peak frequency, but after we kill all the glxgears via pkill, the current frequency output still just fall down by 100(from 1100 to 1000). 

2. Experiment Two:
Still use script ls_cur_freq_mhz.sh to moniter the current frequency output.
However, we changed a heavy-load game with fullscreen mode. Accordingly, we discover kernel 3.13.0-rc1_drm-intel-nightly_41199e_20131207+ can reach to peak frequency 1100, and can fall down to 200 as soon as the game process exit.
However, when we changed kernel to kernel-3.12.2_20131203+-2.x86_64, the frequency output changed from 300 to 1100, and when the game process exit the current frequency keep at 550. this will no change though there is no workload running.  





(In reply to comment #3)
> They also have an issue with the freq not going down quickly afterwards, imo
> that's worth testing a bit ...
Comment 6 Chris Wilson 2013-12-09 09:28:48 UTC
So not a bug in upstream.
Comment 7 ZhaoShengyan 2013-12-10 02:08:41 UTC
(In reply to comment #6)
> So not a bug in upstream.

Okay, thanks for your comments, Chris Wilson. So marked this as verified.
Comment 8 Elizabeth 2017-10-06 14:41:31 UTC
Closing old verified.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.