0
커널 크래시 덤프를 디버깅하고 있습니다. 하나의 프로세스가 새로운 영역을 메모리 맵핑하려고 할 때 문제가있는 것으로 보입니다. 문제는 메모리 맵 세마포어를 유지할 수 없다는 것입니다.rw_semaphore의 음수 카운트 값
프로세스의 mm_struct를보고 내용을 인쇄했습니다. 나는 struct rw_semaphore mmap_sem
이 아래와 같이 있다는 것을 알았다. 이제 그는 count
의 가치가 의심 스럽습니까? 그것은 영 (0)을 확인한 후에 두 개의 다른 스레드에 의해 두 번 감소 된 경쟁 조건이있는 것처럼 음의 값을가집니다.
mmap_sem = {
count = -4294967295,
wait_lock = {
{
rlock = {
raw_lock = {
slock = 262148
}
}
}
},
wait_list = {
next = 0xffff8801f0113e48,
prev = 0xffff8801f0113e48
}
},