linux内核内存管理: ZONE_DMA , ZONE_NORMAL大小改变

标签 linux kernel driver device

Linux内核中分配内存区域的任何固定比例(例如ZONE_DMA)应该在0-16MB之间,ZONE_NORMAL在16-896MB之间,或者我们可以根据我们的需求进行更改,如果可以,如何更改?

最佳答案

这些内存区域是根据硬件限制定义的。即使使用更大的 ZONE_DMA 重新编译内核,执行 16 位 DMA 的设备也会失败。 64 位上的 DMA32 相同。

理论上也许你可以缩小一些区域,但我不确定你这样做有什么理由。 AFAIK 正常分配可以自动溢出到 DMA 区域。

如果您想要超过 1G 的内核内存,那么您需要更改一些顶级配置选项,但不确定是哪一个。

关于linux内核内存管理: ZONE_DMA , ZONE_NORMAL大小改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13469751/

相关文章:

c++ - Windows 中的 MongoDB C++ 驱动程序入门

linux - 是否可以检查非阻塞套接字是否已关闭?

linux - 无法禁用 gcc 警告 - 从整数创建指针而不进行强制转换

构建 opencl 内核失败

c - 为什么当我使用 copy_from_user 时,一些模糊字符添加到原始缓冲区?

c - 开发与内核通信的应用程序

java - 在mongodb中使用AND查询嵌入对象

python - 对于开源项目来说“太小”有多小?

linux - ./yourscript.sh 和 sh yourscript.sh 之间有什么区别

java - Raspberry Pi 路由器上的组播