2008-12-05 19:32:34 +00:00
|
|
|
#!/bin/bash
|
2009-01-16 20:19:15 +00:00
|
|
|
|
2009-01-16 21:56:14 +00:00
|
|
|
PROG=zpios-profile-pre.sh
|
2008-12-05 19:32:34 +00:00
|
|
|
|
2009-02-19 22:51:40 +00:00
|
|
|
PROFILE_ZPIOS_READY=0
|
2008-12-05 19:32:34 +00:00
|
|
|
trap "PROFILE_ZPIOS_READY=1" SIGHUP
|
|
|
|
|
|
|
|
RUN_PRE=${0}
|
|
|
|
RUN_PHASE=${1}
|
|
|
|
RUN_LOG_DIR=${2}
|
|
|
|
RUN_ID=${3}
|
|
|
|
RUN_POOL=${4}
|
|
|
|
RUN_CHUNK_SIZE=${5}
|
|
|
|
RUN_REGION_SIZE=${6}
|
|
|
|
RUN_THREAD_COUNT=${7}
|
|
|
|
RUN_REGION_COUNT=${8}
|
|
|
|
RUN_OFFSET=${9}
|
|
|
|
RUN_REGION_NOISE=${10}
|
|
|
|
RUN_CHUNK_NOISE=${11}
|
|
|
|
RUN_THREAD_DELAY=${12}
|
|
|
|
RUN_FLAGS=${13}
|
|
|
|
RUN_RESULT=${14}
|
|
|
|
|
2009-02-19 22:51:40 +00:00
|
|
|
zpios_profile_run_cfg() {
|
|
|
|
cat > ${RUN_LOG_DIR}/${RUN_ID}/zpios-config-run.sh << EOF
|
|
|
|
#
|
|
|
|
# Zpios Profiling Configuration for Run ${RUN_ID}
|
|
|
|
#
|
|
|
|
|
|
|
|
PROFILE_PID=${RUN_LOG_DIR}/${RUN_ID}/profile.pid
|
|
|
|
|
|
|
|
PROFILE_ZPIOS_PIDS_LOG=${RUN_LOG_DIR}/${RUN_ID}/pids-summary.csv
|
|
|
|
PROFILE_ZPIOS_DISK_LOG=${RUN_LOG_DIR}/${RUN_ID}/disk-summary.csv
|
|
|
|
|
|
|
|
PROFILE_ARC_LOG=${RUN_LOG_DIR}/${RUN_ID}/arcstats
|
|
|
|
PROFILE_ARC_PROC=/proc/spl/kstat/zfs/arcstats
|
|
|
|
|
|
|
|
PROFILE_VDEV_CACHE_LOG=${RUN_LOG_DIR}/${RUN_ID}/vdev_cache_stats
|
|
|
|
PROFILE_VDEV_CACHE_PROC=/proc/spl/kstat/zfs/vdev_cache_stats
|
2008-12-05 19:32:34 +00:00
|
|
|
|
|
|
|
OPROFILE_LOG=${RUN_LOG_DIR}/${RUN_ID}/oprofile.txt
|
2009-02-19 22:51:40 +00:00
|
|
|
OPROFILE_SHORT_LOG=${RUN_LOG_DIR}/${RUN_ID}/oprofile-short.txt
|
|
|
|
OPROFILE_LONG_LOG=${RUN_LOG_DIR}/${RUN_ID}/oprofile-long.txt
|
|
|
|
|
|
|
|
EOF
|
|
|
|
}
|
|
|
|
|
|
|
|
zpios_profile_run_args() {
|
|
|
|
cat > ${RUN_LOG_DIR}/${RUN_ID}/zpios-args.txt << EOF
|
|
|
|
#
|
|
|
|
# Zpios Arguments for Run ${RUN_ID}
|
|
|
|
#
|
|
|
|
|
|
|
|
LOG_DIR=${RUN_LOG_DIR}
|
|
|
|
ID=${RUN_ID}
|
|
|
|
POOL=${RUN_POOL}
|
|
|
|
CHUNK_SIZE=${RUN_CHUNK_SIZE}
|
|
|
|
REGION_SIZE=${RUN_REGION_SIZE}
|
|
|
|
THREAD_COUNT=${RUN_THREAD_COUNT}
|
|
|
|
REGION_COUNT=${RUN_REGION_COUNT}
|
|
|
|
OFFSET=${RUN_OFFSET}
|
|
|
|
REGION_NOISE=${RUN_REGION_NOISE}
|
|
|
|
CHUNK_NOISE=${RUN_CHUNK_NOISE}
|
|
|
|
THREAD_DELAY=${RUN_THREAD_DELAY}
|
|
|
|
FLAGS=${RUN_FLAGS}
|
|
|
|
RESULT=${RUN_RESULT}
|
|
|
|
EOF
|
|
|
|
}
|
2008-12-05 19:32:34 +00:00
|
|
|
|
|
|
|
if [ "${RUN_PHASE}" != "pre" ]; then
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
mkdir -p ${RUN_LOG_DIR}/${RUN_ID}/
|
2009-02-19 22:51:40 +00:00
|
|
|
zpios_profile_run_cfg
|
|
|
|
zpios_profile_run_args
|
2008-12-05 19:32:34 +00:00
|
|
|
|
2009-02-19 22:51:40 +00:00
|
|
|
. ${RUN_LOG_DIR}/zpios-config.sh
|
|
|
|
. ${RUN_LOG_DIR}/${RUN_ID}/zpios-config-run.sh
|
2008-12-05 19:32:34 +00:00
|
|
|
|
|
|
|
# Start the profile script
|
2009-02-19 22:51:40 +00:00
|
|
|
#${PROFILE_ZPIOS_BIN} ${RUN_PHASE} ${RUN_LOG_DIR} ${RUN_ID} &
|
|
|
|
#echo "$!" >${PROFILE_PID}
|
2008-12-05 19:32:34 +00:00
|
|
|
|
|
|
|
# Sleep waiting for profile script to be ready, it will
|
|
|
|
# signal us via SIGHUP when it is ready to start profiling.
|
2009-02-19 22:51:40 +00:00
|
|
|
#while [ ${PROFILE_ZPIOS_READY} -eq 0 ]; do
|
|
|
|
# sleep 0.1
|
|
|
|
#done
|
2008-12-05 19:32:34 +00:00
|
|
|
|
2009-02-19 22:51:40 +00:00
|
|
|
/usr/bin/opcontrol --reset >>${OPROFILE_LOG} 2>&1
|
|
|
|
/usr/bin/opcontrol --start >>${OPROFILE_LOG} 2>&1
|
2008-12-05 19:32:34 +00:00
|
|
|
|
|
|
|
exit 0
|