1#!/bin/bash 2# perf archive 3# Arnaldo Carvalho de Melo <acme@redhat.com> 4 5PERF_DATA=perf.data 6if [ $# -ne 0 ] ; then 7 PERF_DATA=$1 8fi 9 10DEBUGDIR=~/.debug/ 11BUILDIDS=$(mktemp /tmp/perf-archive-buildids.XXXXXX) 12NOBUILDID=0000000000000000000000000000000000000000 13 14perf buildid-list -i $PERF_DATA --with-hits | grep -v "^$NOBUILDID " > $BUILDIDS 15if [ ! -s $BUILDIDS ] ; then 16 echo "perf archive: no build-ids found" 17 rm -f $BUILDIDS 18 exit 1 19fi 20 21MANIFEST=$(mktemp /tmp/perf-archive-manifest.XXXXXX) 22 23cut -d ' ' -f 1 $BUILDIDS | \ 24while read build_id ; do 25 linkname=$DEBUGDIR.build-id/${build_id:0:2}/${build_id:2} 26 filename=$(readlink -f $linkname) 27 echo ${linkname#$DEBUGDIR} >> $MANIFEST 28 echo ${filename#$DEBUGDIR} >> $MANIFEST 29done 30 31tar cfj $PERF_DATA.tar.bz2 -C $DEBUGDIR -T $MANIFEST 32rm -f $MANIFEST $BUILDIDS 33echo -e "Now please run:\n" 34echo -e "$ tar xvf $PERF_DATA.tar.bz2 -C ~/.debug\n" 35echo "wherever you need to run 'perf report' on." 36exit 0 37