perf tools: Delete perf-with-kcore.sh script
authorAdrian Hunter <adrian.hunter@intel.com>
Wed, 27 Apr 2022 14:19:46 +0000 (17:19 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 27 Apr 2022 23:11:26 +0000 (20:11 -0300)
It has been obsolete since the introduction of the 'perf record --kcore'
option.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Link: http://lore.kernel.org/lkml/20220427141946.269523-1-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/.gitignore
tools/perf/Makefile.perf
tools/perf/perf-with-kcore.sh [deleted file]

index 20b8ab984d5f23f74dd7673742eb18feecef771b..4b9c71faa01ad21baf8e50b0d4a0cfb6a851f8fc 100644 (file)
@@ -19,7 +19,6 @@ perf.data
 perf.data.old
 output.svg
 perf-archive
-perf-with-kcore
 perf-iostat
 tags
 TAGS
index 69473a836bae8b0b52a036dbfcf664895e6cb142..6e5aded855ccf49df4fbd065e9bb16417279f2ed 100644 (file)
@@ -286,7 +286,6 @@ PYRF_OBJS =
 SCRIPT_SH =
 
 SCRIPT_SH += perf-archive.sh
-SCRIPT_SH += perf-with-kcore.sh
 SCRIPT_SH += perf-iostat.sh
 
 grep-libs = $(filter -l%,$(1))
@@ -973,8 +972,6 @@ ifndef NO_LIBBPF
 endif
        $(call QUIET_INSTALL, perf-archive) \
                $(INSTALL) $(OUTPUT)perf-archive -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
-       $(call QUIET_INSTALL, perf-with-kcore) \
-               $(INSTALL) $(OUTPUT)perf-with-kcore -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
        $(call QUIET_INSTALL, perf-iostat) \
                $(INSTALL) $(OUTPUT)perf-iostat -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
 ifndef NO_LIBAUDIT
@@ -1088,7 +1085,7 @@ bpf-skel-clean:
        $(call QUIET_CLEAN, bpf-skel) $(RM) -r $(SKEL_TMP_OUT) $(SKELETONS)
 
 clean:: $(LIBTRACEEVENT)-clean $(LIBAPI)-clean $(LIBBPF)-clean $(LIBSUBCMD)-clean $(LIBPERF)-clean fixdep-clean python-clean bpf-skel-clean
-       $(call QUIET_CLEAN, core-objs)  $(RM) $(LIBPERF_A) $(OUTPUT)perf-archive $(OUTPUT)perf-with-kcore $(OUTPUT)perf-iostat $(LANG_BINDINGS)
+       $(call QUIET_CLEAN, core-objs)  $(RM) $(LIBPERF_A) $(OUTPUT)perf-archive $(OUTPUT)perf-iostat $(LANG_BINDINGS)
        $(Q)find $(or $(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
        $(Q)$(RM) $(OUTPUT).config-detected
        $(call QUIET_CLEAN, core-progs) $(RM) $(ALL_PROGRAMS) perf perf-read-vdso32 perf-read-vdsox32 $(OUTPUT)pmu-events/jevents $(OUTPUT)$(LIBJVMTI).so
diff --git a/tools/perf/perf-with-kcore.sh b/tools/perf/perf-with-kcore.sh
deleted file mode 100644 (file)
index 0b96545..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-#!/bin/bash
-# SPDX-License-Identifier: GPL-2.0-only
-# perf-with-kcore: use perf with a copy of kcore
-# Copyright (c) 2014, Intel Corporation.
-#
-
-set -e
-
-usage()
-{
-        echo "Usage: perf-with-kcore <perf sub-command> <perf.data directory> [<sub-command options> [ -- <workload>]]" >&2
-        echo "       <perf sub-command> can be record, script, report or inject" >&2
-        echo "   or: perf-with-kcore fix_buildid_cache_permissions" >&2
-        exit 1
-}
-
-find_perf()
-{
-       if [ -n "$PERF" ] ; then
-               return
-       fi
-       PERF=`which perf || true`
-       if [ -z "$PERF" ] ; then
-               echo "Failed to find perf" >&2
-               exit 1
-       fi
-       if [ ! -x "$PERF" ] ; then
-               echo "Failed to find perf" >&2
-               exit 1
-       fi
-       echo "Using $PERF"
-       "$PERF" version
-}
-
-copy_kcore()
-{
-       echo "Copying kcore"
-
-       if [ $EUID -eq 0 ] ; then
-               SUDO=""
-       else
-               SUDO="sudo"
-       fi
-
-       rm -f perf.data.junk
-       ("$PERF" record -o perf.data.junk "${PERF_OPTIONS[@]}" -- sleep 60) >/dev/null 2>/dev/null &
-       PERF_PID=$!
-
-       # Need to make sure that perf has started
-       sleep 1
-
-       KCORE=$(($SUDO "$PERF" buildid-cache -v -f -k /proc/kcore >/dev/null) 2>&1)
-       case "$KCORE" in
-       "kcore added to build-id cache directory "*)
-               KCORE_DIR=${KCORE#"kcore added to build-id cache directory "}
-       ;;
-       *)
-               kill $PERF_PID
-               wait >/dev/null 2>/dev/null || true
-               rm perf.data.junk
-               echo "$KCORE"
-               echo "Failed to find kcore" >&2
-               exit 1
-       ;;
-       esac
-
-       kill $PERF_PID
-       wait >/dev/null 2>/dev/null || true
-       rm perf.data.junk
-
-       $SUDO cp -a "$KCORE_DIR" "$(pwd)/$PERF_DATA_DIR"
-       $SUDO rm -f "$KCORE_DIR/kcore"
-       $SUDO rm -f "$KCORE_DIR/kallsyms"
-       $SUDO rm -f "$KCORE_DIR/modules"
-       $SUDO rmdir "$KCORE_DIR"
-
-       KCORE_DIR_BASENAME=$(basename "$KCORE_DIR")
-       KCORE_DIR="$(pwd)/$PERF_DATA_DIR/$KCORE_DIR_BASENAME"
-
-       $SUDO chown $UID "$KCORE_DIR"
-       $SUDO chown $UID "$KCORE_DIR/kcore"
-       $SUDO chown $UID "$KCORE_DIR/kallsyms"
-       $SUDO chown $UID "$KCORE_DIR/modules"
-
-       $SUDO chgrp $GROUPS "$KCORE_DIR"
-       $SUDO chgrp $GROUPS "$KCORE_DIR/kcore"
-       $SUDO chgrp $GROUPS "$KCORE_DIR/kallsyms"
-       $SUDO chgrp $GROUPS "$KCORE_DIR/modules"
-
-       ln -s "$KCORE_DIR_BASENAME" "$PERF_DATA_DIR/kcore_dir"
-}
-
-fix_buildid_cache_permissions()
-{
-       if [ $EUID -ne 0 ] ; then
-               echo "This script must be run as root via sudo " >&2
-               exit 1
-       fi
-
-       if [ -z "$SUDO_USER" ] ; then
-               echo "This script must be run via sudo" >&2
-               exit 1
-       fi
-
-       USER_HOME=$(bash <<< "echo ~$SUDO_USER")
-
-       echo "Fixing buildid cache permissions"
-
-       find "$USER_HOME/.debug" -xdev -type d          ! -user "$SUDO_USER" -ls -exec chown    "$SUDO_USER" \{\} \;
-       find "$USER_HOME/.debug" -xdev -type f -links 1 ! -user "$SUDO_USER" -ls -exec chown    "$SUDO_USER" \{\} \;
-       find "$USER_HOME/.debug" -xdev -type l          ! -user "$SUDO_USER" -ls -exec chown -h "$SUDO_USER" \{\} \;
-
-       if [ -n "$SUDO_GID" ] ; then
-               find "$USER_HOME/.debug" -xdev -type d          ! -group "$SUDO_GID" -ls -exec chgrp    "$SUDO_GID" \{\} \;
-               find "$USER_HOME/.debug" -xdev -type f -links 1 ! -group "$SUDO_GID" -ls -exec chgrp    "$SUDO_GID" \{\} \;
-               find "$USER_HOME/.debug" -xdev -type l          ! -group "$SUDO_GID" -ls -exec chgrp -h "$SUDO_GID" \{\} \;
-       fi
-
-       echo "Done"
-}
-
-check_buildid_cache_permissions()
-{
-       if [ $EUID -eq 0 ] ; then
-               return
-       fi
-
-       PERMISSIONS_OK+=$(find "$HOME/.debug" -xdev -type d          ! -user "$USER" -print -quit)
-       PERMISSIONS_OK+=$(find "$HOME/.debug" -xdev -type f -links 1 ! -user "$USER" -print -quit)
-       PERMISSIONS_OK+=$(find "$HOME/.debug" -xdev -type l          ! -user "$USER" -print -quit)
-
-       PERMISSIONS_OK+=$(find "$HOME/.debug" -xdev -type d          ! -group "$GROUPS" -print -quit)
-       PERMISSIONS_OK+=$(find "$HOME/.debug" -xdev -type f -links 1 ! -group "$GROUPS" -print -quit)
-       PERMISSIONS_OK+=$(find "$HOME/.debug" -xdev -type l          ! -group "$GROUPS" -print -quit)
-
-       if [ -n "$PERMISSIONS_OK" ] ; then
-               echo "*** WARNING *** buildid cache permissions may need fixing" >&2
-       fi
-}
-
-record()
-{
-       echo "Recording"
-
-       if [ $EUID -ne 0 ] ; then
-
-               if [ "$(cat /proc/sys/kernel/kptr_restrict)" -ne 0 ] ; then
-                       echo "*** WARNING *** /proc/sys/kernel/kptr_restrict prevents access to kernel addresses" >&2
-               fi
-
-               if echo "${PERF_OPTIONS[@]}" | grep -q ' -a \|^-a \| -a$\|^-a$\| --all-cpus \|^--all-cpus \| --all-cpus$\|^--all-cpus$' ; then
-                       echo "*** WARNING *** system-wide tracing without root access will not be able to read all necessary information from /proc" >&2
-               fi
-
-               if echo "${PERF_OPTIONS[@]}" | grep -q 'intel_pt\|intel_bts\| -I\|^-I' ; then
-                       if [ "$(cat /proc/sys/kernel/perf_event_paranoid)" -gt -1 ] ; then
-                               echo "*** WARNING *** /proc/sys/kernel/perf_event_paranoid restricts buffer size and tracepoint (sched_switch) use" >&2
-                       fi
-
-                       if echo "${PERF_OPTIONS[@]}" | grep -q ' --per-thread \|^--per-thread \| --per-thread$\|^--per-thread$' ; then
-                               true
-                       elif echo "${PERF_OPTIONS[@]}" | grep -q ' -t \|^-t \| -t$\|^-t$' ; then
-                               true
-                       elif [ ! -r /sys/kernel/debug -o ! -x /sys/kernel/debug ] ; then
-                               echo "*** WARNING *** /sys/kernel/debug permissions prevent tracepoint (sched_switch) use" >&2
-                       fi
-               fi
-       fi
-
-       if [ -z "$1" ] ; then
-               echo "Workload is required for recording" >&2
-               usage
-       fi
-
-       if [ -e "$PERF_DATA_DIR" ] ; then
-               echo "'$PERF_DATA_DIR' exists" >&2
-               exit 1
-       fi
-
-       find_perf
-
-       mkdir "$PERF_DATA_DIR"
-
-       echo "$PERF record -o $PERF_DATA_DIR/perf.data ${PERF_OPTIONS[@]} -- $@"
-       "$PERF" record -o "$PERF_DATA_DIR/perf.data" "${PERF_OPTIONS[@]}" -- "$@" || true
-
-       if rmdir "$PERF_DATA_DIR" > /dev/null 2>/dev/null ; then
-               exit 1
-       fi
-
-       copy_kcore
-
-       echo "Done"
-}
-
-subcommand()
-{
-       find_perf
-       check_buildid_cache_permissions
-       echo "$PERF $PERF_SUB_COMMAND -i $PERF_DATA_DIR/perf.data --kallsyms=$PERF_DATA_DIR/kcore_dir/kallsyms $@"
-       "$PERF" $PERF_SUB_COMMAND -i "$PERF_DATA_DIR/perf.data" "--kallsyms=$PERF_DATA_DIR/kcore_dir/kallsyms" "$@"
-}
-
-if [ "$1" = "fix_buildid_cache_permissions" ] ; then
-       fix_buildid_cache_permissions
-       exit 0
-fi
-
-PERF_SUB_COMMAND=$1
-PERF_DATA_DIR=$2
-shift || true
-shift || true
-
-if [ -z "$PERF_SUB_COMMAND" ] ; then
-       usage
-fi
-
-if [ -z "$PERF_DATA_DIR" ] ; then
-       usage
-fi
-
-case "$PERF_SUB_COMMAND" in
-"record")
-       while [ "$1" != "--" ] ; do
-               PERF_OPTIONS+=("$1")
-               shift || break
-       done
-       if [ "$1" != "--" ] ; then
-               echo "Options and workload are required for recording" >&2
-               usage
-       fi
-       shift
-       record "$@"
-;;
-"script")
-       subcommand "$@"
-;;
-"report")
-       subcommand "$@"
-;;
-"inject")
-       subcommand "$@"
-;;
-*)
-       usage
-;;
-esac