diff options
Diffstat (limited to 'tapset/LKET/utils.stp')
-rwxr-xr-x | tapset/LKET/utils.stp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tapset/LKET/utils.stp b/tapset/LKET/utils.stp new file mode 100755 index 00000000..0006246e --- /dev/null +++ b/tapset/LKET/utils.stp @@ -0,0 +1,33 @@ +// Copyright (C) 2005, 2006 IBM Corp. +// +// This file is part of systemtap, and is free software. You can +// redistribute it and/or modify it under the terms of the GNU General +// Public License (GPL); either version 2, or (at your option) any +// later version. + +/* data tracing filter by pid + return: + 1 - if continue to log the raw data + 0 - return without logging the raw data + */ +function filter_by_pid:long() +%{ + struct task_struct *cur = current; + + if(cur->tgid != _stp_pid) { + /* to trace a specific process if we explicitly specify + which process we want to trace by: + 1. stap -c "process_to_trace" ... + 2. stap -x pid_to_trace ... + else we will trace all the processes + */ + if( _stp_target != 0 && cur->tgid != _stp_target) { + THIS->__retvalue = 0; + return; + } + + THIS->__retvalue = 1; + } else /*skip the events generated by stap itself*/ + THIS->__retvalue = 0; + return; +%} |