有人知道什么时候调用struct vm_operations_struct(linux/mm.h)的close函数指针吗?是在为指定区域调用munmap时吗?
如果是这样,那么这是同步的,这意味着close应该在从munmap返回之后调用?

最佳答案

如果我没记错的话,它在munmap中,不一定是同步的,但它确实需要一些关键部分的锁/信号,这样就不能错误地从munmap区域读取get-user-u页面和访问。如果同步意味着关闭发生在munmap中(您的意思是串行的),那么是的,vma区域从链表中删除,然后返回给内核以分配给其他进程(物理地址)。

09-04 02:00