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

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

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

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

 into perf/core

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

Infrastructure changes:

- Do not consider empty files as valid srclines (Milian Wolff)

- Fix wrong size in perf_record_mmap for last kernel module,
  which resulted in erroneous symbol resolution in at least s390x (Thomas Richter)

- Add missing newline to expr parser error messages (Andi Kleen)

- Fix saved values rbtree lookup in 'perf stat' (Andi Kleen)

- Add support for shell based tests in 'perf test', add a few that
  run 'perf probe', 'perf trace', using kprobes, uprobes to check
  the output of those tools and the effects on the system, checking,
  for instance, DWARF backtraces from uprobes (Arnaldo Carvalho de Melo)

Arch specific changes:

- Add ppc64le to audit uname list in the python scripting support (Naveen N. Rao)

- Update POWER9 vendor events tables (Sukadev Bhattiprolu)

- Fix module symbol adjustment for s390x (Thomas Richter)

Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parents 82119cbe 8fc375d7
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -760,7 +760,11 @@ install-tests: all install-gtk
		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
		$(INSTALL) tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
		$(INSTALL) tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'; \
		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
		$(INSTALL) tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'
		$(INSTALL) tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'; \
		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
		$(INSTALL) tests/shell/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell'; \
		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'; \
		$(INSTALL) tests/shell/lib/*.sh '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/shell/lib'


install-bin: install-tools install-tests install-traceevent-plugins
install-bin: install-tools install-tests install-traceevent-plugins


+7 −0
Original line number Original line Diff line number Diff line
@@ -19,4 +19,11 @@ bool elf__needs_adjust_symbols(GElf_Ehdr ehdr)
	return ehdr.e_type == ET_REL || ehdr.e_type == ET_DYN;
	return ehdr.e_type == ET_REL || ehdr.e_type == ET_DYN;
}
}


void arch__adjust_sym_map_offset(GElf_Sym *sym,
				 GElf_Shdr *shdr __maybe_unused,
				 struct map *map)
{
	if (map->type == MAP__FUNCTION)
		sym->st_value += map->start;
}
#endif
#endif
+7 −4
Original line number Original line Diff line number Diff line
#ifndef ARCH_TESTS_H
#ifndef ARCH_TESTS_H
#define ARCH_TESTS_H
#define ARCH_TESTS_H


#include <linux/compiler.h>
struct test;

/* Tests */
/* Tests */
int test__rdpmc(int subtest);
int test__rdpmc(struct test *test __maybe_unused, int subtest);
int test__perf_time_to_tsc(int subtest);
int test__perf_time_to_tsc(struct test *test __maybe_unused, int subtest);
int test__insn_x86(int subtest);
int test__insn_x86(struct test *test __maybe_unused, int subtest);
int test__intel_cqm_count_nmi_context(int subtest);
int test__intel_cqm_count_nmi_context(struct test *test __maybe_unused, int subtest);


#ifdef HAVE_DWARF_UNWIND_SUPPORT
#ifdef HAVE_DWARF_UNWIND_SUPPORT
struct thread;
struct thread;
+1 −1
Original line number Original line Diff line number Diff line
@@ -171,7 +171,7 @@ static int test_data_set(struct test_data *dat_set, int x86_64)
 * verbose (-v) option to see all the instructions and whether or not they
 * verbose (-v) option to see all the instructions and whether or not they
 * decoded successfuly.
 * decoded successfuly.
 */
 */
int test__insn_x86(int subtest __maybe_unused)
int test__insn_x86(struct test *test __maybe_unused, int subtest __maybe_unused)
{
{
	int ret = 0;
	int ret = 0;


+1 −1
Original line number Original line Diff line number Diff line
@@ -36,7 +36,7 @@ static pid_t spawn(void)
 * the last read counter value to avoid triggering a WARN_ON_ONCE() in
 * the last read counter value to avoid triggering a WARN_ON_ONCE() in
 * smp_call_function_many() caused by sending IPIs from NMI context.
 * smp_call_function_many() caused by sending IPIs from NMI context.
 */
 */
int test__intel_cqm_count_nmi_context(int subtest __maybe_unused)
int test__intel_cqm_count_nmi_context(struct test *test __maybe_unused, int subtest __maybe_unused)
{
{
	struct perf_evlist *evlist = NULL;
	struct perf_evlist *evlist = NULL;
	struct perf_evsel *evsel = NULL;
	struct perf_evsel *evsel = NULL;
Loading