12c585174SArnaldo Carvalho de Melo#!/bin/bash 2b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 32c585174SArnaldo Carvalho de Melo# perf archive 42c585174SArnaldo Carvalho de Melo# Arnaldo Carvalho de Melo <acme@redhat.com> 52c585174SArnaldo Carvalho de Melo 62c585174SArnaldo Carvalho de MeloPERF_DATA=perf.data 72c585174SArnaldo Carvalho de Meloif [ $# -ne 0 ] ; then 82c585174SArnaldo Carvalho de Melo PERF_DATA=$1 92c585174SArnaldo Carvalho de Melofi 102c585174SArnaldo Carvalho de Melo 1145de34bbSStephane Eranian# 1245de34bbSStephane Eranian# PERF_BUILDID_DIR environment variable set by perf 1345de34bbSStephane Eranian# path to buildid directory, default to $HOME/.debug 1445de34bbSStephane Eranian# 1545de34bbSStephane Eranianif [ -z $PERF_BUILDID_DIR ]; then 1645de34bbSStephane Eranian PERF_BUILDID_DIR=~/.debug/ 1745de34bbSStephane Eranianelse 1845de34bbSStephane Eranian # append / to make substitutions work 1945de34bbSStephane Eranian PERF_BUILDID_DIR=$PERF_BUILDID_DIR/ 2045de34bbSStephane Eranianfi 2145de34bbSStephane Eranian 222c585174SArnaldo Carvalho de MeloBUILDIDS=$(mktemp /tmp/perf-archive-buildids.XXXXXX) 232c585174SArnaldo Carvalho de Melo 24*ec4d0a76SNicholas Fraserperf buildid-list -i $PERF_DATA --with-hits | grep -v "^ " > $BUILDIDS 252c585174SArnaldo Carvalho de Meloif [ ! -s $BUILDIDS ] ; then 262c585174SArnaldo Carvalho de Melo echo "perf archive: no build-ids found" 2773eb422cSIrina Tirdea rm $BUILDIDS || true 282c585174SArnaldo Carvalho de Melo exit 1 292c585174SArnaldo Carvalho de Melofi 302c585174SArnaldo Carvalho de Melo 312c585174SArnaldo Carvalho de MeloMANIFEST=$(mktemp /tmp/perf-archive-manifest.XXXXXX) 32e3b61933SChanho ParkPERF_BUILDID_LINKDIR=$(readlink -f $PERF_BUILDID_DIR)/ 332c585174SArnaldo Carvalho de Melo 342c585174SArnaldo Carvalho de Melocut -d ' ' -f 1 $BUILDIDS | \ 352c585174SArnaldo Carvalho de Melowhile read build_id ; do 3645de34bbSStephane Eranian linkname=$PERF_BUILDID_DIR.build-id/${build_id:0:2}/${build_id:2} 372c585174SArnaldo Carvalho de Melo filename=$(readlink -f $linkname) 3845de34bbSStephane Eranian echo ${linkname#$PERF_BUILDID_DIR} >> $MANIFEST 39e3b61933SChanho Park echo ${filename#$PERF_BUILDID_LINKDIR} >> $MANIFEST 402c585174SArnaldo Carvalho de Melodone 412c585174SArnaldo Carvalho de Melo 4287ff50a3SIrina Tirdeatar cjf $PERF_DATA.tar.bz2 -C $PERF_BUILDID_DIR -T $MANIFEST 4373eb422cSIrina Tirdearm $MANIFEST $BUILDIDS || true 4488978e56SArnaldo Carvalho de Meloecho -e "Now please run:\n" 4588978e56SArnaldo Carvalho de Meloecho -e "$ tar xvf $PERF_DATA.tar.bz2 -C ~/.debug\n" 4688978e56SArnaldo Carvalho de Meloecho "wherever you need to run 'perf report' on." 472c585174SArnaldo Carvalho de Meloexit 0 48