diff options
| author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2013-05-01 08:47:44 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2013-05-01 08:47:44 -0700 | 
| commit | bf61c8840efe60fd8f91446860b63338fb424158 (patch) | |
| tree | 7a71832407a4f0d6346db773343f4c3ae2257b19 /tools/perf/builtin-buildid-list.c | |
| parent | 5846115b30f3a881e542c8bfde59a699c1c13740 (diff) | |
| parent | 0c6a61657da78098472fd0eb71cc01f2387fa1bb (diff) | |
| download | olio-linux-3.10-bf61c8840efe60fd8f91446860b63338fb424158.tar.xz olio-linux-3.10-bf61c8840efe60fd8f91446860b63338fb424158.zip  | |
Merge branch 'next' into for-linus
Prepare first set of updates for 3.10 merge window.
Diffstat (limited to 'tools/perf/builtin-buildid-list.c')
| -rw-r--r-- | tools/perf/builtin-buildid-list.c | 27 | 
1 files changed, 14 insertions, 13 deletions
diff --git a/tools/perf/builtin-buildid-list.c b/tools/perf/builtin-buildid-list.c index a0e94fffa03..e74366a1321 100644 --- a/tools/perf/builtin-buildid-list.c +++ b/tools/perf/builtin-buildid-list.c @@ -44,24 +44,26 @@ static int filename__fprintf_build_id(const char *name, FILE *fp)  	return fprintf(fp, "%s\n", sbuild_id);  } -static int perf_session__list_build_ids(const char *input_name, -					bool force, bool with_hits) +static bool dso__skip_buildid(struct dso *dso, int with_hits) +{ +	return with_hits && !dso->hit; +} + +static int perf_session__list_build_ids(bool force, bool with_hits)  {  	struct perf_session *session;  	symbol__elf_init(); - -	session = perf_session__new(input_name, O_RDONLY, force, false, -				    &build_id__mark_dso_hit_ops); -	if (session == NULL) -		return -1; -  	/*  	 * See if this is an ELF file first:  	 */ -	if (filename__fprintf_build_id(session->filename, stdout)) +	if (filename__fprintf_build_id(input_name, stdout))  		goto out; +	session = perf_session__new(input_name, O_RDONLY, force, false, +				    &build_id__mark_dso_hit_ops); +	if (session == NULL) +		return -1;  	/*  	 * in pipe-mode, the only way to get the buildids is to parse  	 * the record stream. Buildids are stored as RECORD_HEADER_BUILD_ID @@ -69,9 +71,9 @@ static int perf_session__list_build_ids(const char *input_name,  	if (with_hits || session->fd_pipe)  		perf_session__process_events(session, &build_id__mark_dso_hit_ops); -	perf_session__fprintf_dsos_buildid(session, stdout, with_hits); -out: +	perf_session__fprintf_dsos_buildid(session, stdout, dso__skip_buildid, with_hits);  	perf_session__delete(session); +out:  	return 0;  } @@ -81,7 +83,6 @@ int cmd_buildid_list(int argc, const char **argv,  	bool show_kernel = false;  	bool with_hits = false;  	bool force = false; -	const char *input_name = NULL;  	const struct option options[] = {  	OPT_BOOLEAN('H', "with-hits", &with_hits, "Show only DSOs with hits"),  	OPT_STRING('i', "input", &input_name, "file", "input file name"), @@ -101,5 +102,5 @@ int cmd_buildid_list(int argc, const char **argv,  	if (show_kernel)  		return sysfs__fprintf_build_id(stdout); -	return perf_session__list_build_ids(input_name, force, with_hits); +	return perf_session__list_build_ids(force, with_hits);  }  |