From 0d0f205891c4a7d93918f78c483897aaa493a79e Mon Sep 17 00:00:00 2001 From: Arnaldo Carvalho de Melo Date: Fri, 15 Jan 2010 13:17:52 -0200 Subject: [PATCH] --- yaml --- r: 182375 b: refs/heads/master c: 2c5851747bcf751908c02e253cb7582d342b4612 h: refs/heads/master i: 182373: dae93c83eda14c2a43444014aa7551f3503be3f7 182371: 0f126bbe84c4649a3354ea29622496cc53f11a01 182367: ea8b6cbadedd32202b4abd5e8e361c8f05500a6b v: v3 --- [refs] | 2 +- trunk/tools/perf/Makefile | 10 ++-------- trunk/tools/perf/command-list.txt | 1 + trunk/tools/perf/perf-archive.sh | 32 +++++++++++++++++++++++++++++++ 4 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 trunk/tools/perf/perf-archive.sh diff --git a/[refs] b/[refs] index 4de586501cc5..00f01168b7a0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 460848fceffc91652b2d36d19db4ac40d12fb607 +refs/heads/master: 2c5851747bcf751908c02e253cb7582d342b4612 diff --git a/trunk/tools/perf/Makefile b/trunk/tools/perf/Makefile index 2c03a9411317..d739552036d0 100644 --- a/trunk/tools/perf/Makefile +++ b/trunk/tools/perf/Makefile @@ -286,11 +286,7 @@ SCRIPT_PERL = SCRIPT_SH = TEST_PROGRAMS = -# -# No scripts right now: -# - -# SCRIPT_SH += perf-am.sh +SCRIPT_SH += perf-archive.sh # # No Perl scripts right now: @@ -315,9 +311,7 @@ PROGRAMS += perf # List built-in command $C whose implementation cmd_$C() is not in # builtin-$C.o but is linked in as part of some other command. # -# None right now: -# -# BUILT_INS += perf-init $X +BUILT_INS += perf-archive # what 'all' will build and 'install' will install, in perfexecdir ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS) diff --git a/trunk/tools/perf/command-list.txt b/trunk/tools/perf/command-list.txt index 71dc7c3fe7b2..f73d1d90f5bd 100644 --- a/trunk/tools/perf/command-list.txt +++ b/trunk/tools/perf/command-list.txt @@ -3,6 +3,7 @@ # command name category [deprecated] [common] # perf-annotate mainporcelain common +perf-archive mainporcelain perf-bench mainporcelain common perf-buildid-list mainporcelain common perf-diff mainporcelain common diff --git a/trunk/tools/perf/perf-archive.sh b/trunk/tools/perf/perf-archive.sh new file mode 100644 index 000000000000..45fbe2f07b15 --- /dev/null +++ b/trunk/tools/perf/perf-archive.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# perf archive +# Arnaldo Carvalho de Melo + +PERF_DATA=perf.data +if [ $# -ne 0 ] ; then + PERF_DATA=$1 +fi + +DEBUGDIR=~/.debug/ +BUILDIDS=$(mktemp /tmp/perf-archive-buildids.XXXXXX) + +perf buildid-list -i $PERF_DATA --with-hits > $BUILDIDS +if [ ! -s $BUILDIDS ] ; then + echo "perf archive: no build-ids found" + rm -f $BUILDIDS + exit 1 +fi + +MANIFEST=$(mktemp /tmp/perf-archive-manifest.XXXXXX) + +cut -d ' ' -f 1 $BUILDIDS | \ +while read build_id ; do + linkname=$DEBUGDIR.build-id/${build_id:0:2}/${build_id:2} + filename=$(readlink -f $linkname) + echo ${linkname#$DEBUGDIR} >> $MANIFEST + echo ${filename#$DEBUGDIR} >> $MANIFEST +done + +tar cfj $PERF_DATA.tar.bz2 -C $DEBUGDIR -T $MANIFEST +rm -f $MANIFEST $BUILDIDS +exit 0