今天早上,我有一个关于虚拟内存和dma的讲座。 一切都被解释得非常快,老师马上就离开了房间,告诉我他下次会回答我的问题。 “好的。明天我不想理解”。
在X86和内核模块上,对于能够处理32位范围的给定pcie设备, dma_alloc_coherent()
总是试图在可用内核空间中获取内存(通常是前1Gb) )吗
由于内存映射在那里并且内核总是位于物理上连续的页面上,因此两个连续的虚拟页面也应该在物理上连续,是吗? (要分配,比如16K内存,我会搜索4个免费的连续虚拟页面,我不需要使用remap_pfn_range
,因为它只在内核空间中。)