The functions osnoise_hist_main(), osnoise_top_main(),
timerlat_hist_main(), and timerlat_top_main() are lengthy and contain
duplicated code.

Refactor by consolidating the duplicate lines into the
save_trace_to_file() function.

Signed-off-by: Costa Shulyupin <costa.s...@redhat.com>
---
 tools/tracing/rtla/src/osnoise_hist.c  | 5 +----
 tools/tracing/rtla/src/osnoise_top.c   | 5 +----
 tools/tracing/rtla/src/timerlat_hist.c | 5 +----
 tools/tracing/rtla/src/timerlat_top.c  | 5 +----
 tools/tracing/rtla/src/trace.c         | 4 ++++
 5 files changed, 8 insertions(+), 16 deletions(-)

diff --git a/tools/tracing/rtla/src/osnoise_hist.c 
b/tools/tracing/rtla/src/osnoise_hist.c
index b4930b835b0a1..7c6ef67ef3e6c 100644
--- a/tools/tracing/rtla/src/osnoise_hist.c
+++ b/tools/tracing/rtla/src/osnoise_hist.c
@@ -983,10 +983,7 @@ int osnoise_hist_main(int argc, char *argv[])
 
        if (osnoise_trace_is_off(tool, record)) {
                printf("rtla osnoise hit stop tracing\n");
-               if (params->trace_output) {
-                       printf("  Saving trace to %s\n", params->trace_output);
-                       save_trace_to_file(record->trace.inst, 
params->trace_output);
-               }
+               save_trace_to_file(record->trace.inst, params->trace_output);
        }
 
 out_hist:
diff --git a/tools/tracing/rtla/src/osnoise_top.c 
b/tools/tracing/rtla/src/osnoise_top.c
index 4772677ac762c..0eeefbbbf3173 100644
--- a/tools/tracing/rtla/src/osnoise_top.c
+++ b/tools/tracing/rtla/src/osnoise_top.c
@@ -813,10 +813,7 @@ int osnoise_top_main(int argc, char **argv)
 
        if (osnoise_trace_is_off(tool, record)) {
                printf("osnoise hit stop tracing\n");
-               if (params->trace_output) {
-                       printf("  Saving trace to %s\n", params->trace_output);
-                       save_trace_to_file(record->trace.inst, 
params->trace_output);
-               }
+               save_trace_to_file(record->trace.inst, params->trace_output);
        }
 
 out_top:
diff --git a/tools/tracing/rtla/src/timerlat_hist.c 
b/tools/tracing/rtla/src/timerlat_hist.c
index 6d7d0a2d45b47..5f54b268a1033 100644
--- a/tools/tracing/rtla/src/timerlat_hist.c
+++ b/tools/tracing/rtla/src/timerlat_hist.c
@@ -1390,10 +1390,7 @@ int timerlat_hist_main(int argc, char *argv[])
                if (!params->no_aa)
                        timerlat_auto_analysis(params->stop_us, 
params->stop_total_us);
 
-               if (params->trace_output) {
-                       printf("  Saving trace to %s\n", params->trace_output);
-                       save_trace_to_file(record->trace.inst, 
params->trace_output);
-               }
+               save_trace_to_file(record->trace.inst, params->trace_output);
        }
 
 out_hist:
diff --git a/tools/tracing/rtla/src/timerlat_top.c 
b/tools/tracing/rtla/src/timerlat_top.c
index 05a9403b01d26..1e64e6216bc2e 100644
--- a/tools/tracing/rtla/src/timerlat_top.c
+++ b/tools/tracing/rtla/src/timerlat_top.c
@@ -1159,10 +1159,7 @@ int timerlat_top_main(int argc, char *argv[])
                if (!params->no_aa)
                        timerlat_auto_analysis(params->stop_us, 
params->stop_total_us);
 
-               if (params->trace_output) {
-                       printf("  Saving trace to %s\n", params->trace_output);
-                       save_trace_to_file(record->trace.inst, 
params->trace_output);
-               }
+               save_trace_to_file(record->trace.inst, params->trace_output);
        } else if (params->aa_only) {
                /*
                 * If the trace did not stop with --aa-only, at least print the
diff --git a/tools/tracing/rtla/src/trace.c b/tools/tracing/rtla/src/trace.c
index 728f5029d5335..74ed2f6208baa 100644
--- a/tools/tracing/rtla/src/trace.c
+++ b/tools/tracing/rtla/src/trace.c
@@ -75,12 +75,16 @@ int save_trace_to_file(struct tracefs_instance *inst, const 
char *filename)
        int out_fd, in_fd;
        int retval = -1;
 
+       if (!filename)
+               return 0;
+
        in_fd = tracefs_instance_file_open(inst, file, O_RDONLY);
        if (in_fd < 0) {
                err_msg("Failed to open trace file\n");
                return -1;
        }
 
+       printf("  Saving trace to %s\n", filename);
        out_fd = creat(filename, mode);
        if (out_fd < 0) {
                err_msg("Failed to create output file %s\n", filename);
-- 
2.48.1


Reply via email to