[{"data":1,"prerenderedAt":235},["ShallowReactive",2],{"zh-cn:CommonContent:/news/2024-06-17-fix-amd-gpu-reset-pre":3},{"id":4,"title":5,"body":6,"categories":223,"date":226,"description":17,"extension":227,"home":228,"important":228,"meta":229,"navigation":230,"path":231,"seo":232,"stem":233,"__hash__":234},"zhCN/news/2024-06-17-fix-amd-gpu-reset-pre.md","请您测试：龙架构 AMD 显卡稳定性修复",{"type":7,"value":8,"toc":217},"minimark",[9,18,22,25,48,54,79,84,95,100,108,117,120,123,152,155,158,161,164,167,170,184,192,201,213],[10,11,12,17],"p",{},[13,14],"img",{"alt":15,"src":16},"","/assets/news/2024-06-17-amd-gpu-reset.jpg","\n经排查，我们终于定位到了龙架构用户在使用 AMD GCN 2.0（如 R7 360）、GCN 3.0（如 R9 Nano）及 GCN 4.0（如 RX 400/500 系列及 WX 2100/3100/4100/5100/7100）架构显卡且有高图形负载（如 3D 游戏和高清视频）时偶发驱动复位和桌面重启等不稳定现象的症结并提出了修复；如确定修复可用，使用 AMD 显卡的各位用户朋友们终于可以舒心地发挥您显卡的机能了（先前我们针对这些显卡默认关闭了动态电源管理规避稳定性问题）！",[19,20,21],"h2",{"id":21},"波及范围",[10,23,24],{},"如果您使用如下型号的 AMD 显卡，该测试修复可解决您在龙架构设备上的显卡复位问题；由于 AMD 显卡产品线庞杂，故有如此之长的列表，请见谅！",[10,26,27,28,35,36,41,42,47],{},"您也可以使用 TechPowerUp 的 GPU 参数数据库 (GPU Specs Database) 查询 ",[29,30,34],"a",{"href":31,"rel":32},"https://www.techpowerup.com/gpu-specs/?mobile=No&architecture=GCN%202.0&sort=generation",[33],"nofollow","GCN 2.0","、",[29,37,40],{"href":38,"rel":39},"https://www.techpowerup.com/gpu-specs/?mobile=No&architecture=GCN%203.0&sort=generation",[33],"GCN 3.0"," 及 ",[29,43,46],{"href":44,"rel":45},"https://www.techpowerup.com/gpu-specs/?mobile=No&architecture=GCN%204.0&sort=generation",[33],"GCN 4.0"," 对应的显卡列表以确定您的显卡是否受影响。",[10,49,50],{},[51,52,53],"strong",{},"AMD Radeon 系列：",[55,56,57,61,64,67,70,73,76],"ul",{},[58,59,60],"li",{},"HD7790, HD8770",[58,62,63],{},"R7 260, R7 260X, R7 360",[58,65,66],{},"R9 285, R9 285X, R9 290, R9 290X, R9 295X2, R9 360, R9 380, R9 380X, R9 390, R9 390X",[58,68,69],{},"R9 Fury, R9 Fury X, R9 Nano",[58,71,72],{},"RX 455, RX 460, RX 470, RX 470D, RX480",[58,74,75],{},"RX 540, RX 550, RX 550X, RX 560, RX 560D, RX 570, RX 580, RX 590, RX 590 GME",[58,77,78],{},"530, 530X, 535, 620, 625, 630, 640",[10,80,81],{},[51,82,83],{},"AMD FirePro 系列：",[55,85,86,89,92],{},[58,87,88],{},"S7100X, S7150, S7150 X2",[58,90,91],{},"S9100, S9150, S9170, S9300 X2",[58,93,94],{},"W4300, W5100, W7100, W8100, W9100",[10,96,97],{},[51,98,99],{},"AMD Radeon Pro 系列：",[55,101,102,105],{},[58,103,104],{},"WX 2100, WX 3100, WX 3200, WX 4100, RX 5100, WX 7100, WX 8200, WX 9100",[58,106,107],{},"Duo, SSG",[10,109,110,111,116],{},"实际上，",[29,112,115],{"href":113,"rel":114},"https://www.techpowerup.com/gpu-specs/?mobile=No&architecture=GCN%201.0&sort=generation",[33],"GCN 1.0 "," 系列显卡（如 R7 240）也受此问题影响，但造成问题的原因可能不同，我们仍在定位这一问题并将努力研究解决方案。",[19,118,119],{"id":119},"测试指引",[10,121,122],{},"请打开终端并输入如下命令：",[124,125,129],"pre",{"className":126,"code":127,"language":128,"meta":15,"style":15},"language-bash shiki shiki-themes github-light","oma topics --opt-in linux-kernel-6.10\n","bash",[130,131,132],"code",{"__ignoreMap":15},[133,134,137,141,145,149],"span",{"class":135,"line":136},"line",1,[133,138,140],{"class":139},"s7eDp","oma",[133,142,144],{"class":143},"sYBdl"," topics",[133,146,148],{"class":147},"sYu0t"," --opt-in",[133,150,151],{"class":143}," linux-kernel-6.10\n",[10,153,154],{},"并按照指引更新系统；内核包版本应为 6.10.0-0.4，请留意 oma 确认界面。",[19,156,157],{"id":157},"技术分析",[10,159,160],{},"我们在 Linux 内核相关支持代码中发现，AMD 在 2015 年分别引入的 amdgpu gfx7/cik (GCN2) 支持 ¹ 及 gfx8 (GCN4) 代码 ² 中分别包含同样的规避性代码，在写入内存及发出中断请求前执行了额外的 EVENT_WRITE_EOP (Write and End-of-Pipe) 指令重复写入内存，以期解决一处（AMD 完全没有进行解释的）潜在硬件问题。",[10,162,163],{},"这一修复在搭载龙芯 7A 桥片的龙架构上产生了副作用：两次额外的写操作在已知中断请求及 DMA 数据处理顺序有概率发生错误 ³ 的龙芯 7A 桥片上可能造成数据不一致问题，进而导致先前遇到的驱动超时、崩溃及复位问题。",[10,165,166],{},"为此，社区维护者郑兴达针对 gfx7 及 gfx8 架构显卡编写了两个补丁 ⁴，在保持两次写入的规避代码的设定下，让两次写入的数据保持一致，规避龙架构上可能发生数据不一致的问题。",[10,168,169],{},"———",[10,171,172,173,41,178,183],{},"¹ AMD 在 ",[29,174,177],{"href":175,"rel":176},"https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a2e73f56fa6282481927ec43aa9362c03c2e2104",[33],"amdgpu",[29,179,182],{"href":180,"rel":181},"https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a9c73a0e022c33954835e66fec3cd744af90ec98",[33],"radeon"," 内核模块针对 gfx7/cik (GCN 2.0/3.0) 架构显卡的规避补丁",[10,185,186,187],{},"² AMD 针对 ",[29,188,191],{"href":189,"rel":190},"https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bf26da927a1cd57c9deb2db29ae8cf276ba8b17b",[33],"gfx8 (GCN 4.0) 架构显卡的规避补丁",[10,193,194,195,200],{},"³ 从龙芯中科陈华才老师",[29,196,199],{"href":197,"rel":198},"https://github.com/chenhuacai/linux/commit/da63bd7429f2bb7ce7988a95d125f50426466555",[33],"针对7A 桥片平台的 radeon 内核模块的修复","说明可见，7A 桥片中断请求及 DMA 数据处理顺序有概率出现问题",[10,202,203,204,41,208,212],{},"⁴ 郑兴达针对 ",[29,205,177],{"href":206,"rel":207},"https://github.com/AOSC-Tracking/linux/commit/1d0e4bb75b29ef80b7129d76c9a0609d9b912eeb",[33],[29,209,182],{"href":210,"rel":211},"https://github.com/AOSC-Tracking/linux/commit/c7772bb8b1a27d59bbb32ef8612a9a41fecb6410",[33]," 内核模块的修复补丁",[214,215,216],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":15,"searchDepth":218,"depth":218,"links":219},2,[220,221,222],{"id":21,"depth":218,"text":21},{"id":119,"depth":218,"text":119},{"id":157,"depth":218,"text":157},[224,225],"news","advisories","2024-06-18T06:19:13.000Z","md",false,{},true,"/news/2024-06-17-fix-amd-gpu-reset-pre",{"title":5,"description":17},"news/2024-06-17-fix-amd-gpu-reset-pre","KAExUlrG7tfvVL5BWlHjJikZwH6sjsM7Bni8kdQZK3s",1773742825440]