All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 0/2] trace: [*-user] Add commandline arguments to control tracing
@ 2016-07-15 17:08 Lluís Vilanova
  2016-07-15 17:08 ` [Qemu-devel] [PATCH v3 1/2] trace: [linux-user] Commandline " Lluís Vilanova
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Lluís Vilanova @ 2016-07-15 17:08 UTC (permalink / raw)
  To: qemu-devel; +Cc: Eric Blake, Stefan Hajnoczi

Adds three commandline arguments to the main *-user programs, following what's
already available in softmmu:

* -trace-enable
* -trace-events
* -trace-file


Changes in v2
=============

* Tell user to use 'help' instead of '?' [Eric Blake].
* Remove newlines on argument docs for bsd-user [Eric Blake].


Changes in v3
=============

* Use new trace_opt_parse() [Stefan Hajnoczi].


Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
---

Lluís Vilanova (2):
      trace: [linux-user] Commandline arguments to control tracing
      trace: [bsd-user] Commandline arguments to control tracing


 bsd-user/main.c   |   16 ++++++++++++++++
 linux-user/main.c |   19 +++++++++++++++++++
 2 files changed, 35 insertions(+)


To: qemu-devel@nongnu.org
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Cc: Eric Blake <eblake@redhat.com>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH v3 1/2] trace: [linux-user] Commandline arguments to control tracing
  2016-07-15 17:08 [Qemu-devel] [PATCH v3 0/2] trace: [*-user] Add commandline arguments to control tracing Lluís Vilanova
@ 2016-07-15 17:08 ` Lluís Vilanova
  2016-07-15 17:08 ` [Qemu-devel] [PATCH v3 2/2] trace: [bsd-user] " Lluís Vilanova
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 9+ messages in thread
From: Lluís Vilanova @ 2016-07-15 17:08 UTC (permalink / raw)
  To: qemu-devel; +Cc: Eric Blake, Stefan Hajnoczi, Riku Voipio

Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
---
 linux-user/main.c |   19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/linux-user/main.c b/linux-user/main.c
index 617a179..53be5dd 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -24,6 +24,7 @@
 #include "qapi/error.h"
 #include "qemu.h"
 #include "qemu/path.h"
+#include "qemu/config-file.h"
 #include "qemu/cutils.h"
 #include "qemu/help_option.h"
 #include "cpu.h"
@@ -33,6 +34,8 @@
 #include "qemu/envlist.h"
 #include "elf.h"
 #include "exec/log.h"
+#include "trace/control.h"
+#include "glib-compat.h"
 
 char *exec_path;
 
@@ -4001,6 +4004,13 @@ static void handle_arg_version(const char *arg)
     exit(EXIT_SUCCESS);
 }
 
+static const char * trace_file = NULL;
+static void handle_arg_trace(const char *arg)
+{
+    g_free((char*)trace_file);
+    trace_file = trace_opt_parse(arg);
+}
+
 struct qemu_argument {
     const char *argv;
     const char *env;
@@ -4048,6 +4058,8 @@ static const struct qemu_argument arg_table[] = {
      "",           "log system calls"},
     {"seed",       "QEMU_RAND_SEED",   true,  handle_arg_randseed,
      "",           "Seed for pseudo-random number generator"},
+    {"trace",      "QEMU_TRACE",       true,  handle_arg_trace,
+     "",           "[[enable=]<pattern>][,events=<file>][,file=<file>]"},
     {"version",    "QEMU_VERSION",     false, handle_arg_version,
      "",           "display version information and exit"},
     {NULL, NULL, false, NULL, NULL, NULL}
@@ -4237,8 +4249,15 @@ int main(int argc, char **argv, char **envp)
 
     srand(time(NULL));
 
+    qemu_add_opts(&qemu_trace_opts);
+
     optind = parse_args(argc, argv);
 
+    if (!trace_init_backends()) {
+        exit(1);
+    }
+    trace_init_file(trace_file);
+
     /* Zero out regs */
     memset(regs, 0, sizeof(struct target_pt_regs));
 

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH v3 2/2] trace: [bsd-user] Commandline arguments to control tracing
  2016-07-15 17:08 [Qemu-devel] [PATCH v3 0/2] trace: [*-user] Add commandline arguments to control tracing Lluís Vilanova
  2016-07-15 17:08 ` [Qemu-devel] [PATCH v3 1/2] trace: [linux-user] Commandline " Lluís Vilanova
