From nobody Tue Dec 16 07:06:25 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; dkim=fail; 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; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1520986316005141.56805030927626; Tue, 13 Mar 2018 17:11:56 -0700 (PDT) Received: from localhost ([::1]:43508 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evtM5-0000cj-KD for importer@patchew.org; Tue, 13 Mar 2018 19:29:17 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58806) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1evsir-0006Uh-5b for qemu-devel@nongnu.org; Tue, 13 Mar 2018 18:48:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1evsiq-0004Fd-5E for qemu-devel@nongnu.org; Tue, 13 Mar 2018 18:48:45 -0400 Received: from mail-wm0-x244.google.com ([2a00:1450:400c:c09::244]:40150) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1evsip-0004Et-Ur for qemu-devel@nongnu.org; Tue, 13 Mar 2018 18:48:44 -0400 Received: by mail-wm0-x244.google.com with SMTP id t6so882099wmt.5 for ; Tue, 13 Mar 2018 15:48:43 -0700 (PDT) Received: from donizetti.lan (94-36-191-219.adsl-ull.clienti.tiscali.it. [94.36.191.219]) by smtp.gmail.com with ESMTPSA id x107sm1557951wrb.97.2018.03.13.15.48.41 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 13 Mar 2018 15:48:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=/AKEmLhNQt13Xd/dKSgMcFNBRR4tuZM3HZUkNF/3biI=; b=jXLr+xeY2lTSPfzR56hmGj1i+Sv22x33blpNHGEfUl/tdVpVNaHyfkjdjxYzP9HoJp 9P8j2YldXMhXV04zRHHa5Wz98KsgbLDnv3atTAys3J0yOEl1Ue9PiVDleu27kbH3ziGg rY4oUpif9QVLV8TlooY+/vcgfloUjBe7Mp/6dnhxnYY72IKBQKXZdjyKi33jdfrvER4Q Ieok+9/r4M/+xvOviQGj22Toy8Zqva9PJsM7DS0GJrxmpV0eHdVoudc4Z3svqzfHLpRO MoZfwiYeXNE1LwzZ63XoHQQ7UOZDRJxALGe4/21MCoaiT6fBo890Kj9neaPmXwwzhxYP zYUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=/AKEmLhNQt13Xd/dKSgMcFNBRR4tuZM3HZUkNF/3biI=; b=Cebp7LNEQrnGIcIp9+E2dFSkpGmkYztK+G4VV7FZzvdDa/ngv+ZBbd5QPcvp66ASFi +MGV0FQFCwXXDdQOaPO3Iv3i7FC/uEiwJupDzjOPt6MctxaJnjc/QjOqdDgj9KPMSQBW 4SAIjWWvhD9GUDf/H51E/6Fx3hhKv7shzq4BYvjyuiuSBoLmHzPPC+Eh9D5M97vK9b1h hn/5kQE8GG9Qh3UGNOgE63qLC1ihaoPbfhNXNIhKc4GtBHbQCjCBZW4vkO1zGWRosBi5 P5LrGGhj3dl9Xl5y2gOeD3Susf1LxPtSazuR0Tw551BgabqXUMvHC20AyxGDJJJVFA2G GrHw== X-Gm-Message-State: AElRT7GNamV/y76TVgIXpWbB8yL94tuSYazmJdiAG0GGmy0W3YdkfMgI VMn7xaqQuYWD3S7fTLsNr8miLjDb X-Google-Smtp-Source: AG47ELtUhHj6D2QxIQ1gAaLMA78sB+sQnsrQOonm0Ign+BDsrOQELQgJZPJAFAtVmLb4tVoeYswHQA== X-Received: by 10.28.74.88 with SMTP id x85mr2140495wma.106.1520981322557; Tue, 13 Mar 2018 15:48:42 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 13 Mar 2018 23:47:16 +0100 Message-Id: <20180313224719.4954-67-pbonzini@redhat.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180313224719.4954-1-pbonzini@redhat.com> References: <20180313224719.4954-1-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c09::244 Subject: [Qemu-devel] [PULL 66/69] replay: don't process async events when warping the clock 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: Pavel Dovgalyuk Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Pavel Dovgalyuk Virtual clock is warped from iothread and vcpu thread. When the hardware events associated with warp checkpoint, then interrupt delivering may be non-deterministic if checkpoint is processed in different threads in record and replay. This patch disables event processing for clock warp checkpoint and leaves all hardware events to other checkpoints (e.g., virtual clock). Signed-off-by: Pavel Dovgalyuk Message-Id: <20180227095316.1060.4134.stgit@pasha-VirtualBox> Signed-off-by: Paolo Bonzini Signed-off-by: Pavel Dovgalyuk --- replay/replay-events.c | 1 + replay/replay.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/replay/replay-events.c b/replay/replay-events.c index 54dd9d2606..3d5fc8a479 100644 --- a/replay/replay-events.c +++ b/replay/replay-events.c @@ -205,6 +205,7 @@ static void replay_save_event(Event *event, int checkpo= int) void replay_save_events(int checkpoint) { g_assert(replay_mutex_locked()); + g_assert(checkpoint !=3D CHECKPOINT_CLOCK_WARP_START); while (!QTAILQ_EMPTY(&events_list)) { Event *event =3D QTAILQ_FIRST(&events_list); replay_save_event(event, checkpoint); diff --git a/replay/replay.c b/replay/replay.c index eae8daf18a..8228261401 100644 --- a/replay/replay.c +++ b/replay/replay.c @@ -211,7 +211,12 @@ bool replay_checkpoint(ReplayCheckpoint checkpoint) } else if (replay_mode =3D=3D REPLAY_MODE_RECORD) { g_assert(replay_mutex_locked()); replay_put_event(EVENT_CHECKPOINT + checkpoint); - replay_save_events(checkpoint); + /* This checkpoint belongs to several threads. + Processing events from different threads is + non-deterministic */ + if (checkpoint !=3D CHECKPOINT_CLOCK_WARP_START) { + replay_save_events(checkpoint); + } res =3D true; } out: --=20 2.14.3