【发布时间】:2014-06-22 00:57:03
【问题描述】:
Ioremap 在内核模式下完成。 ioremap 是否在页表中创建条目 ioremap的调用还是地址被访问的时候?
【问题讨论】:
-
请说明-1的原因。如果你知道答案帮助
标签: linux linux-kernel kernel linux-device-driver
Ioremap 在内核模式下完成。 ioremap 是否在页表中创建条目 ioremap的调用还是地址被访问的时候?
【问题讨论】:
标签: linux linux-kernel kernel linux-device-driver
对于ioremap,页表会立即更新。由于该函数旨在将物理“I/O”地址映射到内核虚拟地址空间,因此设置页表条目以导致页面错误是没有意义的。本质上,页面错误支持将物理内存的一页动态替换为另一页。但根据定义,I/O 空间是不可替代的。
例如,ioremap 的一个常见用途是允许内核模块访问附加卡或其他外围设备上的寄存器空间。为了对卡执行操作,内核代码必须获得一个虚拟地址,该地址是指与卡的寄存器区域对应的物理总线地址。 ioremap 导致分配虚拟空间,并建立从该虚拟范围到卡空间的映射。 “交换”底层物理页面是没有意义的:该页面不是真正的内存页面,它具有任何其他物理内存无法复制的特殊功能。
【讨论】: