perf tools: Integrating the CoreSight decoding library
The Open CoreSight Decoding Library (openCSD) is a free and open library to decode traces collected by the CoreSight hardware infrastructure. This patch adds the required mechanic to recognise the presence of the openCSD library on a system and set up miscellaneous flags to be used in the compilation of the trace decoding feature. Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Kim Phillips <kim.phillips@arm.com> Cc: linux-arm-kernel@lists.infradead.org Cc: Mike Leach <mike.leach@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Suzuki Poulouse <suzuki.poulose@arm.com> Link: http://lkml.kernel.org/r/1516211539-5166-2-git-send-email-mathieu.poirier@linaro.org Link: http://lkml.kernel.org/r/1516635644-24819-1-git-send-email-mathieu.poirier@linaro.org [ Merged missing test-libopencsd.c file, provided later by Mathieu ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
5b50758c4b
commit
aa6292f484
|
@ -66,7 +66,8 @@ FEATURE_TESTS_BASIC := \
|
||||||
bpf \
|
bpf \
|
||||||
sched_getcpu \
|
sched_getcpu \
|
||||||
sdt \
|
sdt \
|
||||||
setns
|
setns \
|
||||||
|
libopencsd
|
||||||
|
|
||||||
# FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
|
# FEATURE_TESTS_BASIC + FEATURE_TESTS_EXTRA is the complete list
|
||||||
# of all feature tests
|
# of all feature tests
|
||||||
|
|
|
@ -52,7 +52,8 @@ FILES= \
|
||||||
test-cxx.bin \
|
test-cxx.bin \
|
||||||
test-jvmti.bin \
|
test-jvmti.bin \
|
||||||
test-sched_getcpu.bin \
|
test-sched_getcpu.bin \
|
||||||
test-setns.bin
|
test-setns.bin \
|
||||||
|
test-libopencsd.bin
|
||||||
|
|
||||||
FILES := $(addprefix $(OUTPUT),$(FILES))
|
FILES := $(addprefix $(OUTPUT),$(FILES))
|
||||||
|
|
||||||
|
@ -104,6 +105,10 @@ $(OUTPUT)test-sched_getcpu.bin:
|
||||||
$(OUTPUT)test-setns.bin:
|
$(OUTPUT)test-setns.bin:
|
||||||
$(BUILD)
|
$(BUILD)
|
||||||
|
|
||||||
|
$(OUTPUT)test-libopencsd.bin:
|
||||||
|
$(BUILD) # -lopencsd_c_api -lopencsd provided by
|
||||||
|
# $(FEATURE_CHECK_LDFLAGS-libopencsd)
|
||||||
|
|
||||||
DWARFLIBS := -ldw
|
DWARFLIBS := -ldw
|
||||||
ifeq ($(findstring -static,${LDFLAGS}),-static)
|
ifeq ($(findstring -static,${LDFLAGS}),-static)
|
||||||
DWARFLIBS += -lelf -lebl -lz -llzma -lbz2
|
DWARFLIBS += -lelf -lebl -lz -llzma -lbz2
|
||||||
|
|
|
@ -162,6 +162,10 @@
|
||||||
# include "test-setns.c"
|
# include "test-setns.c"
|
||||||
#undef main
|
#undef main
|
||||||
|
|
||||||
|
#define main main_test_libopencsd
|
||||||
|
# include "test-libopencsd.c"
|
||||||
|
#undef main
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
main_test_libpython();
|
main_test_libpython();
|
||||||
|
@ -199,6 +203,7 @@ int main(int argc, char *argv[])
|
||||||
main_test_sched_getcpu();
|
main_test_sched_getcpu();
|
||||||
main_test_sdt();
|
main_test_sdt();
|
||||||
main_test_setns();
|
main_test_setns();
|
||||||
|
main_test_libopencsd();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
#include <opencsd/c_api/opencsd_c_api.h>
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
(void)ocsd_get_version();
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -105,6 +105,16 @@ FEATURE_CHECK_LDFLAGS-libunwind = $(LIBUNWIND_LDFLAGS) $(LIBUNWIND_LIBS)
|
||||||
FEATURE_CHECK_CFLAGS-libunwind-debug-frame = $(LIBUNWIND_CFLAGS)
|
FEATURE_CHECK_CFLAGS-libunwind-debug-frame = $(LIBUNWIND_CFLAGS)
|
||||||
FEATURE_CHECK_LDFLAGS-libunwind-debug-frame = $(LIBUNWIND_LDFLAGS) $(LIBUNWIND_LIBS)
|
FEATURE_CHECK_LDFLAGS-libunwind-debug-frame = $(LIBUNWIND_LDFLAGS) $(LIBUNWIND_LIBS)
|
||||||
|
|
||||||
|
ifdef CSINCLUDES
|
||||||
|
LIBOPENCSD_CFLAGS := -I$(CSINCLUDES)
|
||||||
|
endif
|
||||||
|
OPENCSDLIBS := -lopencsd_c_api -lopencsd
|
||||||
|
ifdef CSLIBS
|
||||||
|
LIBOPENCSD_LDFLAGS := -L$(CSLIBS)
|
||||||
|
endif
|
||||||
|
FEATURE_CHECK_CFLAGS-libopencsd := $(LIBOPENCSD_CFLAGS)
|
||||||
|
FEATURE_CHECK_LDFLAGS-libopencsd := $(LIBOPENCSD_LDFLAGS) $(OPENCSDLIBS)
|
||||||
|
|
||||||
ifeq ($(NO_PERF_REGS),0)
|
ifeq ($(NO_PERF_REGS),0)
|
||||||
CFLAGS += -DHAVE_PERF_REGS_SUPPORT
|
CFLAGS += -DHAVE_PERF_REGS_SUPPORT
|
||||||
endif
|
endif
|
||||||
|
@ -353,6 +363,21 @@ ifeq ($(feature-setns), 1)
|
||||||
$(call detected,CONFIG_SETNS)
|
$(call detected,CONFIG_SETNS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifndef NO_CORESIGHT
|
||||||
|
ifeq ($(feature-libopencsd), 1)
|
||||||
|
CFLAGS += -DHAVE_CSTRACE_SUPPORT $(LIBOPENCSD_CFLAGS)
|
||||||
|
LDFLAGS += $(LIBOPENCSD_LDFLAGS)
|
||||||
|
EXTLIBS += $(OPENCSDLIBS)
|
||||||
|
$(call detected,CONFIG_LIBOPENCSD)
|
||||||
|
ifdef CSTRACE_RAW
|
||||||
|
CFLAGS += -DCS_DEBUG_RAW
|
||||||
|
ifeq (${CSTRACE_RAW}, packed)
|
||||||
|
CFLAGS += -DCS_RAW_PACKED
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
ifndef NO_LIBELF
|
ifndef NO_LIBELF
|
||||||
CFLAGS += -DHAVE_LIBELF_SUPPORT
|
CFLAGS += -DHAVE_LIBELF_SUPPORT
|
||||||
EXTLIBS += -lelf
|
EXTLIBS += -lelf
|
||||||
|
|
|
@ -98,6 +98,8 @@ include ../scripts/utilities.mak
|
||||||
# When selected, pass LLVM_CONFIG=/path/to/llvm-config to `make' if
|
# When selected, pass LLVM_CONFIG=/path/to/llvm-config to `make' if
|
||||||
# llvm-config is not in $PATH.
|
# llvm-config is not in $PATH.
|
||||||
|
|
||||||
|
# Define NO_CORESIGHT if you do not want support for CoreSight trace decoding.
|
||||||
|
|
||||||
# As per kernel Makefile, avoid funny character set dependencies
|
# As per kernel Makefile, avoid funny character set dependencies
|
||||||
unexport LC_ALL
|
unexport LC_ALL
|
||||||
LC_COLLATE=C
|
LC_COLLATE=C
|
||||||
|
|
Loading…
Reference in New Issue