From: Jiri Olsa <jolsa@redhat.com>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
LKML <linux-kernel@vger.kernel.org>,
Stephane Eranian <eranian@google.com>,
Ian Rogers <irogers@google.com>,
Adrian Hunter <adrian.hunter@intel.com>
Subject: Re: [PATCH 7/7] perf inject: Remove stale build-id processing
Date: Thu, 24 Sep 2020 15:33:49 +0200 [thread overview]
Message-ID: <20200924133349.GC3150401@krava> (raw)
In-Reply-To: <20200923080537.155264-8-namhyung@kernel.org>
On Wed, Sep 23, 2020 at 05:05:37PM +0900, Namhyung Kim wrote:
> I think we don't need to call build_id__mark_dso_hit() in the
> perf_event__repipe_sample() as it's not used by -b option. In case of
> the -b option is used, it uses perf_event__inject_buildid() instead.
> This can remove unnecessary overhead of finding thread/map for each
> sample event.
>
> Also I suspect HEADER_BUILD_ID feature bit setting since we already
> generated/injected BUILD_ID event into the output stream. So this
> header information seems redundant. I'm not 100% sure about the
> auxtrace usage, but it looks like not related to this directly.
>
> And we now have --buildid-all so users can get the same behavior if
> they want.
>
> Cc: Adrian Hunter <adrian.hunter@intel.com>
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
> ---
> tools/perf/builtin-inject.c | 12 ------------
> 1 file changed, 12 deletions(-)
>
> diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c
> index 500428aaa576..0191d72be7c4 100644
> --- a/tools/perf/builtin-inject.c
> +++ b/tools/perf/builtin-inject.c
> @@ -277,8 +277,6 @@ static int perf_event__repipe_sample(struct perf_tool *tool,
> return f(tool, event, sample, evsel, machine);
> }
>
> - build_id__mark_dso_hit(tool, event, sample, evsel, machine);
> -
I recalled using simple 'perf inject -i .. -o .. ' to get uncompressed data
from 'perf record -z' and I though this change will force inject not to store
all build ids ... but it's happening even without your change ;-)
$ ./perf record ls
...
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.016 MB perf.data (15 samples) ]
$ ./perf inject -o perf.data.new -i perf.data
$ ./perf buildid-list
17f4e448cc746582ea1881528deb549f7fdb3fd5 [kernel.kallsyms]
b516839521ded07bb1fbd0a0276be9820ee8908e /usr/bin/ls
1805c738c8f3ec0f47b7ea09080c28f34d18a82b /usr/lib64/ld-2.31.so
f22785ea7e42e8aa9097a567a3cc8ae214cae4b6 [vdso]
d278249792061c6b74d1693ca59513be1def13f2 /usr/lib64/libc-2.31.so
$ ./perf buildid-list -i perf.data.new
f22785ea7e42e8aa9097a567a3cc8ae214cae4b6 [vdso]
jirka
> if (inject->itrace_synth_opts.set && sample->aux_sample.size)
> event = perf_inject__cut_auxtrace_sample(inject, event, sample);
>
> @@ -767,16 +765,6 @@ static int __cmd_inject(struct perf_inject *inject)
> return ret;
>
> if (!data_out->is_pipe) {
> - if (inject->build_ids)
> - perf_header__set_feat(&session->header,
> - HEADER_BUILD_ID);
> - /*
> - * Keep all buildids when there is unprocessed AUX data because
> - * it is not known which ones the AUX trace hits.
> - */
> - if (perf_header__has_feat(&session->header, HEADER_BUILD_ID) &&
> - inject->have_auxtrace && !inject->itrace_synth_opts.set)
> - dsos__hit_all(session);
> /*
> * The AUX areas have been removed and replaced with
> * synthesized hardware events, so clear the feature flag and
> --
> 2.28.0.681.g6f77f65b4e-goog
>
next prev parent reply other threads:[~2020-09-24 13:34 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-23 8:05 [PATCHSET v2 0/7] perf inject: Speed build-id injection Namhyung Kim
2020-09-23 8:05 ` [PATCH 1/7] perf bench: Add build-id injection benchmark Namhyung Kim
2020-09-23 22:13 ` Ian Rogers
2020-09-24 6:23 ` Namhyung Kim
2020-09-23 8:05 ` [PATCH 2/7] perf inject: Add missing callbacks in perf_tool Namhyung Kim
2020-09-23 8:05 ` [PATCH 3/7] perf inject: Enter namespace when reading build-id Namhyung Kim
2020-09-23 8:05 ` [PATCH 4/7] perf inject: Do not load map/dso when injecting build-id Namhyung Kim
2020-09-24 13:09 ` Jiri Olsa
2020-09-24 13:20 ` Namhyung Kim
2020-09-24 13:44 ` Jiri Olsa
2020-09-24 14:46 ` Namhyung Kim
2020-09-25 14:26 ` Jiri Olsa
2020-09-28 12:31 ` Arnaldo Carvalho de Melo
2020-09-23 8:05 ` [PATCH 5/7] perf inject: Add --buildid-all option Namhyung Kim
2020-09-23 22:16 ` Ian Rogers
2020-09-23 8:05 ` [PATCH 6/7] perf bench: Run inject-build-id with --buildid-all option too Namhyung Kim
2020-09-23 22:17 ` Ian Rogers
2020-09-23 8:05 ` [PATCH 7/7] perf inject: Remove stale build-id processing Namhyung Kim
2020-09-23 14:36 ` Adrian Hunter
2020-09-24 3:51 ` Namhyung Kim
2020-09-24 13:33 ` Jiri Olsa [this message]
2020-09-24 14:23 ` Namhyung Kim
2020-09-24 13:35 ` [PATCHSET v2 0/7] perf inject: Speed build-id injection Jiri Olsa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200924133349.GC3150401@krava \
--to=jolsa@redhat.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=eranian@google.com \
--cc=irogers@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.