mlock对page MOVABLE和RECLAIMABLE特性的影响

系统调用mlock允许应用进程锁住某一个地址空间,这将阻止Linux内存回收进程回收这个地址空间的页面。

mlock仅仅在kernel层对给定地址范围所在的VMA增加 VM_LOCKED标记,当linux kernel进行内存回收时,会首先判断VMA是否有VM_LOCKED标记,如果存在,那么不会对这个地址范围内的页面进行回收


锁定后,这个地址范围内的物理页面,就从RECLAIMABLE状态,变为UN-RECLAIMABLE状态。 mlock并不会影响物理页面的MOVABLE特性。


注意,网上有种错误的说法,mlock结束前,这个地址空间内的物理页面已经完成映射,并锁定。这是不完全正确的,有些情况下,kernel仅在访问这个地址空间后,才通过page fault调入页面。



你可能感兴趣的:(mlock对page MOVABLE和RECLAIMABLE特性的影响)