From nobody Thu May 2 07:01:01 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=ispras.ru ARC-Seal: i=1; a=rsa-sha256; t=1616497795; cv=none; d=zohomail.com; s=zohoarc; b=nkw9U0XX9ecm92gjf5PXHHS7fczfMqicq65vLC1vccH8IS1/deOPtLK9+TZDwiGDRuFB/MMK3UH+HYrXbhiOCSy5Jh86rglLcZlgIbogx26Q8ogxTjz650QRPXcBGEpBGhd7tAgg6QetBbzbNZkE7D7zunnFOWY8sm8dlAeIHsU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616497795; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=HC9gvc2IjOGWwdSDg953AK6Ut0bh7olOpOzT1tGMb0E=; b=UCA7yn4OzMD6XoBzgLutYgT1M7rnbOQF6TJqi/S4PHO+qTyUX0yKCMYAaVscYjCeLviq9NfYz/yMThO8OTpSXx01sArGk2rlhbtCqqIi9+c3DF7vcSIninDOLNBYPr/HwPrQ1EQBmgvKzjcwJjImLyEHoWj1PA8CatqVEY5bSH4= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1616497795000972.3546322833635; Tue, 23 Mar 2021 04:09:55 -0700 (PDT) Received: from localhost ([::1]:52664 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lOev3-0000xz-PE for importer@patchew.org; Tue, 23 Mar 2021 07:09:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50800) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lOeuK-0000Ja-Ey for qemu-devel@nongnu.org; Tue, 23 Mar 2021 07:09:08 -0400 Received: from mail.ispras.ru ([83.149.199.84]:35668) by eggs.gnu.org with esmtps (TLS1.2:DHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lOeuH-0003yP-7v for qemu-devel@nongnu.org; Tue, 23 Mar 2021 07:09:08 -0400 Received: from [127.0.1.1] (unknown [62.118.151.149]) by mail.ispras.ru (Postfix) with ESMTPSA id 45F8940755F9; Tue, 23 Mar 2021 11:08:54 +0000 (UTC) Subject: [PATCH] qcow2: use external virtual timers From: Pavel Dovgalyuk To: qemu-devel@nongnu.org Date: Tue, 23 Mar 2021 14:08:54 +0300 Message-ID: <161649773401.599835.8362213390558184647.stgit@pasha-ThinkPad-X280> User-Agent: StGit/0.23 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=83.149.199.84; envelope-from=pavel.dovgalyuk@ispras.ru; helo=mail.ispras.ru X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, pbonzini@redhat.com, pavel.dovgalyuk@ispras.ru, mreitz@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Regular virtual timers are used to emulate timings related to vCPU and peripheral states. QCOW2 uses timers to clean the cache. These timers should have external flag. In the opposite case they affect the execution and it can't be recorded and replayed. This patch adds external flag to the timer for qcow2 cache clean. Signed-off-by: Pavel Dovgalyuk Reviewed-by: Paolo Bonzini --- block/qcow2.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/block/qcow2.c b/block/qcow2.c index 0db1227ac9..2fb43c6f7e 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -840,9 +840,10 @@ static void cache_clean_timer_init(BlockDriverState *b= s, AioContext *context) { BDRVQcow2State *s =3D bs->opaque; if (s->cache_clean_interval > 0) { - s->cache_clean_timer =3D aio_timer_new(context, QEMU_CLOCK_VIRTUAL, - SCALE_MS, cache_clean_timer_c= b, - bs); + s->cache_clean_timer =3D + aio_timer_new_with_attrs(context, QEMU_CLOCK_VIRTUAL, + SCALE_MS, QEMU_TIMER_ATTR_EXTERNAL, + cache_clean_timer_cb, bs); timer_mod(s->cache_clean_timer, qemu_clock_get_ms(QEMU_CLOCK_VIRTU= AL) + (int64_t) s->cache_clean_interval * 1000); }