From nobody Wed Oct 29 09:12:06 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1527492332408291.3249292553039; Mon, 28 May 2018 00:25:32 -0700 (PDT) Received: from localhost ([::1]:54585 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fNCX5-0004tg-KN for importer@patchew.org; Mon, 28 May 2018 03:25:31 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34558) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fNCMW-00051X-Ur for qemu-devel@nongnu.org; Mon, 28 May 2018 03:14:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fNCMV-0007jj-Un for qemu-devel@nongnu.org; Mon, 28 May 2018 03:14:36 -0400 Received: from mail.ispras.ru ([83.149.199.45]:46864) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fNCMV-0007jA-NP for qemu-devel@nongnu.org; Mon, 28 May 2018 03:14:35 -0400 Received: from [127.0.1.1] (unknown [85.142.117.226]) by mail.ispras.ru (Postfix) with ESMTPSA id C2B125400E3; Mon, 28 May 2018 10:14:34 +0300 (MSK) From: Pavel Dovgalyuk To: qemu-devel@nongnu.org Date: Mon, 28 May 2018 10:14:35 +0300 Message-ID: <20180528071435.9424.22886.stgit@pasha-VirtualBox> In-Reply-To: <20180528071332.9424.27343.stgit@pasha-VirtualBox> References: <20180528071332.9424.27343.stgit@pasha-VirtualBox> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 83.149.199.45 Subject: [Qemu-devel] [PATCH v4 11/19] replay: flush events when exiting X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, peter.maydell@linaro.org, war2jordan@live.com, pavel.dovgaluk@ispras.ru, pbonzini@redhat.com, quintela@redhat.com, ciro.santilli@gmail.com, jasowang@redhat.com, crosthwaite.peter@gmail.com, zuban32s@gmail.com, armbru@redhat.com, maria.klimushenkova@ispras.ru, mst@redhat.com, kraxel@redhat.com, boost.lists@gmail.com, thomas.dullien@googlemail.com, dovgaluk@ispras.ru, mreitz@redhat.com, alex.bennee@linaro.org, dgilbert@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 This patch adds events processing when emulation finishes instead of just cleaning the queue. Now the bdrv coroutines will be in consistent state when emulator closes. It allows correct polling of the block layer at exit. Signed-off-by: Pavel Dovgalyuk --- replay/replay-events.c | 14 +------------- replay/replay-internal.h | 2 -- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/replay/replay-events.c b/replay/replay-events.c index 707de38..0964a82 100644 --- a/replay/replay-events.c +++ b/replay/replay-events.c @@ -94,18 +94,6 @@ void replay_disable_events(void) } } =20 -void replay_clear_events(void) -{ - g_assert(replay_mutex_locked()); - - while (!QTAILQ_EMPTY(&events_list)) { - Event *event =3D QTAILQ_FIRST(&events_list); - QTAILQ_REMOVE(&events_list, event, events); - - g_free(event); - } -} - /*! Adds specified async event to the queue */ void replay_add_event(ReplayAsyncEventKind event_kind, void *opaque, @@ -308,7 +296,7 @@ void replay_init_events(void) void replay_finish_events(void) { events_enabled =3D false; - replay_clear_events(); + replay_flush_events(); } =20 bool replay_events_enabled(void) diff --git a/replay/replay-internal.h b/replay/replay-internal.h index 34d19eb..a2221e5 100644 --- a/replay/replay-internal.h +++ b/replay/replay-internal.h @@ -148,8 +148,6 @@ void replay_init_events(void); void replay_finish_events(void); /*! Flushes events queue */ void replay_flush_events(void); -/*! Clears events list before loading new VM state */ -void replay_clear_events(void); /*! Returns true if there are any unsaved events in the queue */ bool replay_has_events(void); /*! Saves events from queue into the file */