Hi Kirill, > But if you do the operation for the VM_LOCKED vma, you'll have two locked > VMA's now, right? Where do you account the old locked vma you left behind? You bring up a good point. In a previous iteration of my patch I had it clearing the locked flags on the old VMA as technically the locked pages had migrated. I talked myself out of that but the more I think about it we should probably do that. Something along the lines of: + if (vm_flags & VM_LOCKED) { + /* Locked pages would have migrated to the new VMA */ + vma->vm_flags &= VM_LOCKED_CLEAR_MASK; + if (new_len > old_len) + mm->locked_vm += (new_len - old_len) >> PAGE_SHIFT; + } I feel that this is correct. The only other possible option would be to clear only the VM_LOCKED flag on the old vma leaving VM_LOCKONFAULT to handle the MCL_ONFAULT mlocked situation, thoughts? Regardless I'll have to mail a new patch because that part where I'm incrementing the mm->locked_vm lost the check on VM_LOCKED during patch versions. Thanks again for taking the time to review. Brian