【发布时间】:2018-07-24 20:10:03
【问题描述】:
我正在客户操作系统中实现设备驱动程序。为此,我需要分配一个需要连续物理内存的缓冲区空间。在来宾操作系统中使用 kmalloc 分配缓冲区是否保证连续的物理地址?如果没有,我怎样才能做到这一点?
【问题讨论】:
-
您分配的内存是否超过一页?
-
目前,我是。但我可以将其配置为一页缓冲区空间。 @迈克尔汉普顿
-
AFAIK kmalloc() 保证连续的物理内存。例如,您需要它来进行 DMA 传输。但是它提供的区块大小是有上限的。
-
是否由 linux kvm 处理? @迈克尔汉普顿
标签: memory-management linux-kernel virtualization kvm kmalloc