[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: deadlock on ptrace
斉藤@densanと言います。
> 以下の症状は、皆さんのところでは、起こっていないでしょうか。
> 何かアドバイスいただけると幸いです。
>
> gdbでプログラムをデバッグしている時の話ですが、
> runを何回か繰り返しているとシステムが止まってしまいます。
pmap_page_protect()はあちこちから呼ばれていて、
この関数以降で対策するのは難しそうなので、
呼出元の sys/uvm/uvm_fault.c のuvm_fault()で対策してみました。
1681 /*
1682 * promote to shared amap? make sure all sharing
1683 * procs see it
1684 */
1685 if ((amap_flags(amap) & AMAP_SHARED) != 0) {
1686 pmap_page_protect(uobjpage, VM_PROT_NONE);
1687 }
を
1681 /*
1682 * promote to shared amap? make sure all sharing
1683 * procs see it
1684 */
1685 if ((amap_flags(amap) & AMAP_SHARED) != 0) {
1686 if (ufi.map == kernel_map)
1687 vm_map_unlock_read(ufi.map);
1688 pmap_page_protect(uobjpage, VM_PROT_NONE);
1689 if (ufi.map == kernel_map)
1690 vm_map_lock_read(ufi.map);
1691 }
のように直してテストしてみました。
今のところ症状は出なくなりました。
他のマシンで症状が出ていないとすれば、私のシステム固有の問題かも知れません。