mirror of
https://github.com/yse/easy_profiler.git
synced 2024-12-30 02:16:55 +08:00
37 lines
836 B
Plaintext
37 lines
836 B
Plaintext
|
global target_pid
|
||
|
global target_name
|
||
|
|
||
|
probe scheduler.ctxswitch {
|
||
|
|
||
|
if (target_pid != 0
|
||
|
&& next_pid != target_pid
|
||
|
&& prev_pid != target_pid)
|
||
|
next
|
||
|
|
||
|
if (target_name != ""
|
||
|
&& prev_task_name != target_name
|
||
|
&& next_task_name != target_name)
|
||
|
next
|
||
|
|
||
|
//printf("Switch from %d(%s) to %d(%s) at %d\n",prev_tid, prev_task_name,next_tid,next_task_name, gettimeofday_ns())
|
||
|
printf("%d %d %d\n",gettimeofday_ns(),prev_tid, next_tid )
|
||
|
}
|
||
|
|
||
|
probe begin
|
||
|
{
|
||
|
target_pid = 0
|
||
|
target_name = ""
|
||
|
|
||
|
%( $# == 1 || $# > 2 %?
|
||
|
log("Wrong number of arguments, use none, 'pid nr' or 'name proc'")
|
||
|
exit()
|
||
|
%)
|
||
|
|
||
|
%( $# == 2 %?
|
||
|
if(@1 == "pid")
|
||
|
target_pid = strtol(@2, 10)
|
||
|
if(@1 == "name")
|
||
|
target_name = @2
|
||
|
%)
|
||
|
}
|