]>
Commit | Line | Data |
---|---|---|
34dc7c2f BB |
1 | #!/bin/bash |
2 | # profile-kpios-pre.sh | |
3 | ||
4 | trap "PROFILE_KPIOS_READY=1" SIGHUP | |
5 | ||
6 | RUN_PRE=${0} | |
7 | RUN_PHASE=${1} | |
8 | RUN_LOG_DIR=${2} | |
9 | RUN_ID=${3} | |
10 | RUN_POOL=${4} | |
11 | RUN_CHUNK_SIZE=${5} | |
12 | RUN_REGION_SIZE=${6} | |
13 | RUN_THREAD_COUNT=${7} | |
14 | RUN_REGION_COUNT=${8} | |
15 | RUN_OFFSET=${9} | |
16 | RUN_REGION_NOISE=${10} | |
17 | RUN_CHUNK_NOISE=${11} | |
18 | RUN_THREAD_DELAY=${12} | |
19 | RUN_FLAGS=${13} | |
20 | RUN_RESULT=${14} | |
21 | ||
22 | PROFILE_KPIOS_BIN=/home/behlendo/src/zfs/scripts/profile-kpios.sh | |
23 | PROFILE_KPIOS_READY=0 | |
24 | ||
25 | OPROFILE_LOG=${RUN_LOG_DIR}/${RUN_ID}/oprofile.txt | |
26 | PROFILE_PID=${RUN_LOG_DIR}/${RUN_ID}/pid | |
27 | RUN_ARGS=${RUN_LOG_DIR}/${RUN_ID}/args | |
28 | ||
29 | if [ "${RUN_PHASE}" != "pre" ]; then | |
30 | exit 1 | |
31 | fi | |
32 | ||
33 | rm -Rf ${RUN_LOG_DIR}/${RUN_ID}/ | |
34 | mkdir -p ${RUN_LOG_DIR}/${RUN_ID}/ | |
35 | ||
36 | echo "PHASE=${RUN_PHASE}" >>${RUN_ARGS} | |
37 | echo "LOG_DIR=${RUN_LOG_DIR}" >>${RUN_ARGS} | |
38 | echo "ID=${RUN_ID}" >>${RUN_ARGS} | |
39 | echo "POOL=${RUN_POOL}" >>${RUN_ARGS} | |
40 | echo "CHUNK_SIZE=${RUN_CHUNK_SIZE}" >>${RUN_ARGS} | |
41 | echo "REGION_SIZE=${RUN_REGION_SIZE}" >>${RUN_ARGS} | |
42 | echo "THREAD_COUNT=${RUN_THREAD_COUNT}" >>${RUN_ARGS} | |
43 | echo "REGION_COUNT=${RUN_REGION_COUNT}" >>${RUN_ARGS} | |
44 | echo "OFFSET=${RUN_OFFSET}" >>${RUN_ARGS} | |
45 | echo "REGION_NOISE=${RUN_REGION_NOISE}" >>${RUN_ARGS} | |
46 | echo "CHUNK_NOISE=${RUN_CHUNK_NOISE}" >>${RUN_ARGS} | |
47 | echo "THREAD_DELAY=${RUN_THREAD_DELAY}" >>${RUN_ARGS} | |
48 | echo "FLAGS=${RUN_FLAGS}" >>${RUN_ARGS} | |
49 | echo "RESULT=${RUN_RESULT}" >>${RUN_ARGS} | |
50 | ||
51 | # XXX: Oprofile support seems to be broken when I try and start | |
52 | # it via a user mode helper script, I suspect the setup is failing. | |
53 | # opcontrol --init >>${OPROFILE_LOG} 2>&1 | |
54 | # opcontrol --setup --vmlinux=/boot/vmlinux >>${OPROFILE_LOG} 2>&1 | |
55 | ||
56 | # Start the profile script | |
57 | ${PROFILE_KPIOS_BIN} ${RUN_PHASE} ${RUN_LOG_DIR} ${RUN_ID} & | |
58 | echo "$!" >${PROFILE_PID} | |
59 | ||
60 | # Sleep waiting for profile script to be ready, it will | |
61 | # signal us via SIGHUP when it is ready to start profiling. | |
62 | while [ ${PROFILE_KPIOS_READY} -eq 0 ]; do | |
63 | sleep 0.1 | |
64 | done | |
65 | ||
66 | # opcontrol --start-daemon >>${OPROFILE_LOG} 2>&1 | |
67 | # opcontrol --start >>${OPROFILE_LOG} 2>&1 | |
68 | ||
69 | exit 0 |