Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c4f3b5a2 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge branch 'perf' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux-2.6 into perf/core

parents 777d0411 02bf60aa
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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]
+35 −0
Original line number Diff line number Diff line
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]
+1 −1
Original line number Diff line number Diff line
@@ -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)"),
+21 −14
Original line number Diff line number Diff line
@@ -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,20 +663,26 @@ static int __cmd_record(int argc, const char **argv)
			return err;
		}

		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);
		/*
		 * 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 (err <= 0) {
				pr_err("Couldn't record tracing data.\n");
				return err;
			}
			advance_output(err);
		}
	}

	machine = perf_session__find_host_machine(session);
	if (!machine) {
+1 −0
Original line number Diff line number Diff line
@@ -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
Loading