1 #!/bin/bash 2 # SPDX-License-Identifier: GPL-2.0 3 # perf archive 4 # Arnaldo Carvalho de Melo <acme@redhat.com> 5 6 PERF_DATA=perf.data 7 PERF_SYMBOLS=perf.symbols 8 PERF_ALL=perf.all 9 ALL=0 10 UNPACK=0 11 12 while [ $# -gt 0 ] ; do 13 if [ $1 == "--all" ]; then 14 ALL=1 15 shift 16 elif [ $1 == "--unpack" ]; then 17 UNPACK=1 18 shift 19 else 20 PERF_DATA=$1 21 UNPACK_TAR=$1 22 shift 23 fi 24 done 25 26 if [ $UNPACK -eq 1 ]; then 27 if [ ! -z "$UNPACK_TAR" ]; then 28 if [ ! -e "$UNPACK_TAR" ]; the 29 echo "Provided file $U 30 exit 1 31 fi 32 TARGET="$UNPACK_TAR" 33 else 34 TARGET=`find . -regex "\./perf 35 TARGET_NUM=`echo -n "$TARGET" 36 37 if [ -z "$TARGET" ] || [ $TARG 38 echo -e "Error: $TARGE 39 echo "Provide the requ 40 exit 1 41 else 42 echo "Found target fil 43 fi 44 fi 45 46 if [[ "$TARGET" =~ (\./)?$PERF_ALL.*.t 47 TAR_CONTENTS=`tar tvf "$TARGET 48 VALID_TAR=`echo "$TAR_CONTENTS 49 if [ $VALID_TAR -ne 1 ]; then 50 echo "Error: $TARGET f 51 exit 1 52 fi 53 54 INTERSECT=`comm -12 <(ls) <(ec 55 if [ ! -z "$INTERSECT" ]; then 56 echo "File(s) ${INTERS 57 while true; do 58 read -p 'Do yo 59 case $yn in 60 [Yy]* 61 [Nn]* 62 * ) ec 63 esac 64 done 65 fi 66 67 # unzip the perf.data file in 68 tar xvf $TARGET && tar xvf $PE 69 70 else 71 tar xvf $TARGET -C ~/.debug 72 fi 73 exit 0 74 fi 75 76 # 77 # PERF_BUILDID_DIR environment variable set by 78 # path to buildid directory, default to $HOME/ 79 # 80 if [ -z $PERF_BUILDID_DIR ]; then 81 PERF_BUILDID_DIR=~/.debug/ 82 else 83 # append / to make substitutions work 84 PERF_BUILDID_DIR=$PERF_BUILDID_DIR/ 85 fi 86 87 BUILDIDS=$(mktemp /tmp/perf-archive-buildids.X 88 89 perf buildid-list -i $PERF_DATA --with-hits | 90 if [ ! -s $BUILDIDS ] ; then 91 echo "perf archive: no build-ids found 92 rm $BUILDIDS || true 93 exit 1 94 fi 95 96 MANIFEST=$(mktemp /tmp/perf-archive-manifest.X 97 PERF_BUILDID_LINKDIR=$(readlink -f $PERF_BUILD 98 99 cut -d ' ' -f 1 $BUILDIDS | \ 100 while read build_id ; do 101 linkname=$PERF_BUILDID_DIR.build-id/${ 102 filename=$(readlink -f $linkname) 103 echo ${linkname#$PERF_BUILDID_DIR} >> 104 echo ${filename#$PERF_BUILDID_LINKDIR} 105 done 106 107 if [ $ALL -eq 1 ]; then 108 HOSTNAME=$(hostname) 109 DATE=$(date '+%Y%m%d-%H%M%S') 110 tar cjf $PERF_SYMBOLS.tar.bz2 -C $PERF 111 tar cjf $PERF_ALL-$HOSTNAME-$DATE.tar. 112 rm $PERF_SYMBOLS.tar.bz2 $MANIFEST $BU 113 else 114 tar cjf $PERF_DATA.tar.bz2 -C $PERF_BU 115 rm $MANIFEST $BUILDIDS || true 116 fi 117 118 echo -e "Now please run:\n" 119 echo -e "$ perf archive --unpack\n" 120 echo "or unpack the tar manually wherever you 121 exit 0
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.