DF-3901 / skl_dram_probe.c
/* * DF-3901 probe (hardware-only). On a single-channel-memory SKYLAKE/KABYLAKE * machine, intel_get_dram_info() consumes uninitialized ch0/ch1 stack when * one MAD_DIMM channel register reads blank. Userspace can only observe the * *symptoms* (wm-level underrun counter via debugfs * i915_drpc_info/i915_interrupt_info region underflows). This probe merely * proves reachability of the driver on the running box and dumps what the * kernel chose (via I915_GETPARAM-compatible surface where available). */ #include <stdio.h> #include <fcntl.h> #include <unistd.h> int main(void) { int fd = open("/dev/dri/renderD128", O_RDONLY); if (fd < 0) { printf("no render node (expected on non-i915 guest)\n"); return 1; } printf("render node present; dram_info consumption happens at driver " "load: check dmesg for 'Number of memory channels' vs physical " "single-channel config and observe display underruns\n"); close(fd); return 0; } |