Skip to content

Commit

Permalink
trace: move qemu_trace_opts to trace/control.c
Browse files Browse the repository at this point in the history
The patch also creates trace_opt_parse() helper in trace/control.c to reuse
this code in next patches for qemu-nbd and qemu-io.

The patch also makes trace_init_events() static, as this call is not used
outside the module anymore.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 1466174654-30130-4-git-send-email-den@openvz.org
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
  • Loading branch information
dlunev authored and stefanhaRH committed Jun 28, 2016
1 parent eeb2b8f commit e9e0bb2
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 48 deletions.
42 changes: 41 additions & 1 deletion trace/control.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,33 @@
#endif
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "qemu/config-file.h"
#include "monitor/monitor.h"

int trace_events_enabled_count;
bool trace_events_dstate[TRACE_EVENT_COUNT];

QemuOptsList qemu_trace_opts = {
.name = "trace",
.implied_opt_name = "enable",
.head = QTAILQ_HEAD_INITIALIZER(qemu_trace_opts.head),
.desc = {
{
.name = "enable",
.type = QEMU_OPT_STRING,
},
{
.name = "events",
.type = QEMU_OPT_STRING,
},{
.name = "file",
.type = QEMU_OPT_STRING,
},
{ /* end of list */ }
},
};


TraceEvent *trace_event_name(const char *name)
{
assert(name != NULL);
Expand Down Expand Up @@ -142,7 +164,7 @@ void trace_enable_events(const char *line_buf)
}
}

void trace_init_events(const char *fname)
static void trace_init_events(const char *fname)
{
Location loc;
FILE *fp;
Expand Down Expand Up @@ -217,3 +239,21 @@ bool trace_init_backends(void)

return true;
}

char *trace_opt_parse(const char *optarg)
{
char *trace_file;
QemuOpts *opts = qemu_opts_parse_noisily(qemu_find_opts("trace"),
optarg, true);
if (!opts) {
exit(1);
}
if (qemu_opt_get(opts, "enable")) {
trace_enable_events(qemu_opt_get(opts, "enable"));
}
trace_init_events(qemu_opt_get(opts, "events"));
trace_file = g_strdup(qemu_opt_get(opts, "file"));
qemu_opts_del(opts);

return trace_file;
}
25 changes: 14 additions & 11 deletions trace/control.h
Original file line number Diff line number Diff line change
Expand Up @@ -159,17 +159,6 @@ static void trace_event_set_state_dynamic(TraceEvent *ev, bool state);
*/
bool trace_init_backends(void);

/**
* trace_init_events:
* @events: Name of file with events to be enabled at startup; may be NULL.
* Corresponds to commandline option "-trace events=...".
*
* Read the list of enabled tracing events.
*
* Returns: Whether the backends could be successfully initialized.
*/
void trace_init_events(const char *file);

/**
* trace_init_file:
* @file: Name of trace output file; may be NULL.
Expand Down Expand Up @@ -197,6 +186,20 @@ void trace_list_events(void);
*/
void trace_enable_events(const char *line_buf);

/**
* Definition of QEMU options describing trace subsystem configuration
*/
extern QemuOptsList qemu_trace_opts;

/**
* trace_opt_parse:
* @optarg: A string argument of --trace command line argument
*
* Initialize tracing subsystem.
*
* Returns the filename to save trace to. It must be freed with g_free().
*/
char *trace_opt_parse(const char *optarg);

#include "trace/control-internal.h"

Expand Down
38 changes: 2 additions & 36 deletions vl.c
Original file line number Diff line number Diff line change
Expand Up @@ -262,26 +262,6 @@ static QemuOptsList qemu_sandbox_opts = {
},
};

static QemuOptsList qemu_trace_opts = {
.name = "trace",
.implied_opt_name = "enable",
.head = QTAILQ_HEAD_INITIALIZER(qemu_trace_opts.head),
.desc = {
{
.name = "enable",
.type = QEMU_OPT_STRING,
},
{
.name = "events",
.type = QEMU_OPT_STRING,
},{
.name = "file",
.type = QEMU_OPT_STRING,
},
{ /* end of list */ }
},
};

static QemuOptsList qemu_option_rom_opts = {
.name = "option-rom",
.implied_opt_name = "romfile",
Expand Down Expand Up @@ -3864,23 +3844,9 @@ int main(int argc, char **argv, char **envp)
xen_mode = XEN_ATTACH;
break;
case QEMU_OPTION_trace:
{
opts = qemu_opts_parse_noisily(qemu_find_opts("trace"),
optarg, true);
if (!opts) {
exit(1);
}
if (qemu_opt_get(opts, "enable")) {
trace_enable_events(qemu_opt_get(opts, "enable"));
}
trace_init_events(qemu_opt_get(opts, "events"));
if (trace_file) {
g_free(trace_file);
}
trace_file = g_strdup(qemu_opt_get(opts, "file"));
qemu_opts_del(opts);
g_free(trace_file);
trace_file = trace_opt_parse(optarg);
break;
}
case QEMU_OPTION_readconfig:
{
int ret = qemu_read_config_file(optarg);
Expand Down

0 comments on commit e9e0bb2

Please sign in to comment.