Linux高端内存映射(中)

2014-11-24 12:49:16 · 作者: · 浏览: 4

临时内核映射和永久内核映射相比,其最大的特点就是不会阻塞请求映射页框的进程,因此临时内核映射请求可以发生在中断和可延迟函数中。系统中的每个CPU都有自己的临时内核映射窗口,根据不同的需求,选择不同的窗口来创建映射,这些窗口都以枚举类型定义在km_type中


其中KM_TYPE_NR标志了一个CPU可以拥有多少个页表项窗口来建立映射。


临时内核映射的实现也比永久内核映射要简单,当一个进程申请在某个窗口创建映射,即使这个窗口已经在之前就建立了映射,新的映射也会建立并且覆盖之前的映射,所以说这种映射机制是临时的,并且不会阻塞当前进程。


若要手动撤销当前的临时内核映射,则可调用kunmap_atomic()函数