#!/usr/bin/clitest
# Test Intel GPU frequency limits
# Requirements:
# * Intel GPU w/ i915 driver
# * Hardware freq range 700..1100 (or wider)
#
$ # --- valid freqs
$ sudo tlp start -- X_SIMULATE_PS=1 INTEL_GPU_MIN_FREQ_ON_BAT=700 INTEL_GPU_MAX_FREQ_ON_BAT=850 INTEL_GPU_BOOST_FREQ_ON_BAT=900
TLP started in battery mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =   850 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =   900 [MHz]
$ sudo tlp start -- X_SIMULATE_PS=0 INTEL_GPU_MIN_FREQ_ON_AC=900 INTEL_GPU_MAX_FREQ_ON_AC=1050 INTEL_GPU_BOOST_FREQ_ON_AC=1100
TLP started in AC mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   900 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1050 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
$ sudo tlp start -- X_SIMULATE_PS=1 INTEL_GPU_MIN_FREQ_ON_BAT=700 INTEL_GPU_MAX_FREQ_ON_BAT=850 INTEL_GPU_BOOST_FREQ_ON_BAT=900
TLP started in battery mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =   850 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =   900 [MHz]
$ sudo tlp start -- X_SIMULATE_PS=1 INTEL_GPU_MIN_FREQ_ON_BAT=700 INTEL_GPU_MAX_FREQ_ON_BAT=950 INTEL_GPU_BOOST_FREQ_ON_BAT=950
TLP started in battery mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =   950 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =   950 [MHz]
$ sudo tlp start -- X_SIMULATE_PS=0 INTEL_GPU_MIN_FREQ_ON_AC=700 INTEL_GPU_MAX_FREQ_ON_AC=1100 INTEL_GPU_BOOST_FREQ_ON_AC=1100
TLP started in AC mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1100 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
$ # --- unconfigured
$ sudo tlp start -- X_SIMULATE_PS=1 INTEL_GPU_MIN_FREQ_ON_BAT= INTEL_GPU_MAX_FREQ_ON_BAT= INTEL_GPU_BOOST_FREQ_ON_BAT=
TLP started in battery mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1100 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
$ # --- freqs invalid or out of range
$ sudo tlp start -- X_SIMULATE_PS=0 INTEL_GPU_MIN_FREQ_ON_AC= INTEL_GPU_MAX_FREQ_ON_AC=1100 INTEL_GPU_BOOST_FREQ_ON_AC=1100
Error in configuration at INTEL_GPU_MIN_FREQ_ON_AC="": frequency invalid or out of range (see 'tlp-stat -g').
TLP started in AC mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1100 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
$ sudo tlp start -- X_SIMULATE_PS=0 INTEL_GPU_MIN_FREQ_ON_AC=XYZZY INTEL_GPU_MAX_FREQ_ON_AC=1100 INTEL_GPU_BOOST_FREQ_ON_AC=1100
Error in configuration at INTEL_GPU_MIN_FREQ_ON_AC="XYZZY": frequency invalid or out of range (see 'tlp-stat -g').
TLP started in AC mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1100 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
$ sudo tlp start -- X_SIMULATE_PS=0 INTEL_GPU_MIN_FREQ_ON_AC=100 INTEL_GPU_MAX_FREQ_ON_AC=1100 INTEL_GPU_BOOST_FREQ_ON_AC=1100
Error in configuration at INTEL_GPU_MIN_FREQ_ON_AC="100": frequency invalid or out of range (see 'tlp-stat -g').
TLP started in AC mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1100 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
$ sudo tlp start -- X_SIMULATE_PS=0 INTEL_GPU_MIN_FREQ_ON_AC=700 INTEL_GPU_MAX_FREQ_ON_AC= INTEL_GPU_BOOST_FREQ_ON_AC=1100
Error in configuration at INTEL_GPU_MAX_FREQ_ON_AC="": frequency invalid or out of range (see 'tlp-stat -g').
TLP started in AC mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1100 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
$ sudo tlp start -- X_SIMULATE_PS=0 INTEL_GPU_MIN_FREQ_ON_AC=700 INTEL_GPU_MAX_FREQ_ON_AC=XYZZY INTEL_GPU_BOOST_FREQ_ON_AC=1100
Error in configuration at INTEL_GPU_MAX_FREQ_ON_AC="XYZZY": frequency invalid or out of range (see 'tlp-stat -g').
TLP started in AC mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1100 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
$ sudo tlp start -- X_SIMULATE_PS=0 INTEL_GPU_MIN_FREQ_ON_AC=700 INTEL_GPU_MAX_FREQ_ON_AC=100 INTEL_GPU_BOOST_FREQ_ON_AC=1100
Error in configuration at INTEL_GPU_MAX_FREQ_ON_AC="100": frequency invalid or out of range (see 'tlp-stat -g').
TLP started in AC mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1100 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
$ sudo tlp start -- X_SIMULATE_PS=0 INTEL_GPU_MIN_FREQ_ON_AC=700 INTEL_GPU_MAX_FREQ_ON_AC=1100 INTEL_GPU_BOOST_FREQ_ON_AC=
Error in configuration at INTEL_GPU_BOOST_FREQ_ON_AC="": frequency invalid or out of range (see 'tlp-stat -g').
TLP started in AC mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1100 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
$ sudo tlp start -- X_SIMULATE_PS=0 INTEL_GPU_MIN_FREQ_ON_AC=700 INTEL_GPU_MAX_FREQ_ON_AC=1100 INTEL_GPU_BOOST_FREQ_ON_AC=XYZZY
Error in configuration at INTEL_GPU_BOOST_FREQ_ON_AC="XYZZY": frequency invalid or out of range (see 'tlp-stat -g').
TLP started in AC mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1100 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
$ sudo tlp start -- X_SIMULATE_PS=0 INTEL_GPU_MIN_FREQ_ON_AC=700 INTEL_GPU_MAX_FREQ_ON_AC=1100 INTEL_GPU_BOOST_FREQ_ON_AC=100
Error in configuration at INTEL_GPU_BOOST_FREQ_ON_AC="100": frequency invalid or out of range (see 'tlp-stat -g').
TLP started in AC mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1100 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
$ # --- boundary conditions not met
$ sudo tlp start -- X_SIMULATE_PS=1 INTEL_GPU_MIN_FREQ_ON_BAT=750 INTEL_GPU_MAX_FREQ_ON_BAT=700 INTEL_GPU_BOOST_FREQ_ON_BAT=1100
Error in configuration: INTEL_GPU_MIN_FREQ_ON_BAT > INTEL_GPU_MAX_FREQ_ON_BAT.
TLP started in battery mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1100 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
$ sudo tlp start -- X_SIMULATE_PS=1 INTEL_GPU_MIN_FREQ_ON_BAT=700 INTEL_GPU_MAX_FREQ_ON_BAT=750 INTEL_GPU_BOOST_FREQ_ON_BAT=700
Error in configuration: INTEL_GPU_MAX_FREQ_ON_BAT > INTEL_GPU_BOOST_FREQ_ON_BAT.
TLP started in battery mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1100 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
$ sudo tlp start -- X_SIMULATE_PS=0 INTEL_GPU_MIN_FREQ_ON_AC=800 INTEL_GPU_MAX_FREQ_ON_AC=750 INTEL_GPU_BOOST_FREQ_ON_AC=700
Error in configuration: INTEL_GPU_MIN_FREQ_ON_AC > INTEL_GPU_MAX_FREQ_ON_AC.
TLP started in AC mode (auto).
$ sudo tlp-stat | grep -E "gt_(min|max|boost)"
/sys/class/drm/card0/gt_min_freq_mhz         =   700 [MHz]
/sys/class/drm/card0/gt_max_freq_mhz         =  1100 [MHz]
/sys/class/drm/card0/gt_boost_freq_mhz       =  1100 [MHz]
