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

Commit 9ab975a0 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

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

Merge tag 'perf-core-for-mingo-20160511' 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:

User visible changes:

- Fix symbol insertion and callchain behavior in db-export (Chris Phlipot)

Infrastructure changes:

- Add libunwind build test (feature query), working towards supporting
  cross-platform DWARF callchains, starting with arm/arm64 (He Kuang)

- Use lsdir() more extensively (Masami Hiramatsu)

- Use SBUILD_ID_SIZE in places where the equivalent expression was
  being used (Masami Hiramatsu)

- Split some more 'perf trace' syscall arg beautifiers (Arnaldo Carvalho de Melo)

Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parents 38f5d8b3 d65444d2
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -49,6 +49,10 @@ FEATURE_TESTS_BASIC := \
	libslang			\
	libcrypto			\
	libunwind			\
	libunwind-x86			\
	libunwind-x86_64		\
	libunwind-arm			\
	libunwind-aarch64		\
	pthread-attr-setaffinity-np	\
	stackprotector-all		\
	timerfd				\
@@ -69,7 +73,9 @@ FEATURE_TESTS_EXTRA := \
	libbabeltrace			\
	liberty				\
	liberty-z			\
	libunwind-debug-frame
	libunwind-debug-frame		\
	libunwind-debug-frame-arm	\
	libunwind-debug-frame-aarch64

FEATURE_TESTS ?= $(FEATURE_TESTS_BASIC)

+23 −0
Original line number Diff line number Diff line
@@ -27,6 +27,12 @@ FILES= \
	test-libcrypto.bin		\
	test-libunwind.bin		\
	test-libunwind-debug-frame.bin	\
	test-libunwind-x86.bin		\
	test-libunwind-x86_64.bin	\
	test-libunwind-arm.bin		\
	test-libunwind-aarch64.bin	\
	test-libunwind-debug-frame-arm.bin	\
	test-libunwind-debug-frame-aarch64.bin	\
	test-pthread-attr-setaffinity-np.bin	\
	test-stackprotector-all.bin	\
	test-timerfd.bin		\
@@ -103,6 +109,23 @@ $(OUTPUT)test-libunwind.bin:

$(OUTPUT)test-libunwind-debug-frame.bin:
	$(BUILD) -lelf
$(OUTPUT)test-libunwind-x86.bin:
	$(BUILD) -lelf -lunwind-x86

$(OUTPUT)test-libunwind-x86_64.bin:
	$(BUILD) -lelf -lunwind-x86_64

$(OUTPUT)test-libunwind-arm.bin:
	$(BUILD) -lelf -lunwind-arm

$(OUTPUT)test-libunwind-aarch64.bin:
	$(BUILD) -lelf -lunwind-aarch64

$(OUTPUT)test-libunwind-debug-frame-arm.bin:
	$(BUILD) -lelf -lunwind-arm

$(OUTPUT)test-libunwind-debug-frame-aarch64.bin:
	$(BUILD) -lelf -lunwind-aarch64

$(OUTPUT)test-libaudit.bin:
	$(BUILD) -laudit
+26 −0
Original line number Diff line number Diff line
#include <libunwind-aarch64.h>
#include <stdlib.h>

extern int UNW_OBJ(dwarf_search_unwind_table) (unw_addr_space_t as,
					       unw_word_t ip,
					       unw_dyn_info_t *di,
					       unw_proc_info_t *pi,
					       int need_unwind_info, void *arg);

#define dwarf_search_unwind_table UNW_OBJ(dwarf_search_unwind_table)

static unw_accessors_t accessors;

int main(void)
{
	unw_addr_space_t addr_space;

	addr_space = unw_create_addr_space(&accessors, 0);
	if (addr_space)
		return 0;

	unw_init_remote(NULL, addr_space, NULL);
	dwarf_search_unwind_table(addr_space, 0, NULL, NULL, 0, NULL);

	return 0;
}
+27 −0
Original line number Diff line number Diff line
#include <libunwind-arm.h>
#include <stdlib.h>

extern int UNW_OBJ(dwarf_search_unwind_table) (unw_addr_space_t as,
					       unw_word_t ip,
					       unw_dyn_info_t *di,
					       unw_proc_info_t *pi,
					       int need_unwind_info, void *arg);


#define dwarf_search_unwind_table UNW_OBJ(dwarf_search_unwind_table)

static unw_accessors_t accessors;

int main(void)
{
	unw_addr_space_t addr_space;

	addr_space = unw_create_addr_space(&accessors, 0);
	if (addr_space)
		return 0;

	unw_init_remote(NULL, addr_space, NULL);
	dwarf_search_unwind_table(addr_space, 0, NULL, NULL, 0, NULL);

	return 0;
}
+16 −0
Original line number Diff line number Diff line
#include <libunwind-aarch64.h>
#include <stdlib.h>

extern int
UNW_OBJ(dwarf_find_debug_frame) (int found, unw_dyn_info_t *di_debug,
				 unw_word_t ip, unw_word_t segbase,
				 const char *obj_name, unw_word_t start,
				 unw_word_t end);

#define dwarf_find_debug_frame UNW_OBJ(dwarf_find_debug_frame)

int main(void)
{
	dwarf_find_debug_frame(0, NULL, 0, 0, NULL, 0, 0);
	return 0;
}
Loading