Ioremap 是在内核模式下完成的。 ioremap 是否在页表中创建条目 ioremap的调用还是访问地址的时候?
最佳答案
对于ioremap,页表是立即更新的。由于该函数旨在将物理“I/O”地址映射到内核虚拟地址空间,因此设置页表条目以导致页面错误是没有意义的。本质上,页面错误支持将物理内存的一页动态替换为另一页。但根据定义,I/O 空间是不可替代的。
例如,ioremap 的一个常见用途是允许内核模块访问附加卡或其他外围设备上的寄存器空间。为了对卡片进行操作,内核代码必须获得一个虚拟地址,该地址指的是卡片寄存器区域对应的物理总线地址。 ioremap 导致分配虚拟空间,并建立从该虚拟范围到卡空间的映射。 “交换”底层物理页面是没有意义的:该页面不是真正的内存页面,它具有无法被任何其他物理内存复制的特殊功能。
关于linux - ioremap 是否需要 future 的页面错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23477297/