Linux内存从0到1学习笔记(8.8 无限DMA Fence)

43 篇文章 62 订阅 ¥39.90 ¥99.00

在不同时间,结构体dma_fence具有无限期的时间,直到dma_fence_wait()执行完成。例如:

  • Future Fence(未来围栏),在HWC1中使用的,用于在显示器不再使用缓冲区时发出信号,并在屏幕更新时创建,以使得缓冲区可见。此围栏完成的时间完全在用户空间的控制之下。
  • Proxy Fence(代理围栏),建议处理尚未设置围栏的drm_syncobj。用于异步延迟命令提交。
  • Userspace Fence(用户空间围栏)或GPU Futexe(GPU互斥),命令缓冲区内的细密纹理的锁定,用于用户空间跨引擎或CPU同步,然后将其作为DMA围栏导入以集成到现有的winsys协议中。
  • 长时间运行计算命令缓冲,同时仍在使用传统的用于内存管理的批处理 DMA 围栏,而不是上下文抢占 DMA重新计划计算作业时重新附加的围栏。

上面所有的这些方案都有一个共同点,就是用户空间控制这些方案的依赖关系以及控制它们工作的时机。将无限期围栏与普通内核内 DMA 围栏混合使用将不起作用,即使是为了防止恶意用户空间而包含回退超时:

  • 只有内核知道所有 DMA 围栏依赖关系,用户空间不知道由于内存管理或调度程序决策而注入的依赖关系。
  • 只有用户空间知道无限期围栏中的所有依赖项以及它们何时完成,内核没有可见性。

此外,内核必须能够阻止用户空间命令提交以满足内存管理需求,这意味着我们必须支持依赖于 DMA 围栏的无限期围栏。如果内核也像 DMA 围栏一样支持内核中的无限期围栏,就像上述任何建议一样,则可能会出现死锁。       

这意味着内核可能会意外地通过用户空间不知道的内存管理依赖

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

高桐@BILL

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

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

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

打赏作者

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

抵扣说明:

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

余额充值