From 95b0515c30b451c8d71bfdee2faad2d44a47bae4 Mon Sep 17 00:00:00 2001 From: yinshengkai Date: Fri, 11 Aug 2023 10:38:50 +0800 Subject: [PATCH] trace: unify ftrace and atrace output formats Signed-off-by: yinshengkai --- system/trace/trace.c | 14 +---------- system/trace/trace.h | 12 +--------- system/trace/trace_dump.c | 50 ++++++++++----------------------------- 3 files changed, 14 insertions(+), 62 deletions(-) diff --git a/system/trace/trace.c b/system/trace/trace.c index bdcb9c36f..141611e91 100644 --- a/system/trace/trace.c +++ b/system/trace/trace.c @@ -142,23 +142,11 @@ static int trace_cmd_start(int index, int argc, FAR char **argv, static int trace_cmd_dump(int index, int argc, FAR char **argv, int notectlfd) { - trace_dump_t type = TRACE_TYPE_LTTNG_KERNEL; FAR FILE *out = stdout; bool changed = false; bool cont = false; int ret; - /* Usage: trace dump [-a] "Custom Format : Android SysTrace" */ - - if (index < argc) - { - if (strcmp(argv[index], "-a") == 0) - { - index++; - type = TRACE_TYPE_ANDROID; - } - } - /* Usage: trace dump [-c][] */ if (index < argc) @@ -205,7 +193,7 @@ static int trace_cmd_dump(int index, int argc, FAR char **argv, /* Dump the trace data */ - ret = trace_dump(type, out); + ret = trace_dump(out); if (changed) { diff --git a/system/trace/trace.h b/system/trace/trace.h index 5d445c9ab..c71df4cb4 100644 --- a/system/trace/trace.h +++ b/system/trace/trace.h @@ -41,16 +41,6 @@ extern "C" * Public Types ****************************************************************************/ -typedef enum -{ - TRACE_TYPE_LTTNG_KERNEL = 0, /* Common Trace Format : Linux Kernel Trace */ - TRACE_TYPE_GENERIC_CTF = 1, /* Common Trace Format : Generic CTF Trace */ - TRACE_TYPE_LTTNG_UST = 2, /* Common Trace Format : LTTng UST Trace */ - TRACE_TYPE_CUSTOM_TEXT = 3, /* Custom Text : TmfGeneric */ - TRACE_TYPE_CUSTOM_XML = 4, /* Custom XML : Custom XML Log */ - TRACE_TYPE_ANDROID = 5, /* Custom Format : Android ATrace */ -} trace_dump_t; - /**************************************************************************** * Public Function Prototypes ****************************************************************************/ @@ -65,7 +55,7 @@ typedef enum * ****************************************************************************/ -int trace_dump(trace_dump_t type, FAR FILE *out); +int trace_dump(FAR FILE *out); /**************************************************************************** * Name: trace_dump_clear diff --git a/system/trace/trace_dump.c b/system/trace/trace_dump.c index 475a3d2eb..e5a98dbd2 100644 --- a/system/trace/trace_dump.c +++ b/system/trace/trace_dump.c @@ -356,7 +356,7 @@ static void trace_dump_sched_switch(FAR FILE *out, * Name: trace_dump_one ****************************************************************************/ -static int trace_dump_one(trace_dump_t type, FAR FILE *out, FAR uint8_t *p, +static int trace_dump_one(FAR FILE *out, FAR uint8_t *p, FAR struct trace_dump_context_s *ctx) { FAR struct note_common_s *note = (FAR struct note_common_s *)p; @@ -494,16 +494,8 @@ static int trace_dump_one(trace_dump_t type, FAR FILE *out, FAR uint8_t *p, } trace_dump_header(out, note, ctx); - if (type == TRACE_TYPE_ANDROID) - { - fprintf(out, "tracing_mark_write: B|%d|sys_%s(", - pid, g_funcnames[nsc->nsc_nr - CONFIG_SYS_RESERVED]); - } - else - { - fprintf(out, "sys_%s(", - g_funcnames[nsc->nsc_nr - CONFIG_SYS_RESERVED]); - } + fprintf(out, "sys_%s(", + g_funcnames[nsc->nsc_nr - CONFIG_SYS_RESERVED]); for (i = j = 0; i < nsc->nsc_argc; i++) { @@ -560,20 +552,9 @@ static int trace_dump_one(trace_dump_t type, FAR FILE *out, FAR uint8_t *p, trace_dump_header(out, note, ctx); trace_dump_unflatten(&result, nsc->nsc_result, sizeof(result)); - - if (type == TRACE_TYPE_ANDROID) - { - fprintf(out, "tracing_mark_write: E|%d|" - "sys_%s -> 0x%" PRIxPTR "\n", pid, - g_funcnames[nsc->nsc_nr - CONFIG_SYS_RESERVED], - result); - } - else - { - fprintf(out, "sys_%s -> 0x%" PRIxPTR "\n", - g_funcnames[nsc->nsc_nr - CONFIG_SYS_RESERVED], - result); - } + fprintf(out, "sys_%s -> 0x%" PRIxPTR "\n", + g_funcnames[nsc->nsc_nr - CONFIG_SYS_RESERVED], + result); } break; #endif @@ -626,26 +607,18 @@ static int trace_dump_one(trace_dump_t type, FAR FILE *out, FAR uint8_t *p, trace_dump_header(out, note, ctx); trace_dump_unflatten(&ip, nst->nst_ip, sizeof(ip)); - if (type == TRACE_TYPE_ANDROID && - nst->nst_data[1] == '\0' && + if (nst->nst_data[1] == '\0' && (nst->nst_data[0] == 'B' || nst->nst_data[0] == 'E')) { fprintf(out, "tracing_mark_write: %c|%d|%pS\n", nst->nst_data[0], pid, (FAR void *)ip); } - else if (type == TRACE_TYPE_ANDROID && - nst->nst_data[1] == '|' && - (nst->nst_data[0] == 'B' || - nst->nst_data[0] == 'E')) + else { fprintf(out, "tracing_mark_write: %s\n", nst->nst_data); } - else - { - fprintf(out, "%pS: %s\n", (FAR void *)ip, nst->nst_data); - } } break; @@ -662,7 +635,8 @@ static int trace_dump_one(trace_dump_t type, FAR FILE *out, FAR uint8_t *p, trace_dump_unflatten(&ip, nbi->nbi_ip, sizeof(ip)); - fprintf(out, "0x%" PRIdPTR ": event=%u count=%u", + fprintf(out, "tracing_mark_write: 0x%" PRIdPTR + ": event=%u count=%u", ip, nbi->nbi_event, count); for (i = 0; i < count; i++) { @@ -697,7 +671,7 @@ static int trace_dump_one(trace_dump_t type, FAR FILE *out, FAR uint8_t *p, * ****************************************************************************/ -int trace_dump(trace_dump_t type, FAR FILE *out) +int trace_dump(FAR FILE *out) { struct trace_dump_context_s ctx; uint8_t tracedata[UCHAR_MAX]; @@ -730,7 +704,7 @@ int trace_dump(trace_dump_t type, FAR FILE *out) p = tracedata; do { - size = trace_dump_one(type, out, p, &ctx); + size = trace_dump_one(out, p, &ctx); p += size; ret -= size; }