Em Fri, Jul 17, 2015 at 07:33:47PM +0300, Adrian Hunter escreveu: > Fix the perf-with-kcore script so that it doesn't > split arguments that contain spaces.
Applied > Signed-off-by: Adrian Hunter <adrian.hun...@intel.com> > --- > tools/perf/perf-with-kcore.sh | 28 ++++++++++++++-------------- > 1 file changed, 14 insertions(+), 14 deletions(-) > > diff --git a/tools/perf/perf-with-kcore.sh b/tools/perf/perf-with-kcore.sh > index c7ff90a90e4e..7e47a7cbc195 100644 > --- a/tools/perf/perf-with-kcore.sh > +++ b/tools/perf/perf-with-kcore.sh > @@ -50,7 +50,7 @@ copy_kcore() > fi > > rm -f perf.data.junk > - ("$PERF" record -o perf.data.junk $PERF_OPTIONS -- sleep 60) >/dev/null > 2>/dev/null & > + ("$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 > @@ -160,18 +160,18 @@ record() > 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 > + 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 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 > + 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 > + 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 > @@ -193,8 +193,8 @@ record() > > 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 > + 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 > @@ -209,8 +209,8 @@ 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" $* > + 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 > @@ -234,7 +234,7 @@ fi > case "$PERF_SUB_COMMAND" in > "record") > while [ "$1" != "--" ] ; do > - PERF_OPTIONS+="$1 " > + PERF_OPTIONS+=("$1") > shift || break > done > if [ "$1" != "--" ] ; then > @@ -242,16 +242,16 @@ case "$PERF_SUB_COMMAND" in > usage > fi > shift > - record $* > + record "$@" > ;; > "script") > - subcommand $* > + subcommand "$@" > ;; > "report") > - subcommand $* > + subcommand "$@" > ;; > "inject") > - subcommand $* > + subcommand "$@" > ;; > *) > usage > -- > 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/