Skip to content

Instantly share code, notes, and snippets.

@dwilkins
Created September 6, 2013 13:55
Show Gist options
  • Save dwilkins/6464152 to your computer and use it in GitHub Desktop.
Save dwilkins/6464152 to your computer and use it in GitHub Desktop.
Script to detect if the Intel i915 graphics card is sick or not. Watch the line about "RC6 residency since boot: NNNNN". If that number doesn't change, then your graphics card is about to go into thermal meltdown
#/usr/bin/sh
function dump_params {
echo -n '# param enable_hangcheck=' ; sudo cat /sys/module/i915/parameters/enable_hangcheck
echo -n '# param fbpercrtc=' ; sudo cat /sys/module/i915/parameters/fbpercrtc
echo -n '# param i915_enable_fbc=' ; sudo cat /sys/module/i915/parameters/i915_enable_fbc
echo -n '# param i915_enable_ppgtt=' ; sudo cat /sys/module/i915/parameters/i915_enable_ppgtt
echo -n '# param i915_enable_rc6=' ; sudo cat /sys/module/i915/parameters/i915_enable_rc6
echo -n '# param invert_brightness=' ; sudo cat /sys/module/i915/parameters/invert_brightness
echo -n '# param lvds_channel_mode=' ; sudo cat /sys/module/i915/parameters/lvds_channel_mode
echo -n '# param lvds_downclock=' ; sudo cat /sys/module/i915/parameters/lvds_downclock
echo -n '# param lvds_use_ssc=' ; sudo cat /sys/module/i915/parameters/lvds_use_ssc
echo -n '# param modeset=' ; sudo cat /sys/module/i915/parameters/modeset
echo -n '# param panel_ignore_lid=' ; sudo cat /sys/module/i915/parameters/panel_ignore_lid
echo -n '# param powersave=' ; sudo cat /sys/module/i915/parameters/powersave
echo -n '# param reset=' ; sudo cat /sys/module/i915/parameters/reset
echo `date`
echo `uname -a`
}
declare -i secs
declare -i last_secs
echo '# ************************************** Debug File Start **************************************'
dump_params
last_secs=`date '+%s'`
while true
do
last_secs=`date '+%s'`
echo '# -------------------------' `date`
cat /sys/kernel/debug/dri/0/i915_drpc_info
echo -n "Temp: " ; cat /sys/devices/virtual/thermal/thermal_zone0/temp
sleep 2
last_secs+=5
secs=`date '+%s'`
if [ $secs -gt $last_secs ] ; then
echo '# -------------------------------------- Suspend/Resume Detected --------------------------------------'
dump_params
fi
done
@mattalxndr
Copy link

mattalxndr commented Jun 9, 2022

This is what I got:

~ % sudo sick-graphics
# ************************************** Debug File Start **************************************
# param enable_hangcheck=Y
# param fbpercrtc=cat: /sys/module/i915/parameters/fbpercrtc: No such file or directory
# param i915_enable_fbc=cat: /sys/module/i915/parameters/i915_enable_fbc: No such file or directory
# param i915_enable_ppgtt=cat: /sys/module/i915/parameters/i915_enable_ppgtt: No such file or directory
# param i915_enable_rc6=cat: /sys/module/i915/parameters/i915_enable_rc6: No such file or directory
# param invert_brightness=0
# param lvds_channel_mode=0
# param lvds_downclock=cat: /sys/module/i915/parameters/lvds_downclock: No such file or directory
# param lvds_use_ssc=cat: /sys/module/i915/parameters/lvds_use_ssc: No such file or directory
# param modeset=-1
# param panel_ignore_lid=cat: /sys/module/i915/parameters/panel_ignore_lid: No such file or directory
# param powersave=cat: /sys/module/i915/parameters/powersave: No such file or directory
# param reset=3
Thu Jun 9 12:01:23 AM CDT 2022
Linux m 5.18.2-zen1-1-zen #1 ZEN SMP PREEMPT_DYNAMIC Mon, 06 Jun 2022 19:59:01 +0000 x86_64 GNU/Linux
# ------------------------- Thu Jun 9 12:01:23 AM CDT 2022
cat: /sys/kernel/debug/dri/0/i915_drpc_info: No such file or directory
Temp: 20000
# ------------------------- Thu Jun 9 12:01:25 AM CDT 2022
cat: /sys/kernel/debug/dri/0/i915_drpc_info: No such file or directory
Temp: 20000
# ------------------------- Thu Jun 9 12:01:27 AM CDT 2022
cat: /sys/kernel/debug/dri/0/i915_drpc_info: No such file or directory
Temp: 20000
# ------------------------- Thu Jun 9 12:01:29 AM CDT 2022
cat: /sys/kernel/debug/dri/0/i915_drpc_info: No such file or directory
Temp: 20000
# ------------------------- Thu Jun 9 12:01:31 AM CDT 2022
cat: /sys/kernel/debug/dri/0/i915_drpc_info: No such file or directory
Temp: 20000
...
...

My "_info" files:

% sudo find /sys/kernel/debug/dri/0 -name \*_info
/sys/kernel/debug/dri/0/i915_ddb_info
/sys/kernel/debug/dri/0/i915_dp_mst_info
/sys/kernel/debug/dri/0/i915_shared_dplls_info
/sys/kernel/debug/dri/0/i915_display_info
/sys/kernel/debug/dri/0/i915_dmc_info
/sys/kernel/debug/dri/0/i915_power_domain_info
/sys/kernel/debug/dri/0/gt/uc/huc_info
/sys/kernel/debug/dri/0/gt/uc/guc_info
/sys/kernel/debug/dri/0/i915_rps_boost_info
/sys/kernel/debug/dri/0/i915_engine_info
/sys/kernel/debug/dri/0/i915_swizzle_info
/sys/kernel/debug/dri/0/i915_frequency_info
/sys/kernel/debug/dri/0/i915_gpu_info

Specs about my Dell XPS 13 9300:

% cat /etc/os-release | head -1
NAME="Arch Linux"
% uname -a
Linux m 5.18.2-zen1-1-zen #1 ZEN SMP PREEMPT_DYNAMIC Mon, 06 Jun 2022 19:59:01 +0000 x86_64 GNU/Linux
% lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Iris Plus Graphics G7 (rev 07)
% lsgpu
card0                    Intel Icelake (Gen11)             drm:/dev/dri/card0
└─renderD128                                               drm:/dev/dri/renderD128
% sudo dmesg | grep Kernel\ command
[    0.054909] Kernel command line: initrd=\initramfs-linux-zen.img i915.enable_psr=0 root=PARTUUID=87c1042c-bede-c649-add7-7b75f4b51ff4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment