16.04 用户。从几个月前(2017 年第一季度)开始,不知道什么时候,我的机器就出现了不稳定的问题。
该系统是 Gigabyte EX58-UD5 主板上的旧 i7 920。目前配备 24GB 内存和一张 GTX980 显卡。我使用的是“graphic-drivers”ppa 中的最新 nvidia 驱动程序,并安装了硬件堆栈(4.8 内核和较新的 Xorg),但这个问题来自 4.4 时代(“.2”LTS 修订版之前)和 nvidia 驱动程序的几个版本。该系统自 2009 年以来一直很稳定,当前设置(添加了当前一代 nvidia 卡和额外的 SATA 磁盘)来自 2015 年第二季度;2017 年没有任何变化。电源为 1000W 散热,没有发热问题。
问题是:屏幕突然冻结,有时(并非总是)鼠标仍在移动但速度很慢,就像从坐标跳转一样。也无法使用功能键组合更改 tty。但在此状态下,我能够从上网本 ssh 到系统;系统仍然正常运行,并没有真正冻结。
我想,注意到这一点可能会很有用:几乎每次(约 98%,但并非总是如此)在 Firefox 上滚动时都会发生这种情况。事实上,一开始我指责某个 5X Firefox 版本启用了标签多处理。但事实并非如此,我最终发现;大约一周前我开始(尝试)调试这个问题,我看到了以下消息:
Mar 27 22:17:39 Buda kernel: [ 1841.918831] irq 16: nobody cared (try booting with the "irqpoll" option)
Mar 27 22:17:39 Buda kernel: [ 1841.918836] CPU: 3 PID: 0 Comm: swapper/3 Tainted: P IOE 4.8.0-41-generic #44~16.04.1-Ubuntu
Mar 27 22:17:39 Buda kernel: [ 1841.918837] Hardware name: Gigabyte Technology Co., Ltd. EX58-UD5/EX58-UD5, BIOS F13 01/10/2012
Mar 27 22:17:39 Buda kernel: [ 1841.918838] 0000000000000086 7b4c75c5fc78db31 ffff8d36d72c3e80 ffffffffaa22e043
Mar 27 22:17:39 Buda kernel: [ 1841.918840] ffff8d36d24e8800 ffff8d36d24e88d4 ffff8d36d72c3ea8 ffffffffa9ee2e23
Mar 27 22:17:39 Buda kernel: [ 1841.918842] ffff8d36d24e8800 0000000000000000 0000000000000010 ffff8d36d72c3ee0
Mar 27 22:17:39 Buda kernel: [ 1841.918844] Call Trace:
Mar 27 22:17:39 Buda kernel: [ 1841.918844] <IRQ> [<ffffffffaa22e043>] dump_stack+0x63/0x90
Mar 27 22:17:39 Buda kernel: [ 1841.918851] [<ffffffffa9ee2e23>] __report_bad_irq+0x33/0xc0
Mar 27 22:17:39 Buda kernel: [ 1841.918852] [<ffffffffa9ee31b7>] note_interrupt+0x247/0x290
Mar 27 22:17:39 Buda kernel: [ 1841.918855] [<ffffffffa9ee0174>] handle_irq_event_percpu+0x54/0x80
Mar 27 22:17:39 Buda kernel: [ 1841.918856] [<ffffffffa9ee01de>] handle_irq_event+0x3e/0x60
Mar 27 22:17:39 Buda kernel: [ 1841.918857] [<ffffffffa9ee38b2>] handle_fasteoi_irq+0xa2/0x160
Mar 27 22:17:39 Buda kernel: [ 1841.918859] [<ffffffffa9e302cd>] handle_irq+0x1d/0x30
Mar 27 22:17:39 Buda kernel: [ 1841.918862] [<ffffffffaa69e05b>] do_IRQ+0x4b/0xd0
Mar 27 22:17:39 Buda kernel: [ 1841.918863] [<ffffffffaa69c142>] common_interrupt+0x82/0x82
Mar 27 22:17:39 Buda kernel: [ 1841.918863] <EOI> [<ffffffffaa5198f8>] ? cpuidle_enter_state+0x128/0x2d0
Mar 27 22:17:39 Buda kernel: [ 1841.918869] [<ffffffffaa519ad7>] cpuidle_enter+0x17/0x20
Mar 27 22:17:39 Buda kernel: [ 1841.918870] [<ffffffffa9ec79fa>] call_cpuidle+0x2a/0x50
Mar 27 22:17:39 Buda kernel: [ 1841.918871] [<ffffffffa9ec7dde>] cpu_startup_entry+0x29e/0x350
Mar 27 22:17:39 Buda kernel: [ 1841.918874] [<ffffffffa9e518b1>] start_secondary+0x151/0x190
Mar 27 22:17:39 Buda kernel: [ 1841.918875] handlers:
Mar 27 22:17:39 Buda kernel: [ 1841.918878] [<ffffffffaa465fd0>] usb_hcd_irq
Mar 27 22:17:39 Buda kernel: [ 1841.918879] Disabling IRQ #16
问题在于 IRQ 16 被禁用了。我检查了哪些设备可能正在使用 IRQ 16:
:~$ lspci -v | grep IRQ
Flags: fast devsel, IRQ 12
Flags: bus master, fast devsel, latency 0, IRQ 16
Flags: bus master, medium devsel, latency 0, IRQ 16
Flags: bus master, medium devsel, latency 0, IRQ 21
Flags: bus master, medium devsel, latency 0, IRQ 18
Flags: bus master, medium devsel, latency 0, IRQ 18
Flags: bus master, fast devsel, latency 0, IRQ 30
Flags: bus master, fast devsel, latency 0, IRQ 24
Flags: bus master, fast devsel, latency 0, IRQ 25
Flags: bus master, fast devsel, latency 0, IRQ 26
Flags: bus master, fast devsel, latency 0, IRQ 27
Flags: bus master, medium devsel, latency 0, IRQ 23
Flags: bus master, medium devsel, latency 0, IRQ 19
Flags: bus master, medium devsel, latency 0, IRQ 18
Flags: bus master, medium devsel, latency 0, IRQ 23
Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 19
Flags: medium devsel, IRQ 7
Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 19
Flags: bus master, fast devsel, latency 0, IRQ 31
Flags: fast devsel, IRQ 17
Flags: bus master, fast devsel, latency 0, IRQ 17
Flags: bus master, fast devsel, latency 0, IRQ 18
Flags: bus master, fast devsel, latency 0, IRQ 28
Flags: bus master, fast devsel, latency 0, IRQ 29
Flags: bus master, medium devsel, latency 32, IRQ 18
两个设备使用 IRQ 16 的详细信息如下:
00:03.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 3 (rev 12) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 16
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 0000b000-0000bfff
Memory behind bridge: f9000000-faffffff
Prefetchable memory behind bridge: 00000000d0000000-00000000efffffff
Capabilities: <access denied>
Kernel driver in use: pcieport
Kernel modules: shpchp
00:1a.0 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #4 (prog-if 00 [UHCI])
Subsystem: Gigabyte Technology Co., Ltd Motherboard
Flags: bus master, medium devsel, latency 0, IRQ 16
I/O ports at ff00 [size=32]
Capabilities: <access denied>
Kernel driver in use: uhci_hcd
所以...我尝试通过更改 BIOS 设置(未找到 IRQ 分配选项)或将内核模块列入黑名单(“shpchp”,因为我同时使用 USB 和 PCIE 控制器)来解决该 IRQ“冲突”,但没有成功。
然后我开始尝试内核启动参数。第一次尝试使用错误建议的“irqpoll”选项。它没有解决任何问题,还开始看到其他消息:
Mar 26 14:17:23 Buda kernel: [ 1988.976483] hpet1: lost 9599 rtc interrupts
Mar 26 14:18:51 Buda kernel: [ 2076.378021] hpet1: lost 9600 rtc interrupts
Mar 26 14:20:11 Buda kernel: [ 2156.670873] hpet1: lost 9600 rtc interrupts
Mar 26 14:21:33 Buda kernel: [ 2238.533442] hpet1: lost 9599 rtc interrupts
Mar 26 14:22:17 Buda kernel: [ 2282.293272] hpet1: lost 9600 rtc interrupts
Mar 26 14:23:06 Buda kernel: [ 2331.292559] hpet1: lost 9600 rtc interrupts
Mar 26 14:24:42 Buda kernel: [ 2427.306337] hpet1: lost 9600 rtc interrupts
通过谷歌搜索,我找到并尝试了其他几个启动选项,但都没有成功。现在我正在使用带有“acpi=off”的系统,它是第一个“解决”IRQ“冲突”的选项,因为使用 IRQ16 的唯一设备是 USB 控制器;但是这样做我失去了 4 个 CPU 核心(我现在只看到 8 个中的 4 个),并且不知道我还禁用了什么(几个小时前才启用了“acpi=off”)。
我先是责怪 Firefox,然后是 nvidia 驱动程序,然后等待新的 kernel+xorg 堆栈……但都无济于事。我可以连续几个小时处理视频或大数据任务,甚至可以在这个系统上玩 AAA 游戏,没有任何问题,然后去看一些 YouTube 视频或阅读新闻,系统会冻结,没有任何 CPU 或热量问题。启动后,当我启动 thunderbird 和 Firefox 时,也会发生这种情况(并且上周经常发生)。系统日志中没有应用程序错误消息,没有崩溃,只有这个突然的 IRQ 问题。
我来这里寻求帮助来诊断这个问题。我不完全理解我收集的所有数据,以及我还需要在哪里寻找。有没有人有解决此类问题的经验?我还能做些什么来调试这个问题?
提前致谢。
答案1
在我发布问题几周后,我发现这是一个硬件问题。
我不知道是我的显卡还是内存插槽的问题,但它就是连接不好,有点松动。常规清洁程序可以解决这个问题。
也就是说,如果您遇到类似的问题,您也可以检查一下,但如果您不像我那么幸运,我担心这也可能是一个硬件问题。