[prev in list] [next in list] [prev in thread] [next in thread] 

List:       opensolaris-dtrace-discuss
Subject:    Re: [dtrace-discuss] function of semtimedop is not in syscall
From:       Qihua Wu <dtrace.wu () gmail ! com>
Date:       2009-08-10 0:15:12
Message-ID: ddc8a0bc0908091715g545b9924n66178bfbd33c723f () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Thanks Jon,

That's really helpful.

Thanks,
Daniel

On Sat, Aug 8, 2009 at 2:34 AM, Jon Haslam <Jonathan.Haslam@sun.com> wrote:

> Hi Daniel,
>
>
>  If use truss on an oracle process. we could see something like the
>> following,  so semtimedop should be a syscall
>>
>> 22459/1: semtimedop(9, 0xFFFFFD7FFFDFE648, 1, 0xFFFFFD7FFFDFE488) EAGAIN
>> 22459/1:         semnum=15    semop=-1    semflg=0
>> 22459/1:         timeout: 2.060000000 sec
>>
>>
>>
>> but the following command shows nothing. How can I trace semtimedop using
>> dtrace ?
>>  dtrace -l|grep semtimedop
>>
>
> Unfortunately you are going to have to deal with a bit more
> syscall implementation than you should have to with SYS-V
> semphore operations. Under the covers a semtimedop(2) is a
> sub-operation for the undocumented semsys call. The case you
> are dealing with here is actually documented in the user guide:
>
> http://wikis.sun.com/display/DTrace/syscall+Provider
>
> Simply do something like:
>
> syscall::semsys:entry
> /arg0 == 4/
> {
>   /* SEMTIMEDOP */
> }
>
> There is a piece of work we're thinking of doing to improve
> this situation but it would be a non-trivial undertaking.
>
> Jon.
>

[Attachment #5 (text/html)]

Thanks Jon,<br><br>That&#39;s really helpful.<br><br>Thanks,<br>Daniel<br><br><div \
class="gmail_quote">On Sat, Aug 8, 2009 at 2:34 AM, Jon Haslam <span dir="ltr">&lt;<a \
href="mailto:Jonathan.Haslam@sun.com">Jonathan.Haslam@sun.com</a>&gt;</span> \
wrote:<br> <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, \
204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi \
Daniel,<div><div></div><div class="h5"><br> <br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); \
margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> If use truss on an oracle process. we \
could see something like the following,  so semtimedop should be a syscall<br> <br>
22459/1: semtimedop(9, 0xFFFFFD7FFFDFE648, 1, 0xFFFFFD7FFFDFE488) EAGAIN<br>
22459/1:         semnum=15    semop=-1    semflg=0<br>
22459/1:         timeout: 2.060000000 sec<br>
<br>
<br>
<br>
but the following command shows nothing. How can I trace semtimedop using dtrace \
?<br>  dtrace -l|grep semtimedop<br>
</blockquote>
<br></div></div>
Unfortunately you are going to have to deal with a bit more<br>
syscall implementation than you should have to with SYS-V<br>
semphore operations. Under the covers a semtimedop(2) is a<br>
sub-operation for the undocumented semsys call. The case you<br>
are dealing with here is actually documented in the user guide:<br>
<br>
<a href="http://wikis.sun.com/display/DTrace/syscall+Provider" \
target="_blank">http://wikis.sun.com/display/DTrace/syscall+Provider</a><br> <br>
Simply do something like:<br>
<br>
syscall::semsys:entry<br>
/arg0 == 4/<br>
{<br>
   /* SEMTIMEDOP */<br>
}<br>
<br>
There is a piece of work we&#39;re thinking of doing to improve<br>
this situation but it would be a non-trivial undertaking.<br><font color="#888888">
<br>
Jon.<br>
</font></blockquote></div><br>



_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic