【发布时间】:2017-08-31 19:23:30
【问题描述】:
我知道 "magic ring buffer" 技巧涉及在进程地址空间中镜像底层缓冲区,以允许数据块与单个 memcpy() 一起排队,而不必担心回绕。
我想在 Linux 内核模块中完成同样的事情。假设我有一个用dma_alloc_coherent() 创建的缓冲区,它的虚拟地址是V,它的长度是N。如何创建映射,使其虚拟地址 [V+N,V+2N) 映射到与 [V,V+N) 相同的底层页面?
注意:这是在 32 位 ARM Linux 中。
【问题讨论】:
标签: c linux-kernel arm linux-device-driver circular-buffer