* [Qemu-devel] [PATCH v2 0/3] trace: enable tracing in qemu-io/qemu-nbd
@ 2016-05-31 8:58 Denis V. Lunev
2016-05-31 8:58 ` [Qemu-devel] [PATCH 1/3] trace: move qemu_trace_opts to trace/control.c Denis V. Lunev
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Denis V. Lunev @ 2016-05-31 8:58 UTC (permalink / raw)
To: qemu-devel; +Cc: den, Eric Blake, Paolo Bonzini, Stefan Hajnoczi, Kevin Wolf
Actually this is a rework of the original patch, set as a part of write-zeroes
patchset. Moving it out to process via trace tree.
Changes from v1:
- fixed nits found by Eric
Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Eric Blake <eblake@redhat.com>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
Denis V. Lunev (3):
trace: move qemu_trace_opts to trace/control.c
trace: enable tracing in qemu-io
trace: enable tracing in qemu-nbd
qemu-io.c | 17 +++++++++++++----
qemu-nbd.c | 17 +++++++++++++++++
trace/control.c | 44 +++++++++++++++++++++++++++++++++++++++++++-
trace/control.h | 24 +++++++++++++-----------
vl.c | 37 +------------------------------------
5 files changed, 87 insertions(+), 52 deletions(-)
--
2.5.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Qemu-devel] [PATCH 1/3] trace: move qemu_trace_opts to trace/control.c
2016-05-31 8:58 [Qemu-devel] [PATCH v2 0/3] trace: enable tracing in qemu-io/qemu-nbd Denis V. Lunev
@ 2016-05-31 8:58 ` Denis V. Lunev
2016-05-31 8:58 ` [Qemu-devel] [PATCH 2/3] trace: enable tracing in qemu-io Denis V. Lunev
` (2 subsequent siblings)
3 siblings, 0 replies; 10+ messages in thread
From: Denis V. Lunev @ 2016-05-31 8:58 UTC (permalink / raw)
To: qemu-devel; +Cc: den, Paolo Bonzini, Stefan Hajnoczi, Kevin Wolf
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>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
---
trace/control.c | 44 +++++++++++++++++++++++++++++++++++++++++++-
trace/control.h | 24 +++++++++++++-----------
vl.c | 37 +------------------------------------
3 files changed, 57 insertions(+), 48 deletions(-)
diff --git a/trace/control.c b/trace/control.c
index d099f73..75fc731 100644
--- a/trace/control.c
+++ b/trace/control.c
@@ -20,11 +20,33 @@
#include "qemu/log.h"
#endif
#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);
@@ -141,7 +163,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;
@@ -216,3 +238,23 @@ 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"));
+ if (trace_file) {
+ g_free(trace_file);
+ }
+ trace_file = g_strdup(qemu_opt_get(opts, "file"));
+ qemu_opts_del(opts);
+
+ return trace_file;
+}
diff --git a/trace/control.h b/trace/control.h
index e2ba6d4..942f9f5 100644
--- a/trace/control.h
+++ b/trace/control.h
@@ -160,17 +160,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.
* Corresponds to commandline option "-trace file=...".
@@ -197,6 +186,19 @@ 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
+ * @trace_file: current filename to save traces to
+ *
+ * Initialize tracing subsystem.
+ */
+char *trace_opt_parse(const char *optarg, char *trace_file);
#include "trace/control-internal.h"
diff --git a/vl.c b/vl.c
index 18d1423..3f082ed 100644
--- a/vl.c
+++ b/vl.c
@@ -261,26 +261,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",
@@ -3869,23 +3849,8 @@ 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);
+ trace_file = trace_opt_parse(optarg, trace_file);
break;
- }
case QEMU_OPTION_readconfig:
{
int ret = qemu_read_config_file(optarg);
--
2.5.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PATCH 2/3] trace: enable tracing in qemu-io
2016-05-31 8:58 [Qemu-devel] [PATCH v2 0/3] trace: enable tracing in qemu-io/qemu-nbd Denis V. Lunev
2016-05-31 8:58 ` [Qemu-devel] [PATCH 1/3] trace: move qemu_trace_opts to trace/control.c Denis V. Lunev
@ 2016-05-31 8:58 ` Denis V. Lunev
2016-05-31 17:55 ` Eric Blake
2016-05-31 8:58 ` [Qemu-devel] [PATCH 3/3] trace: enable tracing in qemu-nbd Denis V. Lunev
2016-05-31 9:25 ` [Qemu-devel] [PATCH v2 0/3] trace: enable tracing in qemu-io/qemu-nbd Daniel P. Berrange
3 siblings, 1 reply; 10+ messages in thread
From: Denis V. Lunev @ 2016-05-31 8:58 UTC (permalink / raw)
To: qemu-devel; +Cc: den, Eric Blake, Paolo Bonzini, Stefan Hajnoczi, Kevin Wolf
Moving trace_init_backends() into trace_opt_parse() is not possible. This
should be called after daemonize() in vl.c.
Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Eric Blake <eblake@redhat.com>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
---
qemu-io.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/qemu-io.c b/qemu-io.c
index d977a6e..6b5700f 100644
--- a/qemu-io.c
+++ b/qemu-io.c
@@ -18,6 +18,7 @@
#include "qemu/option.h"
#include "qemu/config-file.h"
#include "qemu/readline.h"
+#include "qemu/log.h"
#include "qapi/qmp/qstring.h"
#include "qom/object_interfaces.h"
#include "sysemu/block-backend.h"
@@ -253,7 +254,9 @@ static void usage(const char *name)
" -k, --native-aio use kernel AIO implementation (on Linux only)\n"
" -t, --cache=MODE use the given cache mode for the image\n"
" -d, --discard=MODE use the given discard mode for the image\n"
-" -T, --trace FILE enable trace events listed in the given file\n"
+" -T, --trace [[enable=]<pattern>][,events=<file>][,file=<file>]\n"
+" specify tracing options\n"
+" see qemu(1) man page for full description\n"
" -h, --help display this help and exit\n"
" -V, --version output version information and exit\n"
"\n"
@@ -458,6 +461,7 @@ int main(int argc, char **argv)
Error *local_error = NULL;
QDict *opts = NULL;
const char *format = NULL;
+ char *trace_file = NULL;
#ifdef CONFIG_POSIX
signal(SIGPIPE, SIG_IGN);
@@ -470,6 +474,7 @@ int main(int argc, char **argv)
module_call_init(MODULE_INIT_QOM);
qemu_add_opts(&qemu_object_opts);
+ qemu_add_opts(&qemu_trace_opts);
bdrv_init();
while ((c = getopt_long(argc, argv, sopt, lopt, &opt_index)) != -1) {
@@ -509,9 +514,7 @@ int main(int argc, char **argv)
}
break;
case 'T':
- if (!trace_init_backends()) {
- exit(1); /* error message will have been printed */
- }
+ trace_file = trace_opt_parse(optarg, trace_file);
break;
case 'V':
printf("%s version %s\n", progname, QEMU_VERSION);
@@ -557,6 +560,12 @@ int main(int argc, char **argv)
exit(1);
}
+ if (!trace_init_backends()) {
+ exit(1);
+ }
+ trace_init_file(trace_file);
+ qemu_set_log(LOG_TRACE);
+
/* initialize commands */
qemuio_add_command(&quit_cmd);
qemuio_add_command(&open_cmd);
--
2.5.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PATCH 3/3] trace: enable tracing in qemu-nbd
2016-05-31 8:58 [Qemu-devel] [PATCH v2 0/3] trace: enable tracing in qemu-io/qemu-nbd Denis V. Lunev
2016-05-31 8:58 ` [Qemu-devel] [PATCH 1/3] trace: move qemu_trace_opts to trace/control.c Denis V. Lunev
2016-05-31 8:58 ` [Qemu-devel] [PATCH 2/3] trace: enable tracing in qemu-io Denis V. Lunev
@ 2016-05-31 8:58 ` Denis V. Lunev
2016-05-31 12:46 ` Eric Blake
2016-05-31 9:25 ` [Qemu-devel] [PATCH v2 0/3] trace: enable tracing in qemu-io/qemu-nbd Daniel P. Berrange
3 siblings, 1 reply; 10+ messages in thread
From: Denis V. Lunev @ 2016-05-31 8:58 UTC (permalink / raw)
To: qemu-devel; +Cc: den, Eric Blake, Paolo Bonzini, Stefan Hajnoczi, Kevin Wolf
Please note, trace_init_backends() must be called in the final process,
i.e. after daemonization. This is necessary to keep tracing thread in
the proper process.
Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Eric Blake <eblake@redhat.com>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
---
qemu-nbd.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/qemu-nbd.c b/qemu-nbd.c
index 6554f0a..d36f936 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -27,12 +27,14 @@
#include "qemu/error-report.h"
#include "qemu/config-file.h"
#include "qemu/bswap.h"
+#include "qemu/log.h"
#include "block/snapshot.h"
#include "qapi/util.h"
#include "qapi/qmp/qstring.h"
#include "qom/object_interfaces.h"
#include "io/channel-socket.h"
#include "crypto/init.h"
+#include "trace/control.h"
#include <getopt.h>
#include <libgen.h>
@@ -88,6 +90,9 @@ static void usage(const char *name)
"General purpose options:\n"
" --object type,id=ID,... define an object such as 'secret' for providing\n"
" passwords and/or encryption keys\n"
+" -T, --trace [[enable=]<pattern>][,events=<file>][,file=<file>]\n"
+" specify tracing options\n"
+" see qemu(1) man page for full description\n"
#ifdef __linux__
"Kernel NBD client support:\n"
" -c, --connect=DEV connect FILE to the local NBD device DEV\n"
@@ -498,6 +503,7 @@ int main(int argc, char **argv)
{ "export-name", required_argument, NULL, 'x' },
{ "tls-creds", required_argument, NULL, QEMU_NBD_OPT_TLSCREDS },
{ "image-opts", no_argument, NULL, QEMU_NBD_OPT_IMAGE_OPTS },
+ { "trace", required_argument, NULL, 'T' },
{ NULL, 0, NULL, 0 }
};
int ch;
@@ -518,6 +524,7 @@ int main(int argc, char **argv)
const char *tlscredsid = NULL;
bool imageOpts = false;
bool writethrough = true;
+ char *trace_file = NULL;
/* The client thread uses SIGTERM to interrupt the server. A signal
* handler ensures that "qemu-nbd -v -c" exits with a nice status code.
@@ -531,6 +538,7 @@ int main(int argc, char **argv)
module_call_init(MODULE_INIT_QOM);
qemu_add_opts(&qemu_object_opts);
+ qemu_add_opts(&qemu_trace_opts);
qemu_init_exec_dir(argv[0]);
while ((ch = getopt_long(argc, argv, sopt, lopt, &opt_ind)) != -1) {
@@ -703,6 +711,9 @@ int main(int argc, char **argv)
case QEMU_NBD_OPT_IMAGE_OPTS:
imageOpts = true;
break;
+ case 'T':
+ trace_file = trace_opt_parse(optarg, trace_file);
+ break;
}
}
@@ -718,6 +729,12 @@ int main(int argc, char **argv)
exit(EXIT_FAILURE);
}
+ if (!trace_init_backends()) {
+ exit(1);
+ }
+ trace_init_file(trace_file);
+ qemu_set_log(LOG_TRACE);
+
if (tlscredsid) {
if (sockpath) {
error_report("TLS is only supported with IPv4/IPv6");
--
2.5.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH v2 0/3] trace: enable tracing in qemu-io/qemu-nbd
2016-05-31 8:58 [Qemu-devel] [PATCH v2 0/3] trace: enable tracing in qemu-io/qemu-nbd Denis V. Lunev
` (2 preceding siblings ...)
2016-05-31 8:58 ` [Qemu-devel] [PATCH 3/3] trace: enable tracing in qemu-nbd Denis V. Lunev
@ 2016-05-31 9:25 ` Daniel P. Berrange
2016-05-31 9:26 ` Denis V. Lunev
3 siblings, 1 reply; 10+ messages in thread
From: Daniel P. Berrange @ 2016-05-31 9:25 UTC (permalink / raw)
To: Denis V. Lunev; +Cc: qemu-devel, Kevin Wolf, Stefan Hajnoczi, Paolo Bonzini
On Tue, May 31, 2016 at 11:58:14AM +0300, Denis V. Lunev wrote:
> Actually this is a rework of the original patch, set as a part of write-zeroes
> patchset. Moving it out to process via trace tree.
>
> Changes from v1:
> - fixed nits found by Eric
>
> Signed-off-by: Denis V. Lunev <den@openvz.org>
> CC: Eric Blake <eblake@redhat.com>
> CC: Paolo Bonzini <pbonzini@redhat.com>
> CC: Stefan Hajnoczi <stefanha@redhat.com>
> CC: Kevin Wolf <kwolf@redhat.com>
>
> Denis V. Lunev (3):
> trace: move qemu_trace_opts to trace/control.c
> trace: enable tracing in qemu-io
> trace: enable tracing in qemu-nbd
Cool, I wanted this feature just the other day ! Do you fancy
also addinbg it to qemu-img while you're at it, so we have
complete coverage of all block tools.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH v2 0/3] trace: enable tracing in qemu-io/qemu-nbd
2016-05-31 9:25 ` [Qemu-devel] [PATCH v2 0/3] trace: enable tracing in qemu-io/qemu-nbd Daniel P. Berrange
@ 2016-05-31 9:26 ` Denis V. Lunev
0 siblings, 0 replies; 10+ messages in thread
From: Denis V. Lunev @ 2016-05-31 9:26 UTC (permalink / raw)
To: Daniel P. Berrange; +Cc: qemu-devel, Kevin Wolf, Stefan Hajnoczi, Paolo Bonzini
On 05/31/2016 12:25 PM, Daniel P. Berrange wrote:
> On Tue, May 31, 2016 at 11:58:14AM +0300, Denis V. Lunev wrote:
>> Actually this is a rework of the original patch, set as a part of write-zeroes
>> patchset. Moving it out to process via trace tree.
>>
>> Changes from v1:
>> - fixed nits found by Eric
>>
>> Signed-off-by: Denis V. Lunev <den@openvz.org>
>> CC: Eric Blake <eblake@redhat.com>
>> CC: Paolo Bonzini <pbonzini@redhat.com>
>> CC: Stefan Hajnoczi <stefanha@redhat.com>
>> CC: Kevin Wolf <kwolf@redhat.com>
>>
>> Denis V. Lunev (3):
>> trace: move qemu_trace_opts to trace/control.c
>> trace: enable tracing in qemu-io
>> trace: enable tracing in qemu-nbd
> Cool, I wanted this feature just the other day ! Do you fancy
> also addinbg it to qemu-img while you're at it, so we have
> complete coverage of all block tools.
>
>
> Regards,
> Daniel
ok. no prob ;)
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH 3/3] trace: enable tracing in qemu-nbd
2016-05-31 8:58 ` [Qemu-devel] [PATCH 3/3] trace: enable tracing in qemu-nbd Denis V. Lunev
@ 2016-05-31 12:46 ` Eric Blake
0 siblings, 0 replies; 10+ messages in thread
From: Eric Blake @ 2016-05-31 12:46 UTC (permalink / raw)
To: Denis V. Lunev, qemu-devel; +Cc: Paolo Bonzini, Stefan Hajnoczi, Kevin Wolf
[-- Attachment #1: Type: text/plain, Size: 672 bytes --]
On 05/31/2016 02:58 AM, Denis V. Lunev wrote:
> Please note, trace_init_backends() must be called in the final process,
> i.e. after daemonization. This is necessary to keep tracing thread in
> the proper process.
>
> Signed-off-by: Denis V. Lunev <den@openvz.org>
> CC: Eric Blake <eblake@redhat.com>
> CC: Paolo Bonzini <pbonzini@redhat.com>
> CC: Stefan Hajnoczi <stefanha@redhat.com>
> CC: Kevin Wolf <kwolf@redhat.com>
> ---
> qemu-nbd.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
Still missing the man page additions. :(
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH 2/3] trace: enable tracing in qemu-io
2016-05-31 8:58 ` [Qemu-devel] [PATCH 2/3] trace: enable tracing in qemu-io Denis V. Lunev
@ 2016-05-31 17:55 ` Eric Blake
0 siblings, 0 replies; 10+ messages in thread
From: Eric Blake @ 2016-05-31 17:55 UTC (permalink / raw)
To: Denis V. Lunev, qemu-devel; +Cc: Paolo Bonzini, Stefan Hajnoczi, Kevin Wolf
[-- Attachment #1: Type: text/plain, Size: 647 bytes --]
On 05/31/2016 02:58 AM, Denis V. Lunev wrote:
> Moving trace_init_backends() into trace_opt_parse() is not possible. This
> should be called after daemonize() in vl.c.
>
> Signed-off-by: Denis V. Lunev <den@openvz.org>
> CC: Eric Blake <eblake@redhat.com>
> CC: Paolo Bonzini <pbonzini@redhat.com>
> CC: Stefan Hajnoczi <stefanha@redhat.com>
> CC: Kevin Wolf <kwolf@redhat.com>
> ---
> qemu-io.c | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
Reviewed-by: Eric Blake <eblake@redhat.com>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PATCH 2/3] trace: enable tracing in qemu-io
2016-05-17 8:20 ` [Qemu-devel] [PATCH 2/3] trace: enable tracing in qemu-io Denis V. Lunev
@ 2016-05-19 23:23 ` Eric Blake
0 siblings, 0 replies; 10+ messages in thread
From: Eric Blake @ 2016-05-19 23:23 UTC (permalink / raw)
To: Denis V. Lunev, qemu-devel; +Cc: Kevin Wolf, Stefan Hajnoczi, Paolo Bonzini
[-- Attachment #1: Type: text/plain, Size: 1292 bytes --]
On 05/17/2016 02:20 AM, Denis V. Lunev wrote:
> Moving trace_init_backends() into trace_opt_parse() is not possible. This
> should be called after daemonize() in vl.c.
>
> Signed-off-by: Denis V. Lunev <den@openvz.org>
> CC: Paolo Bonzini <pbonzini@redhat.com>
> CC: Stefan Hajnoczi <stefanha@redhat.com>
> CC: Kevin Wolf <kwolf@redhat.com>
> ---
> qemu-io.c | 13 ++++++++++---
> 1 file changed, 10 insertions(+), 3 deletions(-)
Please add documentation of the new syntax of the -T option, so that it
shows up in --help output (I'd ask for it in the man page, too, except
qemu-io doesn't seem to have one).
With just this patch applied, I still see in 'qemu-io --help':
-T, --trace FILE enable trace events listed in the given file
which doesn't tell me how to turn on particular trace events, vs. the
more useful details in 'qemu-system-x86_64 --help':
-trace [[enable=]<pattern>][,events=<file>][,file=<file>]
specify tracing options
It is okay to just say "see qemu(1) man page for full description" (the
way we did for the --object option), rather than copy-and-paste a
paragraph that might go out of sync over time.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Qemu-devel] [PATCH 2/3] trace: enable tracing in qemu-io
2016-05-17 8:20 [Qemu-devel] [PATCH " Denis V. Lunev
@ 2016-05-17 8:20 ` Denis V. Lunev
2016-05-19 23:23 ` Eric Blake
0 siblings, 1 reply; 10+ messages in thread
From: Denis V. Lunev @ 2016-05-17 8:20 UTC (permalink / raw)
To: qemu-devel; +Cc: den, Paolo Bonzini, Stefan Hajnoczi, Kevin Wolf
Moving trace_init_backends() into trace_opt_parse() is not possible. This
should be called after daemonize() in vl.c.
Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
---
qemu-io.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/qemu-io.c b/qemu-io.c
index 5ef3ef7..1910fe3 100644
--- a/qemu-io.c
+++ b/qemu-io.c
@@ -18,6 +18,7 @@
#include "qemu/option.h"
#include "qemu/config-file.h"
#include "qemu/readline.h"
+#include "qemu/log.h"
#include "qapi/qmp/qstring.h"
#include "qom/object_interfaces.h"
#include "sysemu/block-backend.h"
@@ -458,6 +459,7 @@ int main(int argc, char **argv)
Error *local_error = NULL;
QDict *opts = NULL;
const char *format = NULL;
+ char *trace_file = NULL;
#ifdef CONFIG_POSIX
signal(SIGPIPE, SIG_IGN);
@@ -473,6 +475,7 @@ int main(int argc, char **argv)
module_call_init(MODULE_INIT_QOM);
qemu_add_opts(&qemu_object_opts);
+ qemu_add_opts(&qemu_trace_opts);
bdrv_init();
while ((c = getopt_long(argc, argv, sopt, lopt, &opt_index)) != -1) {
@@ -512,9 +515,7 @@ int main(int argc, char **argv)
}
break;
case 'T':
- if (!trace_init_backends()) {
- exit(1); /* error message will have been printed */
- }
+ trace_file = trace_opt_parse(optarg, trace_file);
break;
case 'V':
printf("%s version %s\n", progname, QEMU_VERSION);
@@ -560,6 +561,12 @@ int main(int argc, char **argv)
exit(1);
}
+ if (!trace_init_backends()) {
+ exit(1);
+ }
+ trace_init_file(trace_file);
+ qemu_set_log(LOG_TRACE);
+
/* initialize commands */
qemuio_add_command(&quit_cmd);
qemuio_add_command(&open_cmd);
--
2.1.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2016-05-31 17:55 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-31 8:58 [Qemu-devel] [PATCH v2 0/3] trace: enable tracing in qemu-io/qemu-nbd Denis V. Lunev
2016-05-31 8:58 ` [Qemu-devel] [PATCH 1/3] trace: move qemu_trace_opts to trace/control.c Denis V. Lunev
2016-05-31 8:58 ` [Qemu-devel] [PATCH 2/3] trace: enable tracing in qemu-io Denis V. Lunev
2016-05-31 17:55 ` Eric Blake
2016-05-31 8:58 ` [Qemu-devel] [PATCH 3/3] trace: enable tracing in qemu-nbd Denis V. Lunev
2016-05-31 12:46 ` Eric Blake
2016-05-31 9:25 ` [Qemu-devel] [PATCH v2 0/3] trace: enable tracing in qemu-io/qemu-nbd Daniel P. Berrange
2016-05-31 9:26 ` Denis V. Lunev
-- strict thread matches above, loose matches on Subject: below --
2016-05-17 8:20 [Qemu-devel] [PATCH " Denis V. Lunev
2016-05-17 8:20 ` [Qemu-devel] [PATCH 2/3] trace: enable tracing in qemu-io Denis V. Lunev
2016-05-19 23:23 ` Eric Blake
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.