@ 2016-07-15 17:08 ` Lluís Vilanova
  2016-07-15 19:22   ` Eric Blake
  2016-07-15 17:21 ` [Qemu-devel] [PATCH v3 0/2] trace: [*-user] Add commandline " Peter Maydell
  2016-07-18 12:25 ` Stefan Hajnoczi
  3 siblings, 1 reply; 9+ messages in thread
From: Lluís Vilanova @ 2016-07-15 17:08 UTC (permalink / raw)
  To: qemu-devel; +Cc: Eric Blake, Stefan Hajnoczi

Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
---
 bsd-user/main.c |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/bsd-user/main.c b/bsd-user/main.c
index 4819b9e..3bef796 100644
--- a/bsd-user/main.c
+++ b/bsd-user/main.c
@@ -21,6 +21,7 @@
 
 #include "qapi/error.h"
 #include "qemu.h"
+#include "qemu/config-file.h"
 #include "qemu/path.h"
 #include "qemu/help_option.h"
 /* For tb_lock */
@@ -30,6 +31,8 @@
 #include "qemu/timer.h"
 #include "qemu/envlist.h"
 #include "exec/log.h"
+#include "trace/control.h"
+#include "glib-compat.h"
 
 int singlestep;
 unsigned long mmap_min_addr;
@@ -687,6 +690,8 @@ static void usage(void)
            "-p pagesize       set the host page size to 'pagesize'\n"
            "-singlestep       always run in singlestep mode\n"
            "-strace           log system calls\n"
+           "-trace            [[enable=]<pattern>][,events=<file>][,file=<file>]\n"
+           "                  specify tracing options\n"
            "\n"
            "Environment variables:\n"
            "QEMU_STRACE       Print system calls and arguments similar to the\n"
@@ -735,6 +740,7 @@ int main(int argc, char **argv)
     int gdbstub_port = 0;
     char **target_environ, **wrk;
     envlist_t *envlist = NULL;
+    const char *trace_file = NULL;
     bsd_type = target_openbsd;
 
     if (argc <= 1)
@@ -754,6 +760,8 @@ int main(int argc, char **argv)
 
     cpu_model = NULL;
 
+    qemu_add_opts(&qemu_trace_opts);
+
     optind = 1;
     for(;;) {
         if (optind >= argc)
@@ -840,6 +848,9 @@ int main(int argc, char **argv)
             singlestep = 1;
         } else if (!strcmp(r, "strace")) {
             do_strace = 1;
+        } else if (!strcmp(r, "trace")) {
+            g_free(trace_file);
+            trace_file = trace_opt_parse(optarg);
         } else
         {
             usage();
@@ -865,6 +876,11 @@ int main(int argc, char **argv)
     }
     filename = argv[optind];
 
+    if (!trace_init_backends()) {
+        exit(1);
+    }
+    trace_init_file(trace_file);
+
     /* Zero out regs */
     memset(regs, 0, sizeof(struct target_pt_regs));
 

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH v3 0/2] trace: [*-user] Add commandline arguments to control tracing
  2016-07-15 17:08 [Qemu-devel] [PATCH v3 0/2] trace: [*-user] Add commandline arguments to control tracing Lluís Vilanova
  2016-07-15 17:08 ` [Qemu-devel] [PATCH v3 1/2] trace: [linux-user] Commandline " Lluís Vilanova
  2016-07-15 17:08 ` [Qemu-devel] [PATCH v3 2/2] trace: [bsd-user] " Lluís Vilanova
@ 2016-07-15 17:21 ` Peter Maydell
  2016-07-15 17:48   ` Lluís Vilanova
  2016-07-18 12:25 ` Stefan Hajnoczi
  3 siblings, 1 reply; 9+ messages in thread
From: Peter Maydell @ 2016-07-15 17:21 UTC (permalink / raw)
  To: Lluís Vilanova; +Cc: QEMU Developers, Stefan Hajnoczi

On 15 July 2016 at 18:08, Lluís Vilanova <vilanova@ac.upc.edu> wrote:
> Adds three commandline arguments to the main *-user programs, following what's
> already available in softmmu:
>
> * -trace-enable
> * -trace-events
> * -trace-file

So when would you want to use these rather than the existing
-d trace:pattern and -D logfile options?

thanks
-- PMM

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH v3 0/2] trace: [*-user] Add commandline arguments to control tracing
  2016-07-15 17:21 ` [Qemu-devel] [PATCH v3 0/2] trace: [*-user] Add commandline " Peter Maydell
@ 2016-07-15 17:48   ` Lluís Vilanova
  2016-07-15 17:49     ` Peter Maydell
  0 siblings, 1 reply; 9+ messages in thread
