显卡坏显存别急着扔 Intel新驱动能自动屏蔽故障区
显卡坏了就废?这事儿有讲究。Intel最新驱动更新,给Linux用户带了个福音。显存监测加故障隔离,坏块自动拉黑,显卡还能接着跑。说白了,就是带病工作,延长寿命。 先看第一波更新。基础显存健康检查上线了。
Intel工程师Matthew Auld说,驱动在启动初期就把显存最后一页当成金丝雀来测。BAR映射、CCS尺寸计算这些操作,都会拿它开刀。哪步算错,这页最先露馅。 为啥要这么干?因为之前真出过幺蛾子。
部分Battlemage显卡的CCS偏移搞错了。Linus Torvalds亲自抓到的问题。本该压缩存储的数据,被塞进正常显存分配器里。结果就是黑屏,合成器反复重启。这回算是把坑填上了。 再看第二项更新。
内存页离线支持,磨了21轮评审才落地。驱动收到报告,说某个GPU地址坏了,它能精准定位到持有该页的对象。然后清掉或者回收这块内存,永久封禁这个物理区域。以后谁也别想用。 用户想查情况也有门路。故障页面通过DebugFS暴露出来。
系统管理员去/sys/bus/pci/devices/bdf/vram_bad_pages底下看就行。页面编号、GPU页大小、状态标记,一目了然。 这特性有啥用?核心就是带病运行。一块显卡哪怕有几页显存坏了,可用容量少点,照样能用。
关键是避免了反复把坏页分给应用。花屏、死机、黑屏这些毛病,就能压下去不少。 不过得提醒两句。显存健康检查现在归CONFIG_DRM_XE_DEBUG_MEM管。只给开发者和回归测试用,普通人开机看不到这个过程。
至于内存页离线,支持用户配,但眼下主要针对Intel Crescent Island平台。