Matching function parameters and corresponding return value
Li Guanglei
guanglei@cn.ibm.com
Tue Jun 13 23:15:00 GMT 2006
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
More information about the Systemtap
mailing list