Commit 41fc57e4 authored by Paolo Bonzini's avatar Paolo Bonzini Committed by Stefan Hajnoczi
Browse files

trace: split trace_init_file out of trace_init_backends



This is cleaner, and improves error reporting with -daemonize.

Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Signed-off-by: default avatarDenis V. Lunev <den@openvz.org>
Acked-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
Message-id: 1452174932-28657-4-git-send-email-den@openvz.org
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent 45bd0b41
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -435,7 +435,7 @@ int main(int argc, char **argv)
            }
            break;
        case 'T':
            if (!trace_init_backends(optarg)) {
            if (!trace_init_backends()) {
                exit(1); /* error message will have been printed */
            }
            break;
+12 −5
Original line number Diff line number Diff line
@@ -145,17 +145,24 @@ void trace_init_events(const char *fname)
    loc_pop(&loc);
}

bool trace_init_backends(const char *file)
void trace_init_file(const char *file)
{
#ifdef CONFIG_TRACE_SIMPLE
    if (!st_init(file)) {
        fprintf(stderr, "failed to initialize simple tracing backend.\n");
        return false;
    }
    st_set_trace_file(file);
#else
    if (file) {
        fprintf(stderr, "error: -trace file=...: "
                "option not supported by the selected tracing backends\n");
        exit(1);
    }
#endif
}

bool trace_init_backends(void)
{
#ifdef CONFIG_TRACE_SIMPLE
    if (!st_init()) {
        fprintf(stderr, "failed to initialize simple tracing backend.\n");
        return false;
    }
#endif
+12 −1
Original line number Diff line number Diff line
@@ -157,7 +157,7 @@ static void trace_event_set_state_dynamic(TraceEvent *ev, bool state);
 *
 * Returns: Whether the backends could be successfully initialized.
 */
bool trace_init_backends(const char *file);
bool trace_init_backends(void);

/**
 * trace_init_events:
@@ -170,6 +170,17 @@ bool trace_init_backends(const char *file);
 */
void trace_init_events(const char *file);

/**
 * trace_init_file:
 * @file:   Name of trace output file; may be NULL.
 *          Corresponds to commandline option "-trace file=...".
 *
 * Record the name of the output file for the tracing backend.
 * Exits if no selected backend does not support specifying the
 * output file, and a non-NULL file was passed.
 */
void trace_init_file(const char *file);


#include "trace/control-internal.h"

+2 −4
Original line number Diff line number Diff line
@@ -322,7 +322,7 @@ void st_set_trace_file_enabled(bool enable)
 * @file        The trace file name or NULL for the default name-<pid> set at
 *              config time
 */
bool st_set_trace_file(const char *file)
void st_set_trace_file(const char *file)
{
    st_set_trace_file_enabled(false);

@@ -336,7 +336,6 @@ bool st_set_trace_file(const char *file)
    }

    st_set_trace_file_enabled(true);
    return true;
}

void st_print_trace_file_status(FILE *stream, int (*stream_printf)(FILE *stream, const char *fmt, ...))
@@ -374,7 +373,7 @@ static GThread *trace_thread_create(GThreadFunc fn)
    return thread;
}

bool st_init(const char *file)
bool st_init(void)
{
    GThread *thread;

@@ -387,6 +386,5 @@ bool st_init(const char *file)
    }

    atexit(st_flush_trace_buffer);
    st_set_trace_file(file);
    return true;
}
+2 −2
Original line number Diff line number Diff line
@@ -20,8 +20,8 @@

void st_print_trace_file_status(FILE *stream, fprintf_function stream_printf);
void st_set_trace_file_enabled(bool enable);
bool st_set_trace_file(const char *file);
bool st_init(const char *file);
void st_set_trace_file(const char *file);
bool st_init(void);
void st_flush_trace_buffer(void);

typedef struct {
Loading