qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: "Denis V. Lunev" <den@openvz.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	qemu-devel@nongnu.org, Peter Maydell <peter.maydell@linaro.org>
Subject: Re: [Qemu-devel] [PULL 05/13] trace: split trace_init_file out of trace_init_backends
Date: Mon, 08 Feb 2016 18:43:55 +0000	[thread overview]
Message-ID: <87lh6vvy8k.fsf@linaro.org> (raw)
In-Reply-To: <1454514465-11856-6-git-send-email-stefanha@redhat.com>


Stefan Hajnoczi <stefanha@redhat.com> writes:

> From: Paolo Bonzini <pbonzini@redhat.com>
>
> This is cleaner, and improves error reporting with -daemonize.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: Denis V. Lunev <den@openvz.org>
> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
> Message-id: 1452174932-28657-4-git-send-email-den@openvz.org
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  qemu-io.c       |  2 +-
>  trace/control.c | 17 ++++++++++++-----
>  trace/control.h | 13 ++++++++++++-
>  trace/simple.c  |  6 ++----
>  trace/simple.h  |  4 ++--
>  vl.c            | 13 +++++++++----
>  6 files changed, 38 insertions(+), 17 deletions(-)
>
> diff --git a/qemu-io.c b/qemu-io.c
> index 1c11d57..83c48f4 100644
> --- a/qemu-io.c
> +++ b/qemu-io.c
> @@ -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;
> diff --git a/trace/control.c b/trace/control.c
> index 931d64c..f5a497a 100644
> --- a/trace/control.c
> +++ b/trace/control.c
> @@ -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);

This breaks "make check" as st_set_trace_file will attempt to flush the
file:

    /* Halt trace writeout */
    flush_trace_file(true);
    trace_writeout_enabled = false;
    flush_trace_file(true);

And this deadlocks waiting for trace_empty_cond to get tickled which
will never happen because:

<snip>
> diff --git a/vl.c b/vl.c
> index ff2a7d5..955f364 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2988,7 +2988,7 @@ int main(int argc, char **argv, char **envp)
>      bool userconfig = true;
>      const char *log_mask = NULL;
>      const char *log_file = NULL;
> -    const char *trace_file = NULL;
> +    char *trace_file = NULL;
>      ram_addr_t maxram_size;
>      uint64_t ram_slots = 0;
>      FILE *vmstate_dump_file = NULL;
> @@ -3905,7 +3905,10 @@ int main(int argc, char **argv, char **envp)
>                      exit(1);
>                  }
>                  trace_init_events(qemu_opt_get(opts, "events"));
> -                trace_file = qemu_opt_get(opts, "file");
> +                if (trace_file) {
> +                    g_free(trace_file);
> +                }
> +                trace_file = g_strdup(qemu_opt_get(opts, "file"));
>                  qemu_opts_del(opts);
>                  break;
>              }
> @@ -4089,6 +4092,8 @@ int main(int argc, char **argv, char **envp)
>          exit(0);
>      }
>
> +    trace_init_file(trace_file);
> +

This happens before:

>       */
>      if (log_file) {
> @@ -4106,7 +4111,7 @@ int main(int argc, char **argv, char **envp)
>      }
>
>      if (!is_daemonized()) {
> -        if (!trace_init_backends(trace_file)) {
> +        if (!trace_init_backends()) {
>              exit(1);
>          }
>      }
> @@ -4653,7 +4658,7 @@ int main(int argc, char **argv, char **envp)
>      os_setup_post();
>
>      if (is_daemonized()) {
> -        if (!trace_init_backends(trace_file)) {
> +        if (!trace_init_backends()) {

This which creates the thread.

>              exit(1);
>          }
>      }


--
Alex Bennée

  reply	other threads:[~2016-02-08 18:44 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-03 15:47 [Qemu-devel] [PULL 00/13] Tracing patches Stefan Hajnoczi
2016-02-03 15:47 ` [Qemu-devel] [PULL 01/13] trace: count number of enabled events Stefan Hajnoczi
2016-02-03 15:47 ` [Qemu-devel] [PULL 02/13] trace: track enabled events in a separate array Stefan Hajnoczi
2016-02-03 15:47 ` [Qemu-devel] [PULL 03/13] trace: fix documentation Stefan Hajnoczi
2016-02-03 15:47 ` [Qemu-devel] [PULL 04/13] trace: split trace_init_events out of trace_init_backends Stefan Hajnoczi
2016-02-03 15:47 ` [Qemu-devel] [PULL 05/13] trace: split trace_init_file " Stefan Hajnoczi
2016-02-08 18:43   ` Alex Bennée [this message]
2016-02-09 11:17     ` Denis V. Lunev
2016-02-09 12:28       ` Alex Bennée
2016-02-09 19:19         ` Denis V. Lunev
2016-02-03 15:47 ` [Qemu-devel] [PULL 06/13] trace: no need to call trace_backend_init in different branches now Stefan Hajnoczi
2016-02-03 15:47 ` [Qemu-devel] [PULL 07/13] trace: add "-trace enable=..." Stefan Hajnoczi
2016-02-03 15:47 ` [Qemu-devel] [PULL 08/13] trace: add "-trace help" Stefan Hajnoczi
2016-02-03 15:47 ` [Qemu-devel] [PULL 09/13] log: do not unnecessarily include qom/cpu.h Stefan Hajnoczi
2016-02-03 15:47 ` [Qemu-devel] [PULL 10/13] log: move qemu-log.c into util/ directory Stefan Hajnoczi
2016-02-03 16:03   ` Daniel P. Berrange
2016-02-03 16:15     ` Denis V. Lunev
2016-02-03 16:36     ` Eric Blake
2016-02-03 17:38   ` Dimitris Aragiorgis
2016-02-03 18:46     ` Paolo Bonzini
2016-02-03 15:47 ` [Qemu-devel] [PULL 11/13] trace: convert stderr backend to log Stefan Hajnoczi
2016-02-03 15:47 ` [Qemu-devel] [PULL 12/13] trace: switch default backend to "log" Stefan Hajnoczi
2016-02-03 15:47 ` [Qemu-devel] [PULL 13/13] log: add "-d trace:PATTERN" Stefan Hajnoczi
2016-02-03 17:55 ` [Qemu-devel] [PULL 00/13] Tracing patches Peter Maydell
2016-02-03 18:49   ` Paolo Bonzini
2016-02-04 11:05     ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87lh6vvy8k.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=den@openvz.org \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).