From: Lluís Vilanova @ 2016-07-15 17:48 UTC (permalink / raw)
  To: Peter Maydell; +Cc: QEMU Developers, Stefan Hajnoczi

Peter Maydell writes:

> On 15 July 2016 at 18:08, Lluís Vilanova <vilanova@ac.upc.edu> wrote:
>> Adds three commandline arguments to the main *-user programs, following what's
>> already available in softmmu:
>> 
>> * -trace-enable
>> * -trace-events
>> * -trace-file

> So when would you want to use these rather than the existing
> -d trace:pattern and -D logfile options?

These are different logs/traces. The ones you point out are textual traces for
TCG guest/target instructions (and where to write them). The ones I've added are
for QEMU's tracing infrastructure.

Note that both (-trace vs -d/-D) are also available in system mode (vl.c).

BTW, I forgot to update the series cover according to v3's changes.


Cheers,
  Lluis

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH v3 0/2] trace: [*-user] Add commandline arguments to control tracing
  2016-07-15 17:48   ` Lluís Vilanova
@ 2016-07-15 17:49     ` Peter Maydell
  0 siblings, 0 replies; 9+ messages in thread
From: Peter Maydell @ 2016-07-15 17:49 UTC (permalink / raw)
  To: Peter Maydell, QEMU Developers, Stefan Hajnoczi

On 15 July 2016 at 18:48, Lluís Vilanova <vilanova@ac.upc.edu> wrote:
> Peter Maydell writes:
>
>> On 15 July 2016 at 18:08, Lluís Vilanova <vilanova@ac.upc.edu> wrote:
>>> Adds three commandline arguments to the main *-user programs, following what's
>>> already available in softmmu:
>>>
>>> * -trace-enable
>>> * -trace-events
>>> * -trace-file
>
>> So when would you want to use these rather than the existing
>> -d trace:pattern and -D logfile options?
>
> These are different logs/traces. The ones you point out are textual traces for
> TCG guest/target instructions (and where to write them). The ones I've added are
> for QEMU's tracing infrastructure.

-d trace:pattern works for any tracepoint.

> Note that both (-trace vs -d/-D) are also available in system mode (vl.c).

True, so consistency probably makes it worth providing both interfaces.

thanks
-- PMM

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH v3 2/2] trace: [bsd-user] Commandline arguments to control tracing
  2016-07-15 17:08 ` [Qemu-devel] [PATCH v3 2/2] trace: [bsd-user] " Lluís Vilanova
@ 2016-07-15 19:22   ` Eric Blake
  2016-07-18 12:23     ` Stefan Hajnoczi
  0 siblings, 1 reply; 9+ messages in thread
From: Eric Blake @ 2016-07-15 19:22 UTC (permalink / raw)
  To: Lluís Vilanova, qemu-devel; +Cc: Stefan Hajnoczi

[-- Attachment #1: Type: text/plain, Size: 987 bytes --]

On 07/15/2016 11:08 AM, Lluís Vilanova wrote:
> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
> ---
>  bsd-user/main.c |   16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 

> @@ -754,6 +760,8 @@ int main(int argc, char **argv)
>  
>      cpu_model = NULL;
>  
> +    qemu_add_opts(&qemu_trace_opts);
> +
>      optind = 1;
>      for(;;) {

Optional, but since you are in the area, you could add the missing space
after 'for'.

>          if (optind >= argc)
> @@ -840,6 +848,9 @@ int main(int argc, char **argv)
>              singlestep = 1;
>          } else if (!strcmp(r, "strace")) {
>              do_strace = 1;
> +        } else if (!strcmp(r, "trace")) {
> +            g_free(trace_file);
> +            trace_file = trace_opt_parse(optarg);
>          } else
>          {

and fix the 'else {' to be on one line.


-- 
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] 9+ messages in thread

* Re: [Qemu-devel] [PATCH v3 2/2] trace: [bsd-user] Commandline arguments to control tracing
  2016-07-15 19:22   ` Eric Blake
