内核 6.5.2 似乎在无重试页面错误时导致 amdgpu 崩溃

内核 6.5.2 似乎在无重试页面错误时导致 amdgpu 崩溃

开始之前:我在 Arch Linux 论坛上回复了一个关于类似问题的帖子(https://bbs.archlinux.org/viewtopic.php?id=284076),因为我在 Arch 上。我在这里请求获得更多帮助,并检查使用其他发行版的人是否遇到同样的问题。

将内核升级到 Arch 存储库上的当前最新版本(即6.5.2-arch1或我以前使用的版本)后6.5.2-zen1,我遇到了随机 GPU 崩溃,导致系统几乎无法使用,因为它发生在大约 5~20 分钟的正常运行时间内。

系统日志显示如下:

Sep 11 20:00:46 yoohyeon.dc.sidlibrary.org kernel: amdgpu 0000:07:00.0: amdgpu: [gfxhub0] no-retry page fault (src_id:0 ring:24 vmid:1 pasid:32814, for process chrome pid 4073 thread chrome:cs0 pid 4101)
Sep 11 20:00:46 yoohyeon.dc.sidlibrary.org kernel: amdgpu 0000:07:00.0: amdgpu:   in page starting at address 0x0000e38dbdd3b000 from IH client 0x1b (UTCL2)
Sep 11 20:00:46 yoohyeon.dc.sidlibrary.org kernel: amdgpu 0000:07:00.0: amdgpu: VM_L2_PROTECTION_FAULT_STATUS:0x00100430
Sep 11 20:00:46 yoohyeon.dc.sidlibrary.org kernel: amdgpu 0000:07:00.0: amdgpu:          Faulty UTCL2 client ID: IA (0x2)
Sep 11 20:00:46 yoohyeon.dc.sidlibrary.org kernel: amdgpu 0000:07:00.0: amdgpu:          MORE_FAULTS: 0x0
Sep 11 20:00:46 yoohyeon.dc.sidlibrary.org kernel: amdgpu 0000:07:00.0: amdgpu:          WALKER_ERROR: 0x0
Sep 11 20:00:46 yoohyeon.dc.sidlibrary.org kernel: amdgpu 0000:07:00.0: amdgpu:          PERMISSION_FAULTS: 0x3
Sep 11 20:00:46 yoohyeon.dc.sidlibrary.org kernel: amdgpu 0000:07:00.0: amdgpu:          MAPPING_ERROR: 0x0
Sep 11 20:00:46 yoohyeon.dc.sidlibrary.org kernel: amdgpu 0000:07:00.0: amdgpu:          RW: 0x0

我尝试在 mesa/专有驱动程序之间切换,也在 mesa radeon-vulkan 和 amdvlk 之间切换,更改 chrome 使用的会话类型(X11/Wayland),或更改整个 DE 的会话类型(我使用 KDE Plasma,但基于快速搜索GNOME 用户似乎也有同样的问题),或者添加网上到处建议的内核命令行参数(放心,我在应用之前参考了文档以了解其含义),例如amdgpu.runpm=0、等,但没有amdgpu.dpm=0运气amdgpu.vm_update_mode=3它们中的任何一个或它们的组合。特别是,amdgpu.dpm=0导致系统无法启动,所以我想这绝对不是我要找的。

当我使用 chrome/chromium(有或没有 vaapi 硬件加速,以及 X11/Wayland 会话)以及外接显示器(4K2K@60Hz1 + 全高清@60Hz1) 通过 USB-C DP Alt 连接,然后通过扩展坞转换为 HDMI。

幸运的是,将内核降级到6.4.12-arch16.4.12-zen1似乎使系统稳定,这就是为什么我怀疑新内核是问题所在,并决定在这里询问是否有任何其他发行版内核或来自 kernel.org 的普通内核具有同样的问题。我现在暂时使用linux-ltsArch 内核包(具体来说,6.1.52-1-lts内核)以使系统可用,到目前为止它很稳定,但我想成为那个早期的适配器,继续使用几乎最新的内核版本 XD

虽然我会在 Arch 论坛的帮助下尝试将哪些提交可能对这个问题做出贡献,但欢迎任何想法、问题解决方案或建议。

感谢您花时间阅读此问题,如果您这样做,请回复/回答它!

答案1

好像有报告设置 amdgpu 模块参数amdgpu.mcbp=0可以解决自 6.5 内核以来使用该模块的用户的问题。

我还发现,根据版本的内核文档,amdgpu.mcbp参数的默认值从内核版本 6.5 中从(禁用)更改0为(自动)-16.46.5(参见页面的“mcbp”条目)。

由于它被描述为切换“中间命令缓冲区抢占”的参数,考虑到提到的与权限相关的图形虚拟机页面错误的日志,我认为这是我遇到问题的原因。

相关内容