kmalloc、vmalloc 和 DMA 缓冲为什么不能互相随意替代?
kmalloc 返回物理上连续的小到中等内存并适合多数内核对象;vmalloc 只保证虚拟连续,页表映射开销更大;DMA 必须使用 DMA API 获得设备可访问地址与一致性语义,不能把 CPU 虚拟地址直接给设备。
01
题干
kmalloc、vmalloc 和 DMA 缓冲为什么不能互相随意替代?
请先给出结论,再结合真实项目说明设计边界、失败模式和验证方法。
先用 30–60 秒组织自己的回答,再对照分层解析。
08