zoukankan      html  css  js  c++  java
  • [troubleshoot][archlinux][X] GPU HANG

    前言:如下内容已经是在hang完大概半个多月后了,当时想写,一直没过来写,写blog果然也是已经花费时间的事情。

    最近一直在休假,电脑的使用频率也不多。后来还是为了生活,不情愿的去开始上班了,上班的第一件事是什么呢? 当然是配置网路,配好了网路之后,我就开始滚系统(就全系统更新至最新包的意思,因为我们archer的特性之一就是滚动更新,恩,更新都是用滚的。),好久没有正经用了,当然要进入最好最新的状态才能稍微愉快的开始工作了,随便也为新同事们秀一秀我的系统。

    就酱,上了两天。就发现不对劲。用着用着X就挂了。不用说,首先就是怀疑滚,系统滚进了什么不稳定的包。

    查所有滚动包的列表,它们在这里: 

    [tong@TStation ~]$ vim /var/log/pacman.log 

    查看系统日志,两招:1, journalctl。2. dmesg

    [tong@TStation ~]$ dmesg 

    实在抱歉的是,我当时(就是半个月前)没有把log留存下来,log里边的主要内容就是,

    GPU HANG,请到 ”https://bugs.freedesktop.org/ “ 去报BUG

    综合以上信息,我首先判断是intel的驱动出了问题。查看滚包列表里也确实,发现了内核包(linux)的更新。(intel的驱动在linux内核包里)。然后我就downgrade了linux内核包。

    downgrade的方法: 因为arch是滚动更新的,且所有包都由上游提供,所以不提供官方的downgrade方法。换句话说就是arch只负责让你滚上去,而不负责帮你滚下来。

    基于以上,一般的做法是,保留旧几个版本的更新包,当出现问题时,可以手动讲单包回退至指定版本。

    旧包都保留在这个地方 /var/cache/pacman/pkg/ 系统会基于规则删除最旧的,路径和规则都是可配置的,怎么配就不写了,有兴趣的自行查询手册。

    然后找到我需要降回去的linux版本的包,使用pacman降回去,并重启:

    [tong@TStation ~]$ pacman -U /var/cache/pacman/pkg/linux-4.7.6-1-x86_64.pkg.tar.xz 

    以上,是确认了确实是某包故障时的常规解决方法。

    然而,可想而知,我的问题,并没有那么简单。降级了kernel,问题依然存在。

    于是又陷入了毫无头绪的状态下,遂,求google帮忙。同样没有找到有用的信息。

    这期间我也是一直在搜寻着导致这个问题的蛛丝马迹,我当时依然在看dpdk的文档,同时开着win虚拟机和一些其他项目的同事通过QQ沟通,是的,大家依赖着QQ。这样,工作不久,内存就会达到某个临界值,chrome和qemu都在吃内存。于是我开始怀疑chrome出了什么问题。关了chrome的硬件加速,换firefox,都未能顺利解决问题。

    变得束手无策了,我开始怀疑KDE(倒霉的KDE,没次又被怀疑),想换到FVWM,这个时候又提到了FVWM,尽早重新配置起来。于是在重新配置FVWM之前,我绝望般的打算去报BUG了,因为这个问题,很难提供有用的信息给开发者,从报bug到解决,定然是个漫长的过程。

    报bug之前,自然是要找一找有没有报过的bug。然后我就发现了这个:

    https://bugs.freedesktop.org/show_bug.cgi?id=89360

    其中提到:

    Short version
    ---
    adding 'intel_iommu=igfx_off' helped

    是的,还记得,为了调试DPDK,我打开了vt-d功能么?就是为了让PCI设备直接在用户态使用。参加http://www.cnblogs.com/hugetong/p/5904024.html

    如此回想起来,每次出问题都是在开启了qemu之后。

    总结:

    1. 去掉内核选项 intel_iommu=on

    2. 升级内核至最新。

    3. 重启

    问题解决 : )

    解决归解决,还是有两个引申出来的问题

    1. FVWM,需要重新配置起来,处于可用状态,随时待命。

    2. 听闻了 zfs,brtfs两个文件系统?可以文件系统级别快照,回滚?? 

  • 相关阅读:
    TeXLive安装过程
    js 如何获取class的元素 以及创建方法getElementsByClassName
    点击返回
    MVC框架实现文件的上传(支持多文件上传)
    团购倒计时抢购功能
    获取取当前页 地址分割字符串
    网页内容截取部分打印
    HttpFileCollection 实现多文件上传
    JS如何获取URL
    正则表达式 占位符 替换
  • 原文地址:https://www.cnblogs.com/hugetong/p/6000077.html
Copyright © 2011-2022 走看看