mmap信号量锁定内核中的页面

时间:2011-07-24 07:45:21

标签: linux-kernel semaphore kernel mmap

如果我已经为mm_struct保留了mmap信号量(读取),并且我想将一些数据写入页面结构的成员,我应该up_read信号量并尝试在mm_struct上获取down_write或者我应该使用单独锁定(它是我创建的结构成员,它是一个列表)。另外,如果我已经持有一个down_read信号量,并且我调用另一个down_reads相同信号量的方法,这不应该从我的理解中解除僵局吗?

1 个答案:

答案 0 :(得分:0)

我发现解决方案是down_read不会导致死锁。相反,我使用自旋锁来维护修改列表的专有权,并更改页面的标志。这允许我避免在同一页面上出现多个错误的问题,并且还允许我看到如果我当前持有锁,那么页面错误处理程序可以返回,因为我已经处理了该错误。