From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47990) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bAalm-0007RW-Qi for qemu-devel@nongnu.org; Wed, 08 Jun 2016 06:31:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bAali-00037W-KW for qemu-devel@nongnu.org; Wed, 08 Jun 2016 06:31:29 -0400 Received: from mx3-phx2.redhat.com ([209.132.183.24]:36145) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bAali-00037F-DP for qemu-devel@nongnu.org; Wed, 08 Jun 2016 06:31:26 -0400 Date: Wed, 8 Jun 2016 06:31:19 -0400 (EDT) From: Paolo Bonzini Message-ID: <257976361.20784345.1465381879882.JavaMail.zimbra@redhat.com> In-Reply-To: <20160608051404.1688.65453.stgit@PASHA-ISP> References: <20160608051352.1688.7877.stgit@PASHA-ISP> <20160608051404.1688.65453.stgit@PASHA-ISP> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/3] replay: allow replay stopping and restarting List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Pavel Dovgalyuk Cc: qemu-devel@nongnu.org, jasowang@redhat.com, agraf@suse.de, david@gibson.dropbear.id.au ----- Original Message ----- > From: "Pavel Dovgalyuk" > To: qemu-devel@nongnu.org > Cc: pbonzini@redhat.com, jasowang@redhat.com, agraf@suse.de, david@gibson.dropbear.id.au > Sent: Wednesday, June 8, 2016 7:14:04 AM > Subject: [PATCH 2/3] replay: allow replay stopping and restarting > > This patch fixes bug with stopping and restarting replay > through monitor. > > Signed-off-by: Pavel Dovgalyuk > --- > 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? I think that you want to call replay_disable_events... > bdrv_drain_all(); ... after this bdrv_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. Thanks, Paolo