现代硬件支持可恢复的页错误,这对DMA围栏有很多影响。
首先,挂起的页面错误显然会阻碍加速器上运行的任务,通常需要内存分配来解决错误。但是,不允许内存分配来控制 DMA 围栏的完成,这意味着使用可恢复页面错误的任何工作负载都不能使用 DMA 围栏进行同步,而必须改用由用户空间控制的同步围栏。
这在 GPU 上会带来一个问题,因为 Linux 上的当前桌面合成器协议依赖于 DMA 围栏,这意味着如果没有在用户空间围栏之上构建的全新用户空间堆栈,它们将无法从可恢复的页面错误中受益。具体而言,这意味着无法进行隐式同步。例外情况是页面错误仅用作迁移提示,并且从不按需填充内存请求。目前,这意味着 GPU 上的可恢复页面错误仅限于纯计算工作负载。
此外,GPU 通常在 3D 渲染和计算端之间共享资源,例如计算单元或命令提交引擎。如果具有 DMA 围栏的 3D 作业和使用可恢复页面错误的计算工作负载都处于挂起状态,则它们可能会死锁:
有几个选项可以防止此问题,其中一个驱动程序需要确保:
上一篇:组图丨靓丽美景 尽显西藏生态底色 美景西藏 西藏318实拍美景完整视频
下一篇:首播就拿下飙升榜第一,43岁阿娇终于告别“肉装妲己”的尴尬了? 39岁阿娇沉寂10年再逆袭 41岁阿娇成功减重20斤上热搜