- 论坛徽章:
- 0
|
我觉得映射内存还是会的吧 不然很多字符驱动里面为啥要锁页呢 比如下面一个字符驱动
在主函数里面分配并逐页锁页
vmalloc_area = vmalloc(MAPLEN);
if (!vmalloc_area)
goto fail4;
for (virt_addr = (unsigned long)vmalloc_area;
virt_addr < (unsigned long)(&(vmalloc_area[MAPLEN / sizeof(int)]));
virt_addr += PAGE_SIZE) {
SetPageReserved(virt_to_page
(vaddr_to_kaddr((void *)virt_addr)));
}
在mmap里面再次把vma锁住
int mapdrv_mmap(struct file *file, struct vm_area_struct *vma)
{
。。。。
/* do not want to have this area swapped out, lock it */
vma->vm_flags |= VM_LOCKED;
。。。。
return 0;
}
对于用一page 锁了两次 不知道能不能说明问题 |
|