scripts: add bpftrace.sh
This script simplifies execution of bpftrace scripts for SPDK application analysis. The script should be invoked as: scripts/bpftrace.sh `pidof spdk_tgt` script.bt where 'script.bt' is the name of the bpftrace script you wish to execute. The script helps simplify the following: 1) replace __EXE__ markers in the bpftrace script with the full path of the spdk executable (required for usdt probes); it uses /proc/<pid>/exe to get the full path 2) replace __PID__ markers in the bpftrace script with the PID of the spdk process under analysis - this allows for doing things like filtering system call counts for just the SPDK process 3) invoke bpftrace with the -p <pid> option Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Ib271f26efe4ba326d951a7b30f61b22be755dda7 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7710 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
This commit is contained in:
parent
5a1c74bfa4
commit
af0bf0f006
9
scripts/bpftrace.sh
Executable file
9
scripts/bpftrace.sh
Executable file
@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
if [ $# -lt 2 ]; then
|
||||
echo "usage: $0 <pid> <script>"
|
||||
exit 1
|
||||
fi
|
||||
SCRIPTS_DIR=$(readlink -f $(dirname $0))
|
||||
BIN_PATH=$(readlink -f /proc/$1/exe)
|
||||
BPF_SCRIPT=$(sed "s#__EXE__#${BIN_PATH}#g" "${@:2}" | sed "s#__PID__#${1}#g")
|
||||
bpftrace -p $1 -e "$BPF_SCRIPT"
|
Loading…
Reference in New Issue
Block a user