0
我在調試內核崩潰轉儲。一個進程試圖對新的區域進行內存映射似乎存在問題。問題是它無法保存內存映射信號量。rw_semaphore的負計數值
當我查看進程的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
}
},