How to exclude ipc calls

Alexander Kriegisch kriegaex at freetz.org
Sat Nov 26 12:51:28 UTC 2011


Sorry, I was not subscribed to the list before, so I am just quoting
your previous message from the web archive:

>>> ipc(0x1, 0x8001, 0x1, 0, 0x2abe55d4, 0x2aab25e0) = 0
>>> ipc(0x1, 0, 0x1, 0, 0x2abe55c4, 0x2aab25e0) = 0
>>> ipc(0x1, 0x10002, 0x1, 0, 0x2abe55d4, 0x2aab2820) = 0
>>> ipc(0x1, 0, 0x1, 0, 0x2abe55d4, 0x2aab25e0) = 0
>> 
>> They keep cluttering my strace logs. If I try something like
>> strace -e trace='!ipc' -p 17094 -q 2>&1 | grep ipc > ipc.log
>> they still occur in the log in the same order of magnitude as
>> before.
> 
> This is not the way how it should be.  ipc() is not a normal syscall
> but a syscall multiplexer which strace is usually capable to decode. 
> As I said, there is no visible ipc() on x86, x86-64 and arm.
> 
> (...)
> 
> There is something wrong with strace on your platform, otherwise you
> would never see this ipc() syscall.  I'm not an expert with linux
> mips zoo, but it looks like ipc() syscall multiplexer is actually in
> use in your system while strace expects separate IPC syscalls.  I can
> suggest a workaround, but it won't implement proper IPC subcall
> decoding on your platform unless somebody with better knowledge about
> it will come up with a patch.
> 
> The workaround is to teach strace that ipc() is a IPC syscall:
> $ sed -i '/"ipc"/ s/0,/TI,/' linux/mips/syscallent.h
> 
> With this change applied, strace -e trace='!ipc' will hide ipc() syscall.

Maybe there is something wrong with strace on my platform, I have no
idea and am not the author of the tool. But I can confirm that your
latest change
http://strace.git.sourceforge.net/git/gitweb.cgi?p=strace/strace;a=commit;h=454dcd458aa0f8ebe6838c1835d779739a9cca77
fixes the problem in my case.

May I know if you intend to keep the change in the code base? I mean, is
it really just a workaround or does it solve a real problem? I guess it
does, because you committed the change for several (all?) platforms.

Anyway, thank you for your help, I can filter out ipc() calls now using
the "ipc" or "!ipc" category name. :)
-- 
Alexander Kriegisch (kriegaex)
http://freetz.org




More information about the Strace-devel mailing list