Linux内存从0到1学习笔记(8.9 可恢复硬件页面错误的含义)

43 篇文章 62 订阅 ¥39.90 ¥99.00

    现代硬件支持可恢复的页错误,这对DMA围栏有很多影响。

    首先,挂起的页面错误显然会阻碍加速器上运行的任务,通常需要内存分配来解决错误。但是,不允许内存分配来控制 DMA 围栏的完成,这意味着使用可恢复页面错误的任何工作负载都不能使用 DMA 围栏进行同步,而必须改用由用户空间控制的同步围栏。

    这在 GPU 上会带来一个问题,因为 Linux 上的当前桌面合成器协议依赖于 DMA 围栏,这意味着如果没有在用户空间围栏之上构建的全新用户空间堆栈,它们将无法从可恢复的页面错误中受益。具体而言,这意味着无法进行隐式同步。例外情况是页面错误仅用作迁移提示,并且从不按需填充内存请求。目前,这意味着 GPU 上的可恢复页面错误仅限于纯计算工作负载。

    此外,GPU 通常在 3D 渲染和计算端之间共享资源,例如计算单元或命令提交引擎。如果具有 DMA 围栏的 3D 作业和使用可恢复页面错误的计算工作负载都处于挂起状态,则它们可能会死锁:

  • 3D 工作负载可能需要等待计算作业完成并首先释放硬件资源。
  • 计算工作负荷可能停滞在页面错误中,因为内存分配正在等待 3D 工作负荷的 DMA 围栏完成。

有几个选项可以防止此问题,其中一个驱动程序需要确保:

  • 计算工作负载始终可以被抢占,即使页面错误处于挂起状态且尚未修复也是如此。并非所有硬件都支持此功能。
  • DMA 围栏工作负载和需要页面错误处理的工作负载具有独立的硬件资源来保证前进进度。这可以通过例如通过专用引擎和 DMA 围栏工作负载的最小计算单元预留来实现。
  • 通过仅在 DMA 围栏工作负载进行中时为其预留硬件资源,可以进一步优化预留方法。这必须涵盖从 DMA 围栏对其他线程可见到围栏通过 dma_fence_signal(࿰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高桐@BILL

分享快乐,快乐分享...

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值