@ 2016-07-18 12:23     ` Stefan Hajnoczi
  0 siblings, 0 replies; 9+ messages in thread
From: Stefan Hajnoczi @ 2016-07-18 12:23 UTC (permalink / raw)
  To: Eric Blake; +Cc: Lluís Vilanova, qemu-devel, Stefan Hajnoczi

[-- Attachment #1: Type: text/plain, Size: 1018 bytes --]

On Fri, Jul 15, 2016 at 01:22:54PM -0600, Eric Blake wrote:
> On 07/15/2016 11:08 AM, Lluís Vilanova wrote:
> > Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
> > ---
> >  bsd-user/main.c |   16 ++++++++++++++++
> >  1 file changed, 16 insertions(+)
> > 
> 
> > @@ -754,6 +760,8 @@ int main(int argc, char **argv)
> >  
> >      cpu_model = NULL;
> >  
> > +    qemu_add_opts(&qemu_trace_opts);
> > +
> >      optind = 1;
> >      for(;;) {
> 
> Optional, but since you are in the area, you could add the missing space
> after 'for'.
> 
> >          if (optind >= argc)
> > @@ -840,6 +848,9 @@ int main(int argc, char **argv)
> >              singlestep = 1;
> >          } else if (!strcmp(r, "strace")) {
> >              do_strace = 1;
> > +        } else if (!strcmp(r, "trace")) {
> > +            g_free(trace_file);
> > +            trace_file = trace_opt_parse(optarg);
> >          } else
> >          {
> 
> and fix the 'else {' to be on one line.

Done while merging.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH v3 0/2] trace: [*-user] Add commandline arguments to control tracing
  2016-07-15 17:08 [Qemu-devel] [PATCH v3 0/2] trace: [*-user] Add commandline arguments to control tracing Lluís Vilanova
                   ` (2 preceding siblings ...)
  2016-07-15 17:21 ` [Qemu-devel] [PATCH v3 0/2] trace: [*-user] Add commandline " Peter Maydell
@ 2016-07-18 12:25 ` Stefan Hajnoczi
  3 siblings, 0 replies; 9+ messages in thread
From: Stefan Hajnoczi @ 2016-07-18 12:25 UTC (permalink / raw)
  To: Lluís Vilanova; +Cc: qemu-devel, Stefan Hajnoczi

[-- Attachment #1: Type: text/plain, Size: 1606 bytes --]

On Fri, Jul 15, 2016 at 07:08:32PM +0200, Lluís Vilanova wrote:
> Adds three commandline arguments to the main *-user programs, following what's
> already available in softmmu:
> 
> * -trace-enable
> * -trace-events
> * -trace-file
> 
> 
> Changes in v2
> =============
> 
> * Tell user to use 'help' instead of '?' [Eric Blake].
> * Remove newlines on argument docs for bsd-user [Eric Blake].
> 
> 
> Changes in v3
> =============
> 
> * Use new trace_opt_parse() [Stefan Hajnoczi].
> 
> 
> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
> ---
> 
> Lluís Vilanova (2):
>       trace: [linux-user] Commandline arguments to control tracing
>       trace: [bsd-user] Commandline arguments to control tracing
> 
> 
>  bsd-user/main.c   |   16 ++++++++++++++++
>  linux-user/main.c |   19 +++++++++++++++++++
>  2 files changed, 35 insertions(+)
> 
> 
> To: qemu-devel@nongnu.org
> Cc: Stefan Hajnoczi <stefanha@redhat.com>
> Cc: Eric Blake <eblake@redhat.com>

Thank you for quickly rebasing.  I have applied the patch and made Eric
Blake's suggested changes.  I've also changed linux-user.c "const char *
trace_file" to "char *trace_file" since this heap-allocated string needs
to be freed.  The char * type is also used by trace_opt_parse() and
vl.c.

Please remember to run scripts/checkpatch.pl on all patches.  The
easiest way to do that is via a git commit hook described here:
http://blog.vmsplice.net/2011/03/how-to-automatically-run-checkpatchpl.html

Thanks, applied to my tracing tree:
https://github.com/stefanha/qemu/commits/HEAD

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-07-18 12:25 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-15 17:08 [Qemu-devel] [PATCH v3 0/2] trace: [*-user] Add commandline arguments to control tracing Lluís Vilanova
2016-07-15 17:08 ` [Qemu-devel] [PATCH v3 1/2] trace: [linux-user] Commandline " Lluís Vilanova
2016-07-15 17:08 ` [Qemu-devel] [PATCH v3 2/2] trace: [bsd-user] " Lluís Vilanova
2016-07-15 19:22   ` Eric Blake
2016-07-18 12:23     ` Stefan Hajnoczi
2016-07-15 17:21 ` [Qemu-devel] [PATCH v3 0/2] trace: [*-user] Add commandline " Peter Maydell
2016-07-15 17:48   ` Lluís Vilanova
2016-07-15 17:49     ` Peter Maydell
2016-07-18 12:25 ` Stefan Hajnoczi

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.