-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 169631 b: refs/heads/master c: c34984b h: refs/heads/master i: 169629: 06a81db 169627: 836231b 169623: 4081ef3 169615: 3ff9a25 169599: 2e6fb7e v: v3
- Loading branch information
Arnaldo Carvalho de Melo
authored and
Ingo Molnar
committed
Nov 16, 2009
1 parent
b8097cc
commit b5d4487
Showing
7 changed files
with
155 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 9e03eb2d512e7f3a1e562d4b922aa8b1891750b6 | ||
refs/heads/master: c34984b2bbc77596c97c333539bffc90d2033178 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
perf-buildid-list(1) | ||
==================== | ||
|
||
NAME | ||
---- | ||
perf-buildid-list - List the buildids in a perf.data file | ||
|
||
SYNOPSIS | ||
-------- | ||
[verse] | ||
'perf buildid-list <options>' | ||
|
||
DESCRIPTION | ||
----------- | ||
This command displays the buildids found in a perf.data file, so that other | ||
tools can be used to fetch packages with matching symbol tables for use by | ||
perf report. | ||
|
||
OPTIONS | ||
------- | ||
-i:: | ||
--input=:: | ||
Input file name. (default: perf.data) | ||
-f:: | ||
--force:: | ||
Don't do ownership validation. | ||
-v:: | ||
--verbose:: | ||
Be more verbose, showing the name of the DSOs after the buildids. | ||
|
||
SEE ALSO | ||
-------- | ||
linkperf:perf-record[1], linkperf:perf-top[1], | ||
linkperf:perf-report[1] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
/* | ||
* builtin-buildid-list.c | ||
* | ||
* Builtin buildid-list command: list buildids in perf.data | ||
* | ||
* Copyright (C) 2009, Red Hat Inc. | ||
* Copyright (C) 2009, Arnaldo Carvalho de Melo <acme@redhat.com> | ||
*/ | ||
#include "builtin.h" | ||
#include "perf.h" | ||
#include "util/cache.h" | ||
#include "util/data_map.h" | ||
#include "util/debug.h" | ||
#include "util/header.h" | ||
#include "util/parse-options.h" | ||
#include "util/symbol.h" | ||
|
||
static char const *input_name = "perf.data"; | ||
static int force; | ||
|
||
static const char *const buildid_list_usage[] = { | ||
"perf report [<options>]", | ||
NULL | ||
}; | ||
|
||
static const struct option options[] = { | ||
OPT_STRING('i', "input", &input_name, "file", | ||
"input file name"), | ||
OPT_BOOLEAN('f', "force", &force, "don't complain, do it"), | ||
OPT_BOOLEAN('v', "verbose", &verbose, | ||
"be more verbose (show counter open errors, etc)"), | ||
OPT_END() | ||
}; | ||
|
||
static int perf_file_section__process_buildids(struct perf_file_section *self, | ||
int feat, int fd) | ||
{ | ||
if (feat != HEADER_BUILD_ID) | ||
return 0; | ||
|
||
if (lseek(fd, self->offset, SEEK_SET) < 0) { | ||
pr_warning("Failed to lseek to %Ld offset for buildids!\n", | ||
self->offset); | ||
return -1; | ||
} | ||
|
||
if (perf_header__read_build_ids(fd, self->offset, self->size)) { | ||
pr_warning("Failed to read buildids!\n"); | ||
return -1; | ||
} | ||
|
||
return 0; | ||
} | ||
|
||
static int __cmd_buildid_list(void) | ||
{ | ||
int err = -1; | ||
struct perf_header *header; | ||
struct perf_file_header f_header; | ||
struct stat input_stat; | ||
int input = open(input_name, O_RDONLY); | ||
|
||
if (input < 0) { | ||
pr_err("failed to open file: %s", input_name); | ||
if (!strcmp(input_name, "perf.data")) | ||
pr_err(" (try 'perf record' first)"); | ||
pr_err("\n"); | ||
goto out; | ||
} | ||
|
||
err = fstat(input, &input_stat); | ||
if (err < 0) { | ||
perror("failed to stat file"); | ||
goto out_close; | ||
} | ||
|
||
if (!force && input_stat.st_uid && (input_stat.st_uid != geteuid())) { | ||
pr_err("file %s not owned by current user or root\n", | ||
input_name); | ||
goto out_close; | ||
} | ||
|
||
if (!input_stat.st_size) { | ||
pr_info("zero-sized file, nothing to do!\n"); | ||
goto out_close; | ||
} | ||
|
||
err = -1; | ||
header = perf_header__new(); | ||
if (header == NULL) | ||
goto out_close; | ||
|
||
if (perf_file_header__read(&f_header, header, input) < 0) { | ||
pr_warning("incompatible file format"); | ||
goto out_close; | ||
} | ||
|
||
err = perf_header__process_sections(header, input, | ||
perf_file_section__process_buildids); | ||
|
||
if (err < 0) | ||
goto out_close; | ||
|
||
dsos__fprintf_buildid(stdout); | ||
out_close: | ||
close(input); | ||
out: | ||
return err; | ||
} | ||
|
||
int cmd_buildid_list(int argc, const char **argv, const char *prefix __used) | ||
{ | ||
argc = parse_options(argc, argv, options, buildid_list_usage, 0); | ||
setup_pager(); | ||
return __cmd_buildid_list(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters