Abe*_*Abe 8 xorg xinerama fglrx debugging gpu
回答我之前的问题,Ubuntu 12.04 冻结,需要重新启动。我应该在日志中查找/grep 什么?,让我怀疑我的计算机正在经历间歇性的 GPU 锁定。它大约每周发生一次,通常是在我使用 Chrome 时。今天它发生在我在lucidchart上创建图表时
我有一台带有 ATI Radeon HD 2400 XT 和以 Xinerama 模式运行的双显示器的 Dell Optiplex 755。我使用的是 12.04,并安装了专有的 ATI 驱动程序。
当计算机锁定时,我仍然可以 ssh 进入。我想按照https://wiki.ubuntu.com/X/Troubleshooting/Freeze上提供的报告说明进行操作
有没有(安全的)方法来导致 GPU 锁定,以便我可以继续提交错误,而不是等到它再次发生?
Bry*_*yce 11
很好的问题。
工作负载
/usr/share/xdiagnose/workloads 目录有一组工作负载,旨在锻炼您的图形系统以触发锁定。
$ ls /usr/share/xdiagnose/workloads/
README do_monitor_rotation_loop
do_chws_loop* do_screensaver_loop*
do_cpu_spin_loop do_video_loop*
do_disk_write_loop do_vtswitch_loop*
do_glx_loop* repro.sh
do_kernel_compile_loop run_workloads
do_monitor_disable_loop* youtube-loop.html
do_monitor_resolution_loop* youtube-reload.html
Run Code Online (Sandbox Code Playgroud)
请注意,要运行它们,您需要传递“运行”。例如:
$ do_glx_loop 运行
如果没有参数,脚本将显示使用情况。部分是为了安全(以防人们只是盲目地运行脚本),但主要是为了保持脚本的 API 整洁。
我出演的那些可能是最好的开始。我会从一次只运行一个脚本开始,然后让它运行几个小时。如果您的系统足够好,那么尝试同时运行两个或多个。
注意我自己没有对这些进行过大量测试,所以不能保证它们没有错误。但它们是非常短和简单的脚本,因此希望易于修复,并且非常欢迎补丁。
另请注意,它们很可能会触发与您要解决的问题无关的锁定。GPU 锁定通常看起来与未经训练的眼睛相同,因为它们或多或少具有完全相同的症状。
日志
如果您使用的是英特尔显卡,那么您需要一个 /sys/kernel/debug/dri/0/i915_error_state。这是挂起时寄存器状态的快照,其顶部包含一些错误代码。IPEHR、PGTBL_ER、ESR、EIR。匹配这些代码,看看是否有相同或相似的错误。
如果您没有使用英特尔显卡(在这种情况下您没有使用),或者如果您没有看到生成的 i915_error_state 文件,那么 dmesg 和 /var/log/kern.log 就是要查看的内容。 有时使用 gpu 锁定,它们会指示 GPU 锁定是由什么引起的或由什么引起的。
开源的 -ati 驱动程序有 radeontool 和 avivotool,它们可以捕获寄存器状态。这些主要用于开源 -ati,但这些工具也应该与 -fglrx 一起使用。我从未见过它请求 -fglrx 错误,但它肯定不会受到伤害。
测试
对于所有驱动程序,下一步通常是开始测试新版本或旧版本的驱动程序。对于专有驱动程序,您可以检查 x-updates ppa,但可能您必须从供应商网站下载并手动安装驱动程序(这样做会弄乱系统的包装)。对于像 -intel、-nouveau、-ati 这样的 FOSS 驱动程序,这意味着测试较新的内核或较新的 mesa。我们在http://kernel.ubuntu.com/~kernel-ppa/mainline/提供了较新内核的打包版本。对于台面,有各种 PPA,例如 xorg-edges。我也在准备 8.0.3 的精确更新,我们相信它修复了英特尔显卡的许多锁定。
在任何情况下,当你找到一个有效的版本时,不要只是停下来。在您的工作版本和损坏的版本之间尝试其他版本。如果您可以将括号缩小到两个相邻的版本,这对于开发人员隔离导致回归的补丁非常有帮助。
贡献
在进行故障排除时,您可能会发现错误,或者可能会对脚本或文档进行改进。热烈欢迎对其中任何一项的贡献。使用 wiki 文档,请继续编辑!我尝试每年至少更新它们一次,但我并不总是能解决它,下一个访问该页面的人肯定会感谢您为改进它们所做的努力。
对于脚本本身的更改,也很受欢迎。将更改发送给我,但您觉得舒服 - 作为补丁、bzr 或 git 分支,甚至只是脚本的副本。如果你打算做很多改变,带有合并提议的 bzr 分支是首选方式;code.launchpad.net 上提供了有关如何执行此操作的教程,如果您有任何疑问,请随时在 IRC 上与我联系。
或者,如果您还没有准备好深入编码,但想要标记错误或需要更多功能的区域,您可以按通常的方式 ( ubuntu-bug xdiagnose)提交错误报告。
快速修复
如果您对上述任何调试不感兴趣,这里有一些随机提示:
对于专有驱动程序,请尝试从系统中完全卸载并清除它们,然后从头开始重新安装。不幸的是,这“解决”了很多错误......
对于 FOSS 驱动程序,您可以使用各种内核开关。对于 3D/mesa 错误,还有 driconf 可以调整各种设置。
最后
最后,一个请求...请不要向 Launchpad 提交关于“随机冻结”的错误报告,直到您至少完成了如上所述的一些调查。否则,你只会增加噪音。
我们确实尝试找出经过充分研究的错误报告;我们发现这些可以带来更高的收益,并且更有可能最终获得发行版的实际修复。
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |