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