【发布时间】:2012-11-20 09:07:19
【问题描述】:
linux内核中分配内存区域的任何固定比例,比如ZONE_DMA,应该在0-16MB之间,ZONE_NORMAL在16-896MB之间,或者我们可以根据需要改变,如果可以,怎么做?
【问题讨论】:
标签: linux kernel driver device
linux内核中分配内存区域的任何固定比例,比如ZONE_DMA,应该在0-16MB之间,ZONE_NORMAL在16-896MB之间,或者我们可以根据需要改变,如果可以,怎么做?
【问题讨论】:
标签: linux kernel driver device
这些内存区域是根据硬件限制定义的。即使使用更大的 ZONE_DMA 重新编译内核,执行 16 位 DMA 的设备也会失败。 64 位上的 DMA32 也一样。
理论上也许你可以缩小一些区域,但我不确定你是否有这样做的理由。 AFAIK 正常分配可以自动溢出到 DMA 区域。
如果您想要超过 1G 的内核内存,那么您需要更改一些顶级配置选项,不确定是哪个。
【讨论】: