ioremap是否需要将来的页面错误

时间:2014-05-05 16:28:13

标签: linux linux-kernel kernel linux-device-driver

Ioremap在内核模式下完成。 ioremap是否在页面表中创建了一个条目  调用ioremap或访问地址时?

1 个答案:

答案 0 :(得分:2)

对于ioremap,页面表会立即更新。由于该函数旨在将物理“I / O”地址映射到内核虚拟地址空间,因此设置页表条目以引起页面错误是没有意义的。本质上,页面错误支持将一页物理内存动态替换为另一页。但根据定义,I / O空间不可替代。

例如,ioremap的一个常见用途是允许内核模块访问附加卡或其他外围设备上的寄存器空间。为了在卡上执行操作,内核代码必须获得一个虚拟地址,该虚拟地址引用与卡的寄存器区域相对应的物理总线地址。 ioremap导致虚拟空间的分配,以及从该虚拟范围到卡空间的映射的建立。 “交换”底层物理页面是没有意义的:该页面不是真正的内存页面,它具有不能被任何其他物理内存复制的特殊功能。