From: Jerin Jacob <jerinj@marvell.com>
Connect the internal trace interface API to Linux EAL.
Signed-off-by: Jerin Jacob <jerinj@marvell.com>
---
lib/librte_eal/common/eal_common_thread.c | 4 +++-
lib/librte_eal/linux/eal.c | 9 +++++++++
lib/librte_eal/linux/eal_thread.c | 4 ++++
3 files changed, 16 insertions(+), 1 deletion(-)
@@ -15,6 +15,8 @@
#include <rte_lcore.h>
#include <rte_memory.h>
#include <rte_log.h>
+#include <rte_trace.h>
+#include <rte_trace_point.h>
#include "eal_internal_cfg.h"
#include "eal_private.h"
@@ -165,7 +167,7 @@ static void *rte_thread_init(void *arg)
pthread_barrier_destroy(¶ms->configured);
free(params);
}
-
+ __rte_trace_mem_per_thread_alloc();
return start_routine(routine_arg);
}
@@ -58,6 +58,7 @@
#include "eal_filesystem.h"
#include "eal_hugepages.h"
#include "eal_memcfg.h"
+#include "eal_trace.h"
#include "eal_options.h"
#include "eal_vfio.h"
#include "hotplug_mp.h"
@@ -1012,6 +1013,12 @@ rte_eal_init(int argc, char **argv)
return -1;
}
+ if (eal_trace_init() < 0) {
+ rte_eal_init_alert("Cannot init trace");
+ rte_errno = EFAULT;
+ return -1;
+ }
+
if (eal_option_device_parse()) {
rte_errno = ENODEV;
rte_atomic32_clear(&run_once);
@@ -1327,6 +1334,8 @@ rte_eal_cleanup(void)
rte_memseg_walk(mark_freeable, NULL);
rte_service_finalize();
rte_mp_channel_cleanup();
+ rte_trace_save();
+ eal_trace_fini();
eal_cleanup_config(&internal_config);
return 0;
}
@@ -20,6 +20,8 @@
#include <rte_per_lcore.h>
#include <rte_eal.h>
#include <rte_lcore.h>
+#include <rte_trace.h>
+#include <rte_trace_point.h>
#include "eal_private.h"
#include "eal_thread.h"
@@ -124,6 +126,8 @@ eal_thread_loop(__rte_unused void *arg)
RTE_LOG(DEBUG, EAL, "lcore %u is ready (tid=%zx;cpuset=[%s%s])\n",
lcore_id, (uintptr_t)thread_id, cpuset, ret == 0 ? "" : "...");
+ __rte_trace_mem_per_thread_alloc();
+
/* read on our pipe to get commands */
while (1) {
void *fct_arg;