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

Commit 89b4be14 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge tag 'perf-core-for-mingo' of...

Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux

 into perf/urgent

Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:

  * Synthesize anon MMAP records again, fix from Don Zickus.

  * Add an option in 'perf record' to force per-cpu mmaps, from Adrian Hunter.

  * Limit max callchain using max_stack on DWARF unwinding too.

  * Fix segfault in the UI browser caused by off by one handling END key.

  * Add '--demangle'/'--no-demangle' to perf probe, so that we can overcome
    current limitations in handling C++ symbols, from Azat Khuzhin .

  * Tweak 'perf trace' summary output, from Pekka Enberg.

Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parents e310718d 539e6bb7
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -201,6 +201,12 @@ abort events and some memory events in precise mode on modern Intel CPUs.
--transaction::
Record transaction flags for transaction related events.

--force-per-cpu::
Force the use of per-cpu mmaps.  By default, when tasks are specified (i.e. -p,
-t or -u options) per-thread mmaps are created.  This option overrides that and
forces per-cpu mmaps.  A side-effect of that is that inheritance is
automatically enabled.  Add the -i option also to disable inheritance.

SEE ALSO
--------
linkperf:perf-stat[1], linkperf:perf-list[1]
+2 −0
Original line number Diff line number Diff line
@@ -325,6 +325,8 @@ int cmd_probe(int argc, const char **argv, const char *prefix __maybe_unused)
		     opt_set_filter),
	OPT_CALLBACK('x', "exec", NULL, "executable|path",
			"target executable name or path", opt_set_target),
	OPT_BOOLEAN(0, "demangle", &symbol_conf.demangle,
		    "Disable symbol demangling"),
	OPT_END()
	};
	int ret;
+2 −0
Original line number Diff line number Diff line
@@ -888,6 +888,8 @@ const struct option record_options[] = {
		    "sample by weight (on special events only)"),
	OPT_BOOLEAN(0, "transaction", &record.opts.sample_transaction,
		    "sample transaction flags (special events only)"),
	OPT_BOOLEAN(0, "force-per-cpu", &record.opts.target.force_per_cpu,
		    "force the use of per-cpu mmaps"),
	OPT_END()
};

+2 −2
Original line number Diff line number Diff line
@@ -1172,7 +1172,7 @@ int cmd_top(int argc, const char **argv, const char *prefix __maybe_unused)
	status = target__validate(target);
	if (status) {
		target__strerror(target, status, errbuf, BUFSIZ);
		ui__warning("%s", errbuf);
		ui__warning("%s\n", errbuf);
	}

	status = target__parse_uid(target);
@@ -1180,7 +1180,7 @@ int cmd_top(int argc, const char **argv, const char *prefix __maybe_unused)
		int saved_errno = errno;

		target__strerror(target, status, errbuf, BUFSIZ);
		ui__error("%s", errbuf);
		ui__error("%s\n", errbuf);

		status = -saved_errno;
		goto out_delete_evlist;
+5 −5
Original line number Diff line number Diff line
@@ -2112,9 +2112,9 @@ static size_t thread__dump_stats(struct thread_trace *ttrace,

	printed += fprintf(fp, "\n");

	printed += fprintf(fp, "                                                    msec/call\n");
	printed += fprintf(fp, "   syscall            calls      min       avg       max      stddev\n");
	printed += fprintf(fp, "   --------------- -------- -------- -------- -------- ------\n");
	printed += fprintf(fp, "                               (msec)    (msec)    (msec)        (%%)\n");
	printed += fprintf(fp, "   --------------- -------- --------- --------- ---------     ------\n");

	/* each int_node is a syscall */
	while (inode) {
@@ -2131,9 +2131,9 @@ static size_t thread__dump_stats(struct thread_trace *ttrace,

			sc = &trace->syscalls.table[inode->i];
			printed += fprintf(fp, "   %-15s", sc->name);
			printed += fprintf(fp, " %8" PRIu64 " %8.3f %8.3f",
			printed += fprintf(fp, " %8" PRIu64 " %9.3f %9.3f",
					   n, min, avg);
			printed += fprintf(fp, " %8.3f %6.2f\n", max, pct);
			printed += fprintf(fp, " %9.3f %9.2f%%\n", max, pct);
		}

		inode = intlist__next(inode);
Loading