This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Matching function parameters and corresponding return value
- From: Li Guanglei <guanglei at cn dot ibm dot com>
- To: Sylvain Fourmanoit <syfou at users dot sourceforge dot net>
- Cc: systemtap at sourceware dot org
- Date: Wed, 14 Jun 2006 07:16:25 +0800
- Subject: Re: Matching function parameters and corresponding return value
- Organization: IBM CSTL
- References: <Pine.LNX.4.64.0606131800540.5501@sylvain>
Sylvain Fourmanoit ??:
Hi all,
I would like to watch calls to a preemptible function such as sys_open():
ideally, I would like to know both the tentatively accessed files and
the success (or not) of the various calls.
But I don't see how to do this: of course, I can without problem
register a jprobe and a kretprobe on sys_open(), both how do I correlate
pairs of probe calls reliably? Or is it just the wrong approach?
Any insight on how to do this, either with SystemTap or directly with
Kprobes would be really appreciated!
Although some syscalls are preemptible, but you can still correlate
the pairs of entry/return of a syscall by tid(task->pid). e.g:
TID(task->pid) Syscall
1122 sys_open.entry
(preempted by foo()) 223 foo.entry
...
223 foo.return
1122 sys_open.return
So what you can do is just to search the sys_open.return with the same
tid and skip all the calls met during the search.
- Guanglei