Messages in this thread Patch in this message |  | | From | Jiri Olsa <> | Subject | [PATCH 25/29] perf tools: Add udis86 disassembler feature check | Date | Thu, 28 Nov 2013 12:33:24 +0100 |
| |
Adding udis86 disassembler feature check which support is needed for kvm:kvm_emulate_insn tracepoint.
The diff of 'perf script' output generated by old and new code: (data was generated by 'perf record -e kvm:kvm_emulate_insn -a')
--- script.kvm.old +++ script.kvm.new - qemu-system-x86 15519 [003] 5332.470049: kvm:kvm_emulate_insn: 0:ffffffff8103c596:89 b7 00 80 5f ff (prot64) + qemu-system-x86 15519 [003] 5332.470049: kvm:kvm_emulate_insn: 0:ffffffff8103c596: mov %esi, -0xa08000(%rdi)
Signed-off-by: Jiri Olsa <jolsa@redhat.com> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: David Ahern <dsahern@gmail.com> --- tools/perf/Makefile.perf | 2 +- tools/perf/config/Makefile | 8 ++++++++ tools/perf/config/feature-checks/Makefile | 6 +++++- tools/perf/config/feature-checks/test-all.c | 5 +++++ tools/perf/config/feature-checks/test-udis86.c | 11 +++++++++++ 5 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 tools/perf/config/feature-checks/test-udis86.c
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index abc7ac3..4c894f4d 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf @@ -711,7 +711,7 @@ $(LIB_FILE): $(LIB_OBJS) TE_SOURCES = $(wildcard $(TRACE_EVENT_DIR)*.[ch]) LIBTRACEEVENT_FLAGS = $(QUIET_SUBDIR1) O=$(OUTPUT) -LIBTRACEEVENT_FLAGS += CFLAGS="-g -Wall $(EXTRA_CFLAGS)" +LIBTRACEEVENT_FLAGS += CFLAGS="-g -Wall $(EXTRA_CFLAGS) $(LIBTRACEEVENT_CFLAGS)" LIBTRACEEVENT_FLAGS += plugin_dir=$(plugindir_SQ) $(LIBTRACEEVENT): $(TE_SOURCES) $(OUTPUT)PERF-CFLAGS diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile index b7756f0..021c438 100644 --- a/tools/perf/config/Makefile +++ b/tools/perf/config/Makefile @@ -417,6 +417,14 @@ else msg := $(warning No timerfd support. Disables 'perf kvm stat live'); endif +$(call feature_check,udis86) +ifeq ($(feature-udis86), 1) + LIBTRACEEVENT_CFLAGS += -DHAVE_UDIS86 + EXTLIBS += -ludis86 +else + msg := $(warning No udis86 support.); +endif + disable-python = $(eval $(disable-python_code)) define disable-python_code CFLAGS += -DNO_LIBPYTHON diff --git a/tools/perf/config/feature-checks/Makefile b/tools/perf/config/feature-checks/Makefile index fc78699..ed68814 100644 --- a/tools/perf/config/feature-checks/Makefile +++ b/tools/perf/config/feature-checks/Makefile @@ -26,7 +26,8 @@ FILES= \ test-libunwind-debug-frame \ test-on-exit \ test-stackprotector-all \ - test-timerfd + test-timerfd \ + test-udis86 CC := $(CC) -MD @@ -140,6 +141,9 @@ test-backtrace: test-timerfd: $(BUILD) +test-udis86: + $(BUILD) -DHAVE_UDIS86 -ludis86 + -include *.d ############################### diff --git a/tools/perf/config/feature-checks/test-all.c b/tools/perf/config/feature-checks/test-all.c index 9b8a544..df087a5 100644 --- a/tools/perf/config/feature-checks/test-all.c +++ b/tools/perf/config/feature-checks/test-all.c @@ -89,6 +89,10 @@ # include "test-stackprotector-all.c" #undef main +#define main main_test_udis86 +# include "test-udis86.c" +#undef main + int main(int argc, char *argv[]) { main_test_libpython(); @@ -111,6 +115,7 @@ int main(int argc, char *argv[]) main_test_libnuma(); main_test_timerfd(); main_test_stackprotector_all(); + main_test_udis86(); return 0; } diff --git a/tools/perf/config/feature-checks/test-udis86.c b/tools/perf/config/feature-checks/test-udis86.c new file mode 100644 index 0000000..dbc2c26 --- /dev/null +++ b/tools/perf/config/feature-checks/test-udis86.c @@ -0,0 +1,11 @@ + +/* + * test for udis86 functions used by plugin_kvm.c + */ + +#include <udis86.h> + +int main(void) +{ + return puts("hi"); +} -- 1.8.3.1
|  |