Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
c4f3b5a2
Commit
c4f3b5a2
authored
May 04, 2010
by
Ingo Molnar
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'perf' of
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux-2.6
into perf/core
parents
777d0411
02bf60aa
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
75 additions
and
18 deletions
+75
-18
tools/perf/Documentation/perf-buildid-cache.txt
tools/perf/Documentation/perf-buildid-cache.txt
+2
-2
tools/perf/Documentation/perf-inject.txt
tools/perf/Documentation/perf-inject.txt
+35
-0
tools/perf/builtin-inject.c
tools/perf/builtin-inject.c
+1
-1
tools/perf/builtin-record.c
tools/perf/builtin-record.c
+21
-14
tools/perf/command-list.txt
tools/perf/command-list.txt
+1
-0
tools/perf/util/event.c
tools/perf/util/event.c
+1
-0
tools/perf/util/header.c
tools/perf/util/header.c
+8
-1
tools/perf/util/parse-events.h
tools/perf/util/parse-events.h
+1
-0
tools/perf/util/trace-event-info.c
tools/perf/util/trace-event-info.c
+5
-0
No files found.
tools/perf/Documentation/perf-buildid-cache.txt
View file @
c4f3b5a2
...
...
@@ -8,7 +8,7 @@ perf-buildid-cache - Manage build-id cache.
SYNOPSIS
--------
[verse]
'perf buildid-
list
<options>'
'perf buildid-
cache
<options>'
DESCRIPTION
-----------
...
...
@@ -30,4 +30,4 @@ OPTIONS
SEE ALSO
--------
linkperf:perf-record[1], linkperf:perf-report[1]
linkperf:perf-record[1], linkperf:perf-report[1]
, linkperf:perf-buildid-list[1]
tools/perf/Documentation/perf-inject.txt
0 → 100644
View file @
c4f3b5a2
perf-inject(1)
==============
NAME
----
perf-inject - Filter to augment the events stream with additional information
SYNOPSIS
--------
[verse]
'perf inject <options>'
DESCRIPTION
-----------
perf-inject reads a perf-record event stream and repipes it to stdout. At any
point the processing code can inject other events into the event stream - in
this case build-ids (-b option) are read and injected as needed into the event
stream.
Build-ids are just the first user of perf-inject - potentially anything that
needs userspace processing to augment the events stream with additional
information could make use of this facility.
OPTIONS
-------
-b::
--build-ids=::
Inject build-ids into the output stream
-v::
--verbose::
Be more verbose.
SEE ALSO
--------
linkperf:perf-record[1], linkperf:perf-report[1], linkperf:perf-archive[1]
tools/perf/builtin-inject.c
View file @
c4f3b5a2
...
...
@@ -204,7 +204,7 @@ static const char * const report_usage[] = {
};
static
const
struct
option
options
[]
=
{
OPT_BOOLEAN
(
'b'
,
"
inject
build-ids"
,
&
inject_build_ids
,
OPT_BOOLEAN
(
'b'
,
"build-ids"
,
&
inject_build_ids
,
"Inject build-ids into the output stream"
),
OPT_INCR
(
'v'
,
"verbose"
,
&
verbose
,
"be more verbose (show build ids, etc)"
),
...
...
tools/perf/builtin-record.c
View file @
c4f3b5a2
...
...
@@ -560,11 +560,12 @@ static int __cmd_record(int argc, const char **argv)
return
err
;
}
if
(
raw_samples
)
{
if
(
raw_samples
&&
have_tracepoints
(
attrs
,
nr_counters
)
)
{
perf_header__set_feat
(
&
session
->
header
,
HEADER_TRACE_INFO
);
}
else
{
for
(
i
=
0
;
i
<
nr_counters
;
i
++
)
{
if
(
attrs
[
i
].
sample_type
&
PERF_SAMPLE_RAW
)
{
if
(
attrs
[
i
].
sample_type
&
PERF_SAMPLE_RAW
&&
attrs
[
i
].
type
==
PERF_TYPE_TRACEPOINT
)
{
perf_header__set_feat
(
&
session
->
header
,
HEADER_TRACE_INFO
);
break
;
}
...
...
@@ -662,19 +663,25 @@ static int __cmd_record(int argc, const char **argv)
return
err
;
}
err
=
event__synthesize_tracing_data
(
output
,
attrs
,
nr_counters
,
process_synthesized_event
,
session
);
/*
* FIXME err <= 0 here actually means that there were no tracepoints
* so its not really an error, just that we don't need to synthesize
* anything.
* We really have to return this more properly and also propagate
* errors that now are calling die()
*/
if
(
err
>
0
)
if
(
have_tracepoints
(
attrs
,
nr_counters
))
{
/*
* FIXME err <= 0 here actually means that
* there were no tracepoints so its not really
* an error, just that we don't need to
* synthesize anything. We really have to
* return this more properly and also
* propagate errors that now are calling die()
*/
err
=
event__synthesize_tracing_data
(
output
,
attrs
,
nr_counters
,
process_synthesized_event
,
session
);
if
(
err
<=
0
)
{
pr_err
(
"Couldn't record tracing data.
\n
"
);
return
err
;
}
advance_output
(
err
);
}
}
machine
=
perf_session__find_host_machine
(
session
);
...
...
tools/perf/command-list.txt
View file @
c4f3b5a2
...
...
@@ -8,6 +8,7 @@ perf-bench mainporcelain common
perf-buildid-cache mainporcelain common
perf-buildid-list mainporcelain common
perf-diff mainporcelain common
perf-inject mainporcelain common
perf-list mainporcelain common
perf-sched mainporcelain common
perf-record mainporcelain common
...
...
tools/perf/util/event.c
View file @
c4f3b5a2
...
...
@@ -713,6 +713,7 @@ int event__parse_sample(event_t *event, u64 type, struct sample_data *data)
array
++
;
}
data
->
id
=
-
1ULL
;
if
(
type
&
PERF_SAMPLE_ID
)
{
data
->
id
=
*
array
;
array
++
;
...
...
tools/perf/util/header.c
View file @
c4f3b5a2
...
...
@@ -436,7 +436,6 @@ static int perf_header__adds_write(struct perf_header *self, int fd)
trace_sec
->
size
=
lseek
(
fd
,
0
,
SEEK_CUR
)
-
trace_sec
->
offset
;
}
if
(
perf_header__has_feat
(
self
,
HEADER_BUILD_ID
))
{
struct
perf_file_section
*
buildid_sec
;
...
...
@@ -923,6 +922,14 @@ perf_header__find_attr(u64 id, struct perf_header *header)
{
int
i
;
/*
* We set id to -1 if the data file doesn't contain sample
* ids. Check for this and avoid walking through the entire
* list of ids which may be large.
*/
if
(
id
==
-
1ULL
)
return
NULL
;
for
(
i
=
0
;
i
<
header
->
attrs
;
i
++
)
{
struct
perf_header_attr
*
attr
=
header
->
attr
[
i
];
int
j
;
...
...
tools/perf/util/parse-events.h
View file @
c4f3b5a2
...
...
@@ -13,6 +13,7 @@ struct tracepoint_path {
};
extern
struct
tracepoint_path
*
tracepoint_id_to_path
(
u64
config
);
extern
bool
have_tracepoints
(
struct
perf_event_attr
*
pattrs
,
int
nb_events
);
extern
int
nr_counters
;
...
...
tools/perf/util/trace-event-info.c
View file @
c4f3b5a2
...
...
@@ -487,6 +487,11 @@ get_tracepoints_path(struct perf_event_attr *pattrs, int nb_events)
return
nr_tracepoints
>
0
?
path
.
next
:
NULL
;
}
bool
have_tracepoints
(
struct
perf_event_attr
*
pattrs
,
int
nb_events
)
{
return
get_tracepoints_path
(
pattrs
,
nb_events
)
?
true
:
false
;
}
int
read_tracing_data
(
int
fd
,
struct
perf_event_attr
*
pattrs
,
int
nb_events
)
{
char
buf
[
BUFSIZ
];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment