X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Fcommon%2Feal_trace.h;h=846677cada6ba604c0e3e0b05fd6ca4a727e5059;hb=29d985cad8dbf3920cbcbd470e6509f67ce9cd6c;hp=f8d75bbfee0beb562ba88455ca26d802483b2d5f;hpb=ffed0853e69ca830c64c913f97beb80678c05ee6;p=dpdk.git diff --git a/lib/librte_eal/common/eal_trace.h b/lib/librte_eal/common/eal_trace.h index f8d75bbfee..846677cada 100644 --- a/lib/librte_eal/common/eal_trace.h +++ b/lib/librte_eal/common/eal_trace.h @@ -6,11 +6,16 @@ #define __EAL_TRACE_H #include +#include +#include #include #include #include #include +#include "eal_private.h" +#include "eal_thread.h" + #define trace_err(fmt, args...) \ RTE_LOG(ERR, EAL, "%s():%u " fmt "\n", __func__, __LINE__, ## args) @@ -21,6 +26,8 @@ #define TRACE_DIR_STR_LEN (sizeof("YYYY-mm-dd-AM-HH-MM-SS") + TRACE_PREFIX_LEN) #define TRACE_CTF_FIELD_SIZE 384 #define TRACE_POINT_NAME_SIZE 64 +#define TRACE_CTF_MAGIC 0xC1FC1FC1 + struct trace_point { STAILQ_ENTRY(trace_point) next; @@ -29,6 +36,16 @@ struct trace_point { char ctf_field[TRACE_CTF_FIELD_SIZE]; }; +enum trace_area_e { + TRACE_AREA_HEAP, + TRACE_AREA_HUGEPAGE, +}; + +struct thread_mem_meta { + void *mem; + enum trace_area_e area; +}; + struct trace { char dir[PATH_MAX]; int dir_offset; @@ -38,6 +55,8 @@ struct trace { rte_uuid_t uuid; uint32_t buff_len; uint32_t nb_trace_points; + uint32_t nb_trace_mem_list; + struct thread_mem_meta *lcore_meta; uint64_t epoch_sec; uint64_t epoch_nsec; uint64_t uptime_ticks; @@ -57,6 +76,12 @@ trace_id_get(rte_trace_point_t *trace) __RTE_TRACE_FIELD_ID_SHIFT; } +static inline size_t +trace_mem_sz(uint32_t len) +{ + return len + sizeof(struct __rte_trace_header); +} + /* Trace object functions */ struct trace *trace_obj_get(void); @@ -65,12 +90,15 @@ STAILQ_HEAD(trace_point_head, trace_point); struct trace_point_head *trace_list_head_get(void); /* Util functions */ +const char *trace_mode_to_string(enum rte_trace_mode mode); +const char *trace_area_to_string(enum trace_area_e area); bool trace_has_duplicate_entry(void); void trace_uuid_generate(void); int trace_metadata_create(void); void trace_metadata_destroy(void); int trace_mkdir(void); int trace_epoch_time_save(void); +void trace_mem_per_thread_free(void); /* EAL interface */ int eal_trace_init(void);