Robert Leach
2007-Feb-08 00:02 UTC
[dtrace-discuss] using Dtrace to determins process to semaphore key
How can I use Dtrace to perform kinda like lsof to determine which process is using which ipc key?? I have several keys in memory but I havent used Dtrace before and I do not know how to utilize dtrace or adb to resolve the process which put the key in memory. IPC status from <running system> as of Wed Feb 7 19:01:48 EST 2007 T ID KEY MODE OWNER GROUP CREATOR CGROUP NSEMS OTIME CTIME PROJECT Semaphores: s 0 0x710054c0 --ra-ra-ra- root root root root 1 13:53:50 13:53:41 system How do I map this key to a process? Rob This message posted from opensolaris.org
Mike Gerdts
2007-Feb-08 01:30 UTC
[dtrace-discuss] using Dtrace to determins process to semaphore key
On 2/7/07, Robert Leach <rleach at nyse.com> wrote:> How can I use Dtrace to perform kinda like lsof to determine which process is using which ipc key?? > > I have several keys in memory but I havent used Dtrace before and I do not know how to utilize dtrace or adb to resolve the process which put the key in memory. > > IPC status from <running system> as of Wed Feb 7 19:01:48 EST 2007 > T ID KEY MODE OWNER GROUP CREATOR CGROUP NSEMS OTIME CTIME PROJECT > Semaphores: > s 0 0x710054c0 --ra-ra-ra- root root root root 1 13:53:50 13:53:41 system > How do I map this key to a process?I was recently tracking down some interactions between iscsiadm and <something else>. This was the dtrace part of the solution: #! /usr/sbin/dtrace -qs fbt:semsys:semget:entry { printf("SEMGET %Y %s[%d] key=%d nsems=%d semflag=%x\n", walltimestamp, execname, pid, args[0], args[1], args[2]) } fbt:semsys:semop:entry { printf("SEMOP %Y %s[%d] semid=%d addr=%p\n", walltimestamp, execname, pid, args[0], args[1]); } I started down the path of trying to find it via mdb, but did not have a lot of luck going down that route. Mike -- Mike Gerdts http://mgerdts.blogspot.com/