dma_alloc_coherent vs. dma_alloc_writecombine

转载 2012年03月24日 12:47:36

这两天在做 DMA 相关开发, 遇到一对分配 dma buffer 的函数,dma_alloc_coherent 与 dma_alloc_writecombine。 不知其区别。 google 一下也没有得到信息。只好自己看代码。

 

原来 dma_alloc_coherent 在 arm 平台上会禁止页表项中的 C (Cacheable) 域以及 B (Bufferable)域。

而 dma_alloc_writecombine 只禁止 C (Cacheable) 域.

 

#define pgprot_noncached(prot)  __pgprot(pgprot_val(prot) & ~(L_PTE_CACHEABLE | L_PTE_BUFFERABLE))
#define pgprot_writecombine(prot) __pgprot(pgprot_val(prot) & ~L_PTE_CACHEABLE)

 

进一步查找 ARM 书籍, 原来 C 代表是否使用高速缓冲存储器, 而 B 代表是否使用写缓冲区。

 

这样, dma_alloc_writecombine 分配出来的内存不使用缓存,但是会使用写缓冲区。

而 dma_alloc_coherent   则二者都不使用。


相关文章推荐

dma_alloc_writecombine和dma_alloc_coherent的区别

先理解cache的作用 CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在,就称为“命中(hit)”,此时CPU直接从Cache中调用该内容;否则,就 称为“ 不命中”,CPU只好...
  • wj2030
  • wj2030
  • 2015年04月29日 14:38
  • 296

dma_alloc_writecombine

先理解cache的作用 CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在,就称为“命中(hit)”,此时CPU直接从Cache中调用该内容;否则,就 称为“ 不命中”,CPU只好...

DMA及cache一致性的学习心得 --dma_alloc_writecombine

http://xmxohy.blog.163.com/blog/static/53469584201082734630713/ 先理解cache的作用 CPU在访问内存时,首先判断所要访问的内...

【引用】DMA内存申请--dma_alloc_coherent

在项目驱动过程中会经常用到dma传输数据,而dma需要的内存有自己的特点,一般认为需要物理地址连续,并且内存是不可cache的,在linux内核中提供一个供dma所需内存的申请函数dma_alloc_...

dma_alloc_coherent (建立一致性 DMA 映射函数)

A: 内存的虚拟起始地址,在内核要用此地址来操作所分配的内存 B: struct device指针,可以平台初始化里指定,主要是dma_mask之类,可参考framebuffer C: 实际分配大小,...

【study】DMA内存申请--dma_alloc_coherent 及 寄存器 与 内存

在项目驱动过程中会经常用到dma传输数据,而dma需要的内存有自己的特点,一般认为需要物理地址连续,并且内存是不可cache的,在linux内核中提供一个供dma所需内存的申请函数dma_alloc_...

dam_alloc_writecombine函数和dam_alloc_coherent()函数

dma_alloc_writecombine 先理解cache的作用 CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在, 就称为“命中(hit)”,此时CPU直接从Ca...

多线程下内存分配方式的比较(TCMalloc vs mt_alloc)

多线程下内存分配方式的比较(TCMalloc vs mt_alloc) 分类: Libraries2012-10-31 18:06 837人阅读 评论(0) 收藏 举报 当软件性能...

object-c学习笔记:new vs alloc init

object-c学习笔记:new vs alloc init在object-c基础教程这本书里老是可以看见类似下面这种代码,我这小菜鸟就纳闷了,啥区别啊,看上去都一样么。网上找了找,找到一些说法,这里...

STM32 VS1003 串口2DMA发送录音数据

  • 2017年10月31日 23:01
  • 3.66MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dma_alloc_coherent vs. dma_alloc_writecombine
举报原因:
原因补充:

(最多只允许输入30个字)