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

Commit add79461 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/core

perf/core improvements and fixes:

 * Improve 'perf bench' docs, by Namhyung Kim

 * Fix build when O= is not used, from David Ahern

 * Fix cross compilation build, from Namhyung Kim

 * Fix pipe mode when callchains are used, from David Ahern

 * Follow .gnu_debuglink section to find separate symbols, from Pierre-Loup A. Griffais

 * Fix 'perf test' raw events entries, from Jiri Olsa

 * Use the events description in the perf.data file, not the sysfs ones.

Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parents 357398e9 d9873ab7
Loading
Loading
Loading
Loading
+75 −3
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ SYNOPSIS

DESCRIPTION
-----------
This 'perf bench' command is general framework for benchmark suites.
This 'perf bench' command is a general framework for benchmark suites.

COMMON OPTIONS
--------------
@@ -45,14 +45,20 @@ SUBSYSTEM
'sched'::
	Scheduler and IPC mechanisms.

'mem'::
	Memory access performance.

'all'::
	All benchmark subsystems.

SUITES FOR 'sched'
~~~~~~~~~~~~~~~~~~
*messaging*::
Suite for evaluating performance of scheduler and IPC mechanisms.
Based on hackbench by Rusty Russell.

Options of *pipe*
^^^^^^^^^^^^^^^^^
Options of *messaging*
^^^^^^^^^^^^^^^^^^^^^^
-p::
--pipe::
Use pipe() instead of socketpair()
@@ -115,6 +121,72 @@ Example of *pipe*
                59004 ops/sec
---------------------

SUITES FOR 'mem'
~~~~~~~~~~~~~~~~
*memcpy*::
Suite for evaluating performance of simple memory copy in various ways.

Options of *memcpy*
^^^^^^^^^^^^^^^^^^^
-l::
--length::
Specify length of memory to copy (default: 1MB).
Available units are B, KB, MB, GB and TB (case insensitive).

-r::
--routine::
Specify routine to copy (default: default).
Available routines are depend on the architecture.
On x86-64, x86-64-unrolled, x86-64-movsq and x86-64-movsb are supported.

-i::
--iterations::
Repeat memcpy invocation this number of times.

-c::
--clock::
Use perf's cpu-cycles event instead of gettimeofday syscall.

-o::
--only-prefault::
Show only the result with page faults before memcpy.

-n::
--no-prefault::
Show only the result without page faults before memcpy.

*memset*::
Suite for evaluating performance of simple memory set in various ways.

Options of *memset*
^^^^^^^^^^^^^^^^^^^
-l::
--length::
Specify length of memory to set (default: 1MB).
Available units are B, KB, MB, GB and TB (case insensitive).

-r::
--routine::
Specify routine to set (default: default).
Available routines are depend on the architecture.
On x86-64, x86-64-unrolled, x86-64-stosq and x86-64-stosb are supported.

-i::
--iterations::
Repeat memset invocation this number of times.

-c::
--clock::
Use perf's cpu-cycles event instead of gettimeofday syscall.

-o::
--only-prefault::
Show only the result with page faults before memset.

-n::
--no-prefault::
Show only the result without page faults before memset.

SEE ALSO
--------
linkperf:perf[1]
+1 −1
Original line number Diff line number Diff line
@@ -155,7 +155,7 @@ endif

### --- END CONFIGURATION SECTION ---

BASIC_CFLAGS = -Iutil/include -Iarch/$(ARCH)/include -I$(OUTPUT)/util -I$(TRACE_EVENT_DIR) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
BASIC_CFLAGS = -Iutil/include -Iarch/$(ARCH)/include -I$(OUTPUT)util -I$(TRACE_EVENT_DIR) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
BASIC_LDFLAGS =

# Guard against environment variables
+2 −2
Original line number Diff line number Diff line
@@ -32,13 +32,13 @@ static bool no_prefault;
static const struct option options[] = {
	OPT_STRING('l', "length", &length_str, "1MB",
		    "Specify length of memory to copy. "
		    "available unit: B, MB, GB (upper and lower)"),
		    "Available units: B, KB, MB, GB and TB (upper and lower)"),
	OPT_STRING('r', "routine", &routine, "default",
		    "Specify routine to copy"),
	OPT_INTEGER('i', "iterations", &iterations,
		    "repeat memcpy() invocation this number of times"),
	OPT_BOOLEAN('c', "clock", &use_clock,
		    "Use CPU clock for measuring"),
		    "Use cycles event instead of gettimeofday() for measuring"),
	OPT_BOOLEAN('o', "only-prefault", &only_prefault,
		    "Show only the result with page faults before memcpy()"),
	OPT_BOOLEAN('n', "no-prefault", &no_prefault,
+4 −4
Original line number Diff line number Diff line
@@ -31,14 +31,14 @@ static bool no_prefault;

static const struct option options[] = {
	OPT_STRING('l', "length", &length_str, "1MB",
		    "Specify length of memory to copy. "
		    "available unit: B, MB, GB (upper and lower)"),
		    "Specify length of memory to set. "
		    "Available units: B, KB, MB, GB and TB (upper and lower)"),
	OPT_STRING('r', "routine", &routine, "default",
		    "Specify routine to copy"),
		    "Specify routine to set"),
	OPT_INTEGER('i', "iterations", &iterations,
		    "repeat memset() invocation this number of times"),
	OPT_BOOLEAN('c', "clock", &use_clock,
		    "Use CPU clock for measuring"),
		    "Use cycles event instead of gettimeofday() for measuring"),
	OPT_BOOLEAN('o', "only-prefault", &only_prefault,
		    "Show only the result with page faults before memset()"),
	OPT_BOOLEAN('n', "no-prefault", &no_prefault,
+2 −2
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ struct bench_suite {
};
						\
/* sentinel: easy for help */
#define suite_all { "all", "test all suite (pseudo suite)", NULL }
#define suite_all { "all", "Test all benchmark suites", NULL }

static struct bench_suite sched_suites[] = {
	{ "messaging",
@@ -75,7 +75,7 @@ static struct bench_subsys subsystems[] = {
	  "memory access performance",
	  mem_suites },
	{ "all",		/* sentinel: easy for help */
	  "test all subsystem (pseudo subsystem)",
	  "all benchmark subsystem",
	  NULL },
	{ NULL,
	  NULL,
Loading