Memory management 如何使用vm_insert_页面取消插入到vma中的页面?

Memory management 如何使用vm_insert_页面取消插入到vma中的页面?,memory-management,linux-kernel,linux-device-driver,Memory Management,Linux Kernel,Linux Device Driver,我使用vm_insert_page将页面插入到用户空间VMA,现在我想从该VMA中删除该页面。但我不希望整个VMA都被取消映射,只希望是精确的页面范围。我应该调用哪个内核函数?您不需要任何特殊的内核代码来完成这项任务。您所需要的只是让用户空间在要取消映射的页面上调用munmap()系统调用。另一个选项是直接从内核调用do\u munmap()。查看munmap()系统调用的实现 但是,我可以像vm\u insert\u page()那样做,而不需要任何特殊的内核代码吗?该领域正在开发新的内核功能

我使用
vm_insert_page
将页面插入到用户空间VMA,现在我想从该VMA中删除该页面。但我不希望整个VMA都被取消映射,只希望是精确的页面范围。我应该调用哪个内核函数?

您不需要任何特殊的内核代码来完成这项任务。您所需要的只是让用户空间在要取消映射的页面上调用
munmap()
系统调用。另一个选项是直接从内核调用
do\u munmap()
。查看
munmap()
系统调用的实现

但是,我可以像
vm\u insert\u page()
那样做,而不需要任何特殊的内核代码吗?该领域正在开发新的内核功能,请参阅关于。