test/vhost: enable BPF traces in performance tests

Signed-off-by: Karol Latecki <karol.latecki@intel.com>
Change-Id: Id63a0ef523be75def672ef3b4abe270624c28af0
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8681
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Michal Berger <michalx.berger@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
This commit is contained in:
Karol Latecki 2021-07-06 10:50:26 +02:00 committed by Tomasz Zawadzki
parent a182f55b0e
commit ed5f83391b

View File

@ -13,6 +13,7 @@ sar_delay="0"
sar_interval="1"
sar_count="10"
vm_throttle=""
bpf_traces=()
ctrl_type="spdk_vhost_scsi"
use_split=false
kernel_cpus=""
@ -59,6 +60,8 @@ function usage() {
echo " --sar-delay=INT Wait for X seconds before starting SAR measurement. Default: 0."
echo " --sar-interval=INT Interval (seconds) argument for SAR. Default: 1s."
echo " --sar-count=INT Count argument for SAR. Default: 10."
echo " --bpf-traces=LIST Comma delimited list of .bt scripts for enabling BPF traces."
echo " List of .bt scripts available in scripts/bpf"
echo " --vm-throttle-iops=INT I/Os throttle rate in IOPS for each device on the VMs."
echo " --ctrl-type=TYPE Controller type to use for test:"
echo " spdk_vhost_scsi - use spdk vhost scsi"
@ -171,6 +174,7 @@ while getopts 'xh-:' optchar; do
sar-delay=*) sar_delay="${OPTARG#*=}" ;;
sar-interval=*) sar_interval="${OPTARG#*=}" ;;
sar-count=*) sar_count="${OPTARG#*=}" ;;
bpf-traces=*) IFS="," read -r -a bpf_traces <<< "${OPTARG#*=}" ;;
vm-throttle-iops=*) vm_throttle="${OPTARG#*=}" ;;
ctrl-type=*) ctrl_type="${OPTARG#*=}" ;;
packed-ring) packed_ring=true ;;
@ -312,6 +316,23 @@ else
notice "Configuring SPDK vhost..."
vhost_run -n "${vhost_num}" -g -a "-p ${vhost_main_core} -m ${vhost_reactor_mask}"
notice "..."
if [[ ${#bpf_traces[@]} -gt 0 ]]; then
notice "Enabling BPF traces: ${bpf_traces[*]}"
vhost_dir="$(get_vhost_dir 0)"
vhost_pid="$(cat $vhost_dir/vhost.pid)"
bpf_cmd=("$rootdir/scripts/bpftrace.sh")
bpf_cmd+=("$vhost_pid")
for trace in "${bpf_traces[@]}"; do
bpf_cmd+=("$rootdir/scripts/bpf/$trace")
done
BPF_OUTFILE="$VHOST_DIR/bpftraces.txt" "${bpf_cmd[@]}" &
bpf_script_pid=$!
# Wait a bit for trace capture to start
sleep 3
fi
if [[ $use_split == true ]]; then
notice "Configuring split bdevs configuration..."
@ -488,4 +509,8 @@ else
cleanup_lvol_cfg
fi
vhost_kill "${vhost_num}"
if ((bpf_script_pid)); then
wait $bpf_script_pid
fi
fi