Re: panic in procfs code
On Tue, 05 Jun 2001 12:21:46 +0200, Daniel Rock [EMAIL PROTECTED] said: Daniel Hi, Daniel I just noticed: Doing a simple cat /proc/$$/map panics the system: (snip) Daniel _mtx_unlock_sleep(c049c9c0,0,c03b01a0,f2) at _mtx_unlock_sleep+0xa3 Daniel lockmgr(c55fadb0,10001,c049c9c0,c55f4100) at lockmgr+0x9d Daniel procfs_domap(c55f4100,c55f4320,c0c90da0,c6eefefc,c0cc3180) at Daniel procfs_domap+0x88 Lock and unlock of vm_mtx around vm_map_(un)lock_read() in procfs_domap() are missing. The attached patch should fix the bug. Index: fs/procfs/procfs_map.c === RCS file: /home/naklab/tanimura/rina2/CVS/FreeBSD/sys/fs/procfs/procfs_map.c,v retrieving revision 1.1.1.1.8.1 diff -u -r1.1.1.1.8.1 procfs_map.c --- fs/procfs/procfs_map.c 2001/05/27 02:39:08 1.1.1.1.8.1 +++ fs/procfs/procfs_map.c 2001/06/05 12:16:06 @@ -87,6 +87,8 @@ if (uio-uio_offset != 0) return (0); + mtx_lock(vm_mtx); + error = 0; if (map != curproc-p_vmspace-vm_map) vm_map_lock_read(map); @@ -169,12 +171,17 @@ error = EFBIG; break; } + mtx_unlock(vm_mtx); error = uiomove(mebuffer, len, uio); + mtx_lock(vm_mtx); if (error) break; } if (map != curproc-p_vmspace-vm_map) vm_map_unlock_read(map); + + mtx_unlock(vm_mtx); + return error; } -- Seigo Tanimura [EMAIL PROTECTED] [EMAIL PROTECTED]
Re: panic in procfs code
Date: Tue, 05 Jun 2001 21:39:59 +0900 From: Seigo Tanimura [EMAIL PROTECTED] Daniel Hi, Daniel I just noticed: Doing a simple cat /proc/$$/map panics the system: (snip) Daniel _mtx_unlock_sleep(c049c9c0,0,c03b01a0,f2) at _mtx_unlock_sleep+0xa3 Daniel lockmgr(c55fadb0,10001,c049c9c0,c55f4100) at lockmgr+0x9d Daniel procfs_domap(c55f4100,c55f4320,c0c90da0,c6eefefc,c0cc3180) at Daniel procfs_domap+0x88 Lock and unlock of vm_mtx around vm_map_(un)lock_read() in procfs_domap() are missing. The attached patch should fix the bug. I looked at the patch, and it seemed reasonable, so I applied it just before my daily build of -CURRENT, and: m133[1] cat /proc/$$/map 0x8048000 0x80f2000 165 0 0xce84bc60 r-x 6 3 0x0 COW NC vnode 0x80f2000 0x80f7000 5 0 0xce8c7f00 rw- 1 0 0x2180 COW NNC vnode 0x80f7000 0x814a000 28 0 0xce8e1ea0 rw- 1 0 0x2180 COW NNC default 0x814a000 0x815b000 17 0 0xce8c7c60 rwx 1 0 0x2180 COW NNC default 0x815b000 0x815d000 2 0 0xce8e1900 rwx 1 0 0x2180 COW NNC default 0x815d000 0x8191000 52 0 0xce8e1840 rwx 1 0 0x2180 NCOW NNC default 0x280f2000 0x280f3000 1 0 0xce8e1360 rwx 1 0 0x2180 COW NNC default 0xbfbe 0xbfc0 14 0 0xce8c7c00 rwx 1 0 0x2180 COW NNC default m133[2] uname -a FreeBSD m133.whistle.com 5.0-CURRENT FreeBSD 5.0-CURRENT #23: Tue Jun 5 08:57:03 PDT 2001 [EMAIL PROTECTED]:/common/C/obj/usr/src/sys/LAPTOP_30W i386 m133[3] so it looks good to me, david -- David H. Wolfskill [EMAIL PROTECTED] As a computing professional, I believe it would be unethical for me to advise, recommend, or support the use (save possibly for personal amusement) of any product that is or depends on any Microsoft product. To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message