qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Pavel Dovgalyuk" <dovgaluk@ispras.ru>
To: 'Paolo Bonzini' <pbonzini@redhat.com>,
	'Pavel Dovgalyuk' <pavel.dovgaluk@ispras.ru>
Cc: qemu-devel@nongnu.org, jasowang@redhat.com, agraf@suse.de,
	david@gibson.dropbear.id.au
Subject: Re: [Qemu-devel] [PATCH 2/3] replay: allow replay stopping and restarting
Date: Mon, 20 Jun 2016 09:26:33 +0300	[thread overview]
Message-ID: <001201d1cabc$b1b003e0$15100ba0$@ru> (raw)
In-Reply-To: <257976361.20784345.1465381879882.JavaMail.zimbra@redhat.com>

> From: Paolo Bonzini [mailto:pbonzini@redhat.com]
> > From: "Pavel Dovgalyuk" <pavel.dovgaluk@ispras.ru>
> > This patch fixes bug with stopping and restarting replay
> > through monitor.
> >
> > Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
> > ---
> >  block/blkreplay.c        |   18 +++++++++++++-----
> >  cpus.c                   |    1 +
> >  include/sysemu/replay.h  |    2 ++
> >  replay/replay-internal.h |    2 --
> >  vl.c                     |    1 +
> >  5 files changed, 17 insertions(+), 7 deletions(-)
> >
> > diff --git a/block/blkreplay.c b/block/blkreplay.c
> > index 42f1813..438170c 100644
> > --- a/block/blkreplay.c
> > +++ b/block/blkreplay.c
> > @@ -70,6 +70,14 @@ static void blkreplay_bh_cb(void *opaque)
> >      g_free(req);
> >  }
> >
> > +static uint64_t blkreplay_next_id(void)
> > +{
> > +    if (replay_events_enabled()) {
> > +        return request_id++;
> > +    }
> > +    return 0;
> > +}
> 
> What happens if 0 is returned?  

It could be any value. When replay events are disables,
it means that either replay is disabled or execution is stopped.
In first case we won't pass this requests through the replay queue
and therefore id is useless.
In stopped mode we have to keep request_id unchanged to make
record/replay deterministic.

> I think that you want to call
> replay_disable_events...
> 
> >      bdrv_drain_all();
> 
> ... after this bdrv_drain_all.

Why? We disable replay events to avoid adding new block requests
to the queue. How this is related to drain all?

> 
> I was going to suggest using qemu_add_vm_change_state_handler
> in replay_start (which could have replaced the existing call
> to replay_enable_events), but that's not possible if you have
> to do your calls after bdrv_drain_all.

Pavel Dovgalyuk

  reply	other threads:[~2016-06-20  6:26 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-08  5:13 [Qemu-devel] [PATCH 0/3] icount/replay additions Pavel Dovgalyuk
2016-06-08  5:13 ` [Qemu-devel] [PATCH 1/3] target-ppc: exceptions handling in icount mode Pavel Dovgalyuk
2016-06-08  5:14 ` [Qemu-devel] [PATCH 2/3] replay: allow replay stopping and restarting Pavel Dovgalyuk
2016-06-08 10:31   ` Paolo Bonzini
2016-06-20  6:26     ` Pavel Dovgalyuk [this message]
2016-06-29  9:43       ` Pavel Dovgalyuk
2016-06-29 10:45       ` Paolo Bonzini
2016-06-29 11:40         ` Pavel Dovgalyuk
2016-06-08  5:14 ` [Qemu-devel] [PATCH 3/3] record/replay: add network support Pavel Dovgalyuk

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='001201d1cabc$b1b003e0$15100ba0$@ru' \
    --to=dovgaluk@ispras.ru \
    --cc=agraf@suse.de \
    --cc=david@gibson.dropbear.id.au \
    --cc=jasowang@redhat.com \
    --cc=pavel.dovgaluk@ispras.ru \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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).