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

Commit 8aedf8a6 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'perf-fixes-for-linus' of...

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

* 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (52 commits)
  perf record: Use per-task-per-cpu events for inherited events
  perf record: Properly synchronize child creation
  perf events: Allow per-task-per-cpu counters
  perf diff: Percent calcs should use double values
  perf diff: Change the default sort order to "dso,symbol"
  perf diff: Use perf_session__fprintf_hists just like 'perf record'
  perf report: Fix cut'n'paste error recently introduced
  perf session: Move perf report specific hits out of perf_session__fprintf_hists
  perf tools: Move hist entries printing routines from perf report
  perf report: Generalize perf_session__fprintf_hists()
  perf symbols: Move symbol filtering to event__preprocess_sample()
  perf symbols: Adopt the strlists for dso, comm
  perf symbols: Make symbol_conf global
  perf probe: Fix to show which probe point is not found
  perf probe: Check symbols in symtab/kallsyms
  perf probe: Check build-id of vmlinux
  perf probe: Reject second attempt of adding same-name event
  perf probe: Support event name for --add option
  perf probe: Add glob matching support on --del
  perf probe: Use strlist__for_each macros in probe-event.c
  ...
parents bac5e54c 60ab2716
Loading
Loading
Loading
Loading
+3 −9
Original line number Diff line number Diff line
@@ -211,17 +211,11 @@ struct perf_event_attr {
		__u32		wakeup_watermark; /* bytes before wakeup   */
	};

	struct { /* Hardware breakpoint info */
	__u32			__reserved_2;

	__u64			bp_addr;
	__u32			bp_type;
	__u32			bp_len;
		__u64		__bp_reserved_1;
		__u64		__bp_reserved_2;
	};

	__u32			__reserved_2;

	__u64			__reserved_3;
};

/*
+9 −6
Original line number Diff line number Diff line
@@ -782,6 +782,9 @@ static void __perf_install_in_context(void *info)

	add_event_to_ctx(event, ctx);

	if (event->cpu != -1 && event->cpu != smp_processor_id())
		goto unlock;

	/*
	 * Don't put the event on if it is disabled or if
	 * it is in a group and the group isn't on.
@@ -925,6 +928,9 @@ static void __perf_event_enable(void *info)
		goto unlock;
	__perf_event_mark_enabled(event, ctx);

	if (event->cpu != -1 && event->cpu != smp_processor_id())
		goto unlock;

	/*
	 * If the event is in a group and isn't the group leader,
	 * then don't put it on unless the group is on.
@@ -1595,15 +1601,12 @@ static struct perf_event_context *find_get_context(pid_t pid, int cpu)
	unsigned long flags;
	int err;

	/*
	 * If cpu is not a wildcard then this is a percpu event:
	 */
	if (cpu != -1) {
	if (pid == -1 && cpu != -1) {
		/* Must be root to operate on a CPU event: */
		if (perf_paranoid_cpu() && !capable(CAP_SYS_ADMIN))
			return ERR_PTR(-EACCES);

		if (cpu < 0 || cpu > num_possible_cpus())
		if (cpu < 0 || cpu >= nr_cpumask_bits)
			return ERR_PTR(-EINVAL);

		/*
@@ -4564,7 +4567,7 @@ static int perf_copy_attr(struct perf_event_attr __user *uattr,
	if (attr->type >= PERF_TYPE_MAX)
		return -EINVAL;

	if (attr->__reserved_1 || attr->__reserved_2 || attr->__reserved_3)
	if (attr->__reserved_1 || attr->__reserved_2)
		return -EINVAL;

	if (attr->sample_type & ~(PERF_SAMPLE_MAX-1))
+55 −0
Original line number Diff line number Diff line
perf-diff(1)
==============

NAME
----
perf-diff - Read two perf.data files and display the differential profile

SYNOPSIS
--------
[verse]
'perf diff' [oldfile] [newfile]

DESCRIPTION
-----------
This command displays the performance difference amongst two perf.data files
captured via perf record.

If no parameters are passed it will assume perf.data.old and perf.data.

OPTIONS
-------
-d::
--dsos=::
	Only consider symbols in these dsos. CSV that understands
	file://filename entries.

-C::
--comms=::
	Only consider symbols in these comms. CSV that understands
	file://filename entries.

-S::
--symbols=::
	Only consider these symbols. CSV that understands
	file://filename entries.

-s::
--sort=::
	Sort by key(s): pid, comm, dso, symbol.

-t::
--field-separator=::

	Use a special separator character and don't pad with spaces, replacing
	all occurances of this separator in symbol names (and other output)
	with a '.' character, that thus it's the only non valid separator.

-v::
--verbose::
	Be verbose, for instance, show the raw counts in addition to the
	diff.

SEE ALSO
--------
linkperf:perf-record[1]
+2 −1
Original line number Diff line number Diff line
@@ -49,8 +49,9 @@ PROBE SYNTAX
------------
Probe points are defined by following syntax.

 "FUNC[+OFFS|:RLN|%return][@SRC]|SRC:ALN [ARG ...]"
 "[EVENT=]FUNC[+OFFS|:RLN|%return][@SRC]|SRC:ALN [ARG ...]"

'EVENT' specifies the name of new event, if omitted, it will be set the name of the probed function. Currently, event group name is set as 'probe'.
'FUNC' specifies a probed function name, and it may have one of the following options; '+OFFS' is the offset from function entry address in bytes, 'RLN' is the relative-line number from function entry line, and '%return' means that it probes function return. In addition, 'SRC' specifies a source file which has that function.
It is also possible to specify a probe point by the source line number by using 'SRC:ALN' syntax, where 'SRC' is the source file path and 'ALN' is the line number.
'ARG' specifies the arguments of this probe point. You can use the name of local variable, or kprobe-tracer argument format (e.g. $retval, %ax, etc).
+4 −0
Original line number Diff line number Diff line
@@ -39,6 +39,10 @@ OPTIONS
	Only consider these symbols. CSV that understands
	file://filename entries.

-s::
--sort=::
	Sort by key(s): pid, comm, dso, symbol, parent.

-w::
--field-width=::
	Force each column width to the provided list, for large terminal
Loading