How to exclude ipc calls
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
> 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
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)
More information about the Strace-devel