Merge branch 'perf/urgent' into perf/core
Conflicts: tools/perf/Makefile Merge reason: resolve the conflict. Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Коммит
22a4e4c435
|
@ -128,7 +128,6 @@ _GLOBAL(__restore_cpu_power7)
|
|||
/* place holder */
|
||||
blr
|
||||
|
||||
#ifdef CONFIG_EVENT_TRACING
|
||||
/*
|
||||
* Get a minimal set of registers for our caller's nth caller.
|
||||
* r3 = regs pointer, r5 = n.
|
||||
|
@ -154,4 +153,3 @@ _GLOBAL(perf_arch_fetch_caller_regs)
|
|||
PPC_STL r4,_NIP-STACK_FRAME_OVERHEAD(r3)
|
||||
PPC_STL r7,_LINK-STACK_FRAME_OVERHEAD(r3)
|
||||
blr
|
||||
#endif /* CONFIG_EVENT_TRACING */
|
||||
|
|
|
@ -2788,12 +2788,11 @@ __weak struct perf_callchain_entry *perf_callchain(struct pt_regs *regs)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_EVENT_TRACING
|
||||
__weak
|
||||
void perf_arch_fetch_caller_regs(struct pt_regs *regs, unsigned long ip, int skip)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Output
|
||||
|
|
|
@ -210,7 +210,7 @@ endif
|
|||
|
||||
CFLAGS = -ggdb3 -Wall -Wextra -std=gnu99 -Werror $(CFLAGS_OPTIMIZE) -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
|
||||
EXTLIBS = -lpthread -lrt -lelf -lm
|
||||
ALL_CFLAGS = $(CFLAGS)
|
||||
ALL_CFLAGS = $(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
|
||||
ALL_LDFLAGS = $(LDFLAGS)
|
||||
STRIP ?= strip
|
||||
|
||||
|
@ -505,19 +505,19 @@ ifneq ($(OUTPUT),)
|
|||
BASIC_CFLAGS += -I$(OUTPUT)
|
||||
endif
|
||||
|
||||
ifeq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ, 0); return (long)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y)
|
||||
ifneq ($(shell sh -c "(echo '\#include <gnu/libc-version.h>'; echo 'int main(void) { const char * version = gnu_get_libc_version(); return (long)version; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y)
|
||||
ifeq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ, 0); return (long)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y)
|
||||
ifneq ($(shell sh -c "(echo '\#include <gnu/libc-version.h>'; echo 'int main(void) { const char * version = gnu_get_libc_version(); return (long)version; }') | $(CC) -x c - $(ALL_CFLAGS) -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y)
|
||||
msg := $(error No gnu/libc-version.h found, please install glibc-dev[el]/glibc-static);
|
||||
endif
|
||||
|
||||
ifneq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ_MMAP, 0); return (long)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y)
|
||||
ifneq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ_MMAP, 0); return (long)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y)
|
||||
BASIC_CFLAGS += -DLIBELF_NO_MMAP
|
||||
endif
|
||||
else
|
||||
msg := $(error No libelf.h/libelf found, please install libelf-dev/elfutils-libelf-devel and glibc-dev[el]);
|
||||
endif
|
||||
|
||||
ifneq ($(shell sh -c "(echo '\#include <dwarf.h>'; echo '\#include <libdw.h>'; echo 'int main(void) { Dwarf *dbg; dbg = dwarf_begin(0, DWARF_C_READ); return (long)dbg; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/elfutils -ldw -lelf -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y)
|
||||
ifneq ($(shell sh -c "(echo '\#include <dwarf.h>'; echo '\#include <libdw.h>'; echo 'int main(void) { Dwarf *dbg; dbg = dwarf_begin(0, DWARF_C_READ); return (long)dbg; }') | $(CC) -x c - $(ALL_CFLAGS) -I/usr/include/elfutils -ldw -lelf -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y)
|
||||
msg := $(warning No libdw.h found or old libdw.h found, disables dwarf support. Please install elfutils-devel/elfutils-dev);
|
||||
else
|
||||
ifndef NO_DWARF
|
||||
|
|
|
@ -208,7 +208,7 @@ static void python_process_event(int cpu, void *data,
|
|||
int size __unused,
|
||||
unsigned long long nsecs, char *comm)
|
||||
{
|
||||
PyObject *handler, *retval, *context, *t;
|
||||
PyObject *handler, *retval, *context, *t, *obj;
|
||||
static char handler_name[256];
|
||||
struct format_field *field;
|
||||
unsigned long long val;
|
||||
|
@ -256,16 +256,23 @@ static void python_process_event(int cpu, void *data,
|
|||
offset &= 0xffff;
|
||||
} else
|
||||
offset = field->offset;
|
||||
PyTuple_SetItem(t, n++,
|
||||
PyString_FromString((char *)data + offset));
|
||||
obj = PyString_FromString((char *)data + offset);
|
||||
} else { /* FIELD_IS_NUMERIC */
|
||||
val = read_size(data + field->offset, field->size);
|
||||
if (field->flags & FIELD_IS_SIGNED) {
|
||||
PyTuple_SetItem(t, n++, PyInt_FromLong(val));
|
||||
if ((long long)val >= LONG_MIN &&
|
||||
(long long)val <= LONG_MAX)
|
||||
obj = PyInt_FromLong(val);
|
||||
else
|
||||
obj = PyLong_FromLongLong(val);
|
||||
} else {
|
||||
PyTuple_SetItem(t, n++, PyInt_FromLong(val));
|
||||
if (val <= LONG_MAX)
|
||||
obj = PyInt_FromLong(val);
|
||||
else
|
||||
obj = PyLong_FromUnsignedLongLong(val);
|
||||
}
|
||||
}
|
||||
PyTuple_SetItem(t, n++, obj);
|
||||
}
|
||||
|
||||
if (_PyTuple_Resize(&t, n) == -1)
|
||||
|
|
Загрузка…
Ссылка в новой задаче