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

Commit dd3190ee authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull perf fixes from Ingo Molnar:
 "Tooling changes only: it includes the ARM tooling fixlets, various
  other fixes, smaller updates, minor cleanups"

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf record: Add an option to force per-cpu mmaps
  perf probe: Add '--demangle'/'--no-demangle'
  perf ui browser: Fix segfault caused by off by one handling END key
  perf symbols: Limit max callchain using max_stack on DWARF unwinding too
  perf evsel: Introduce perf_evsel__prev() method
  perf tools: Use perf_evlist__{first,last}, perf_evsel__next
  perf tools: Synthesize anon MMAP records again
  perf top: Add missing newline if the 'uid' is invalid
  perf tools: Remove trivial extra semincolon
  perf trace: Tweak summary output
  tools/perf/build: Fix feature-libunwind-debug-frame handling
  tools/perf/build: Fix timerfd feature check
parents b29c8306 89b4be14
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