首页
›
Linux内核与驱动
›
036-缓存一致性协议
›
《内存屏障指令在ARM架构DMA同步中的调试技巧》
VIP10
本课程属于:036-缓存一致性协议
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
内存屏障指令在ARM架构DMA同步中的调试技巧
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
DMA与Cache一致性问题的根源
理解DMA直接内存访问与CPU Ca… · 以及为什么需要内存屏障
DMA
Cache
02
ARM架构内存模型基础
ARMv8-A内存模型中的弱一致性(… · 以及Store Buffer与Inv…
ARM
架构内存模型基础
03
内存屏障指令全景图
DMB · DSB · ISB指令的定义
内存屏障指令全景…
DMB
04
DMB指令详解
数据内存屏障(Data Memory… · 使用场景及在DMA同步中的典型用法
DMB
指令详解
05
DSB指令详解
数据同步屏障(Data Synchr… · 与DMB的关键区别 · 何时必须使用DSB
DSB
指令详解
06
ISB指令详解
指令同步屏障(Instruction… · 在自修改代码和上下文切换中的作用
ISB
指令详解
07
DMA描述符环与内存屏障
在DMA描述符环(Descripto… · 如何正确插入内存屏障保证描述符可见性
DMA
描述符环
08
DMA完成中断与内存屏障
在DMA完成中断处理函数中 · 如何通过内存屏障确保CPU读取到最新…
DMA
完成
09
DMA缓冲区同步
使用dma_map_single/d…
DMA
缓冲区同步
10
dma_alloc_coherent与一致性内存
一致性内存映射(Consistent… · 以及其局限性
dma
alloc
11
dma_sync_single_for_cpu与dma_sync_single_
这两个API背后的屏障语义与正确使用…
dma
sync
12
读写屏障分离
ARM中的Load-Acquire与… · 以及如何替代传统DMB实现更高效的同…
读写屏障分离
ARM
13
DMA与MMIO寄存器访问
访问外设MMIO寄存器时 · 如何结合内存屏障保证读写顺序的正确性
DMA
MMIO
14
多核DMA同步挑战
多个CPU核心同时操作DMA描述符或… · 内存屏障的放置策略
DMA
多核
15
调试工具1
使用Linux内核的CONFIG_D…
调试工具1
Linux
16
调试工具2
使用KCSAN(Kernel Con…
调试工具2
KCSAN
17
调试工具3
使用perf mem与ARM SPE…
调试工具3
perf
18
调试工具4
使用JTAG/SWD调试器配合硬件断…
调试工具4
JTAG/SWD
19
常见Bug模式1
缺失DMB导致描述符更新被CPU重排 · DMA读取到旧数据
Bug
常见
20
常见Bug模式2
过度使用DSB导致性能严重下降 · 以及如何优化为DMB
Bug
常见
21
常见Bug模式3
中断上下文中错误使用ISB导致指令预…
Bug
常见
22
常见Bug模式4
多核环境下屏障放置位置错误导致死锁或…
Bug
常见
23
ARM64 Linux内核中的屏障宏
mb() · rmb() · wmb()
ARM64
Linux
24
读写顺序与DMA描述符状态机
设计一个安全的DMA描述符状态机 · 并标注每个状态转换所需的屏障
DMA
读写顺序
25
DMA回环缓冲区(Loopback Buffer)调试案例
通过一个实际回环测试程序演示屏障缺失…
DMA
Loopback
26
网络驱动DMA同步实战
分析e1000/igb等网络驱动中内…
DMA
网络驱动
27
存储驱动DMA同步实战
分析NVMe驱动中PRP/SGL列表…
DMA
存储驱动
28
性能分析
内存屏障对DMA吞吐量的影响 · 如何通过微基准测试测量屏障开销
性能分析
DMA
29
ARM架构演进
从ARMv7到ARMv8/v9 · 内存屏障指令的变化与新增特性(如LD…
ARM
架构演进
30
总结与最佳实践
DMA驱动开发中内存屏障使用的Che…
最佳实践
DMA
所属VIP或分类
同VIP:Cache刷新操作与DMA缓存一致性协议实战
同VIP:Cache刷新操作在x86与ARM平台下的移植适配
同VIP:Cache失效机制在DMA传输中的故障定位与排查