@@ -81,6 +81,7 @@ include_directories(${KS_DIR}/src/
${KS_DIR}/build/src/
${JSONC_INCLUDE_DIR}
${TRACECMD_INCLUDE_DIR}
+ ${TRACECMD_PRIVATE_INCLUDE_DIR}
${TRACEFS_INCLUDE_DIR})
message("")
@@ -14,25 +14,15 @@
# MESSAGE(" Looking for trace-cmd ...")
# First search in the user provided paths.
-if (CMAKE_BUILD_TYPE MATCHES Debug)
-
- find_program(TRACECMD_EXECUTABLE NAMES trace-cmd
- PATHS $ENV{TRACE_CMD}/tracecmd/
- ${CMAKE_SOURCE_DIR}/../tracecmd/
- NO_DEFAULT_PATH)
-
-endif (CMAKE_BUILD_TYPE MATCHES Debug)
-
-if (NOT TRACECMD_EXECUTABLE)
-
- set(TRACECMD_EXECUTABLE "${_INSTALL_PREFIX}/bin/trace-cmd")
-
-endif (NOT TRACECMD_EXECUTABLE)
find_path(TRACECMD_INCLUDE_DIR NAMES trace-cmd/trace-cmd.h
PATHS $ENV{TRACE_CMD}/include/
${CMAKE_SOURCE_DIR}/../include/
NO_DEFAULT_PATH)
+find_path(TRACECMD_PRIVATE_INCLUDE_DIR NAMES private/trace-filter-hash.h
+ PATHS $ENV{TRACE_CMD}/lib/trace-cmd/include/
+ ${CMAKE_SOURCE_DIR}/../lib/trace-cmd/include/
+ NO_DEFAULT_PATH)
find_path(TRACEFS_INCLUDE_DIR NAMES tracefs/tracefs.h
PATHS $ENV{TRACE_CMD}/include/
${CMAKE_SOURCE_DIR}/../include/
@@ -53,20 +43,13 @@ find_library(TRACEEVENT_LIBRARY NAMES traceevent/libtraceevent.a
${CMAKE_SOURCE_DIR}/../lib/
NO_DEFAULT_PATH)
-# If not found, search in the default system paths. Note that if the previous
-# search was successful "find_path" will do nothing this time.
find_program(TRACECMD_EXECUTABLE NAMES trace-cmd)
-find_path(TRACECMD_INCLUDE_DIR NAMES trace-cmd/trace-cmd.h)
-find_path(TRACEFS_INCLUDE_DIR NAMES tracefs/tracefs.h)
-find_library(TRACECMD_LIBRARY NAMES trace-cmd/libtracecmd.so)
-find_library(TRACEFS_LIBRARY NAMES tracefs/libtracefs.so)
-find_library(TRACEEVENT_LIBRARY NAMES traceevent/libtraceevent.so)
-IF (TRACECMD_INCLUDE_DIR AND TRACECMD_LIBRARY)
+IF (TRACECMD_INCLUDE_DIR AND TRACECMD_PRIVATE_INCLUDE_DIR AND TRACECMD_LIBRARY)
SET(TRACECMD_FOUND TRUE)
-ENDIF (TRACECMD_INCLUDE_DIR AND TRACECMD_LIBRARY)
+ENDIF (TRACECMD_INCLUDE_DIR AND TRACECMD_PRIVATE_INCLUDE_DIR AND TRACECMD_LIBRARY)
IF (TRACECMD_FOUND)
@@ -141,10 +141,14 @@ bool kshark_open(struct kshark_context *kshark_ctx, const char *file)
kshark_free_task_list(kshark_ctx);
- handle = tracecmd_open(file);
+ handle = tracecmd_open_head(file);
if (!handle)
return false;
+ /* Read the tracing data from the file. */
+ if (tracecmd_init_data(handle) < 0)
+ return false;
+
if (pthread_mutex_init(&kshark_ctx->input_mutex, NULL) != 0) {
tracecmd_close(handle);
return false;
@@ -696,7 +700,7 @@ static ssize_t get_records(struct kshark_context *kshark_ctx,
int pid;
int cpu;
- n_cpus = tracecmd_cpus(kshark_ctx->handle);
+ n_cpus = tep_get_cpus(kshark_ctx->pevent);;
cpu_list = calloc(n_cpus, sizeof(*cpu_list));
if (!cpu_list)
return -ENOMEM;
@@ -867,7 +871,7 @@ ssize_t kshark_load_data_entries(struct kshark_context *kshark_ctx,
if (total < 0)
goto fail;
- n_cpus = tracecmd_cpus(kshark_ctx->handle);
+ n_cpus = tep_get_cpus(kshark_ctx->pevent);;
rows = calloc(total, sizeof(struct kshark_entry *));
if (!rows)
@@ -923,7 +927,7 @@ ssize_t kshark_load_data_records(struct kshark_context *kshark_ctx,
if (total < 0)
goto fail;
- n_cpus = tracecmd_cpus(kshark_ctx->handle);
+ n_cpus = tep_get_cpus(kshark_ctx->pevent);;
rows = calloc(total, sizeof(struct tep_record *));
if (!rows)
@@ -1047,7 +1051,7 @@ size_t kshark_load_data_matrix(struct kshark_context *kshark_ctx,
if (total < 0)
goto fail;
- n_cpus = tracecmd_cpus(kshark_ctx->handle);
+ n_cpus = tep_get_cpus(kshark_ctx->pevent);;
status = data_matrix_alloc(total, offset_array,
cpu_array,
@@ -26,7 +26,7 @@ extern "C" {
// trace-cmd
#include "trace-cmd/trace-cmd.h"
-#include "trace-cmd/trace-filter-hash.h"
+#include "private/trace-filter-hash.h"
#include "traceevent/event-parse.h"
#include "tracefs/tracefs.h"