Commit f92fef26 authored by Yonghong Song's avatar Yonghong Song

add a probe alias $task in trace.py

The $task refers to the current task. In my particular case, I need
to trace the number of users for file system associated with the current
task. With the probe alias $task, trace.py can easily trace this event

  ......
  trace.py -I 'linux/fs_struct.h' 'mntns_install "users = %d", $task->fs->users'
  PID     TID     COMM            FUNC             -
  176566  176566  python2.7       mntns_install    users = 2
  176566  176566  python2.7       mntns_install    users = 2
  ......

With $task probe alias, kernel tast_struct fields can be used in trace.py
filter or output easily even if they cannot be accessed through input
parameters.
Signed-off-by: default avatarYonghong Song <yhs@fb.com>
parent 12f4f6e2
......@@ -204,7 +204,8 @@ class Probe(object):
"$gid": "(unsigned)(bpf_get_current_uid_gid() >> 32)",
"$pid": "(unsigned)(bpf_get_current_pid_tgid() & 0xffffffff)",
"$tgid": "(unsigned)(bpf_get_current_pid_tgid() >> 32)",
"$cpu": "bpf_get_smp_processor_id()"
"$cpu": "bpf_get_smp_processor_id()",
"$task" : "((struct task_struct *)bpf_get_current_task())"
}
def _generate_streq_function(self, string):
......@@ -606,6 +607,8 @@ trace -I 'net/sock.h' \\
'udpv6_sendmsg(struct sock *sk) (sk->sk_dport == 13568)'
Trace udpv6 sendmsg calls only if socket's destination port is equal
to 53 (DNS; 13568 in big endian order)
trace -I 'linux/fs_struct.h' 'mntns_install "users = %d", $task->fs->users'
Trace the number of users accessing the file system of the current task
"""
def __init__(self):
......
......@@ -296,4 +296,6 @@ trace -I 'net/sock.h' \\
'udpv6_sendmsg(struct sock *sk) (sk->sk_dport == 13568)'
Trace udpv6 sendmsg calls only if socket's destination port is equal
to 53 (DNS; 13568 in big endian order)
trace -I 'linux/fs_struct.h' 'mntns_install "users = %d", $task->fs->users'
Trace the number of users accessing the file system of the current task
"
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment