0

我使用memmap=8G$4Glinux 内核引导参数保留了内存块。

需要ioremap这个内存吗?

ioremap手册页说:

ioremap 执行平台特定的操作序列,以使总线内存 CPU 可通过 readb/readw/readl/writeb/writew/writel 函数和其他 mmio 帮助程序访问。返回的地址不保证可以直接用作虚拟地址。

因此,如果我不能将返回的ioremap地址用作直接寻址内存的虚拟地址,那么一个更广泛的问题是我们何时应该ioremap使用内存?

4

2 回答 2

1

是的,您必须到ioremap该区域才能访问它。当您指示内核忽略此区域时,内核不会为此内存区域设置页面目录条目。

如果重新映射地址空间的地址,则返回的地址ioremap可能无法直接使用。io-port当您从memory地址空间重新映射地址时,可以直接使用它们。

但是,请查看https://unix.stackexchange.com/questions/37729/how-can-i-reserve-a-block-of-memory-from-the-linux-kernel

于 2012-10-16T23:30:55.550 回答
0

根据我保留(或阻塞)的经验,内存如下。

如果您尝试保留特定容量的内存,您可能必须重新映射 BIOS 提供的现有内存映射。

如果您的系统不允许您这样做,那么您将必须确定 BIOS 提供的内存映射中哪个区域是空闲的,并且只有那个区域可以保留。

于 2013-11-19T10:41:56.653 回答