【发布时间】:2017-01-09 21:15:46
【问题描述】:
我正在调试内核故障转储。一个进程试图内存映射一个新区域似乎存在问题。问题是它无法保存内存映射信号量。
当我查看进程的 mm_struct 并打印其内容时。我看到struct rw_semaphore mmap_sem 如下所示。现在,count 的值是否看起来可疑?它有一个负值,好像有一个竞争条件,在检查为零后它被两个不同的线程减少了两次。
mmap_sem = {
count = -4294967295,
wait_lock = {
{
rlock = {
raw_lock = {
slock = 262148
}
}
}
},
wait_list = {
next = 0xffff8801f0113e48,
prev = 0xffff8801f0113e48
}
},
【问题讨论】:
标签: linux-kernel linux-device-driver mutex embedded-linux semaphore