From patchwork Fri Feb 7 15:31:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 862988 Delivered-To: patch@linaro.org Received: by 2002:a5d:4e42:0:b0:385:e875:8a9e with SMTP id r2csp384265wrt; Fri, 7 Feb 2025 07:35:45 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVQSniysdKtCOjMbxO6IB8go8+8EPdIznKDzKOL0oQibaMeCYEq2h3K1jJLFn8qMjiYzFGiKQ==@linaro.org X-Google-Smtp-Source: AGHT+IF4gqfqlvyk1KrnDTgX5QOmBl+hqFVxFsB+gkRPuHqb/XvDD6629AJryfC1Q51A5aal9aji X-Received: by 2002:a05:690c:6d09:b0:6f9:7ce7:b107 with SMTP id 00721157ae682-6f9b29e4ea4mr33502177b3.29.1738942545676; Fri, 07 Feb 2025 07:35:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1738942545; cv=none; d=google.com; s=arc-20240605; b=fd4BRGAYdlYALoED5DqhaDGW2xXlPxHVIrCS8uRFiM84ZpTciCGIzOLrmbqfoJBw4m iYc2xSD6FrEWOfzpMfVqhENVtgOCm/VBS//exsjOooAw/1guwmxYlx/EL5JCq9Xnf+9W sJS/yNep3DIEy+ovxyuveKzROyd9QAnYpxnwSU5WjujeppN0md4pXUsfMgBid7G+emDN u84gtxvNJi9jcTXLzMNwFcbSOnuZ5CiJvC2kyghlj7nYZxj6sCBogXBLD9h5OZLpZP/4 VhITFLvBWNywAsSweBjuJ5KZzOwyk/9ictPVPdFCYRCD4UJ8kfXY9WWI9PHEV9Tx6zWj QJDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=3ShDl4eTjpRUeb9COlaeWxryj/oOTu67dB6IU90OsGA=; fh=09uoDjVTf/D2GxrqAPr7OHKGZ21Li2v1uxYs7VLD4AY=; b=Q6ZkCalxnRp5RNGVejAXatvo6QPNLxPFESCfZLhbu5Ba8V4Et9kmqLIwzzm27TryQH XozHJAFaTf9gjASt/q6WU0QLg9XhN2H7H2uivJyuMkJpx7PYFFbyTshCMVEAp0ShKtMI kaXNmhGzqphBXuNyZJvco8hOnZ+Z9S47ZDtm97PbyKrd/4zJLUbbImabX5k8AxM7Y4gU yO4c6UhofAKTNN3dJZAEpQc2QBDN0C7TGK9onoxP31KjFfD1TXl5CUaa/qv/npLrFgMq kJBKpjjX/9v21B6BJnM2zTn8jzBvf6rWMA5n/M8OeAKhzJiQFRmf34ZGs8t6byPr5+il WLgA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=qN+TLRrM; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 00721157ae682-6f9a0004580si30969707b3.452.2025.02.07.07.35.45 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Feb 2025 07:35:45 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=qN+TLRrM; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tgQLZ-0001J3-Iw; Fri, 07 Feb 2025 10:32:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tgQKM-00089p-Gm for qemu-devel@nongnu.org; Fri, 07 Feb 2025 10:31:37 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tgQKA-00040G-BR for qemu-devel@nongnu.org; Fri, 07 Feb 2025 10:31:33 -0500 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-4361f796586so26526735e9.3 for ; Fri, 07 Feb 2025 07:31:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1738942280; x=1739547080; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3ShDl4eTjpRUeb9COlaeWxryj/oOTu67dB6IU90OsGA=; b=qN+TLRrM+CQ6pbf/o4nNo7t+48evrOK0IR5AIgeH1HehlFaIRMS+lx+9bfIn+hQQUk ONgvmBFV2hsCwsQJKfMZrIJQ9NqR4oaox4muXtl0UJ8XOXDys7n54IS/ddq//tOIC36l 0mVvpq8mVkT4Ki8aOBFGI9UnbIOxUhYB8B530Y2+U6mmmNhiwhIOaxFuWjLQoA+a19Ya /UXRCvk+OvODgGb935bzBhw8js61ETWMuT5acIJLDLjVgx1sPSyxso28kz0kcCssQAgi nM/9mnr7ei7bUfFF/XZI0V5EDkLOn1Kuw0/LZnZxLWIzArberku0eexc5WOvcZUmd5+A JIVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738942280; x=1739547080; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3ShDl4eTjpRUeb9COlaeWxryj/oOTu67dB6IU90OsGA=; b=kxcLHhesNPxs+f8O7PLz5Z0sxII/rVTDT2kf8hcEDGpaOgimah8xS2b1bPqsyO56Gh R1OsN87uzJgH84ebZaynNvE52U5/qjrMXXv6PlqL7i7Reg+gUhco82uj5q2Ua8cxc+Jp C4YmVutN2ogv/tkhzUBjwqcb5RTS8aCuPX8uCj5O3wynSLQYMGhu/UaZrhIM6mgypcnO Vatwb5VQ9xkHnZkUjirx/9/eAB/23+nKYlaW/qLpXV4zURJefR5w8VAwRPqAaPiMgGg6 FD2gYFZyUz86gUBSDYcOCkuVJO9V/WiWEclCoAAeWBO2LIk5rXfHalFEsIN0aPob5A4X 4tYQ== X-Gm-Message-State: AOJu0Yy8HhO56gjfpvvh3tD11OxmchvzE1eslvSXpMD6LelANPQTb8s9 tcxG3yXjNfWhTixksD6SR4NQk7Oj00U2C4qs9VTmR3u+zhops08oOYv10aphpn8= X-Gm-Gg: ASbGncvMEgP3A7a8Su7SeWKBKY5TU9lLZvAnbsagoxoWod3wnLDkVm6CIRccKXCrFeb mmOey5nevkIzdgZWyNjqQRR2395sBPcPEVZYoEAPQEV/d+/gCzgubKng4ArbhbhXorkZ8r5EqQk dh2Q077ItuG6NCUuVyzmVCCCs/E+SHXlZFIvET3hx14v5xKC0w+5Da4WBjj5IxF8urKsBplWl35 Gm1FbOkWUpJ1oTEiSPtYf7jpdaiyVs+vPg92OXWLekLOkpYZz/paIdT5nGErNuP0/miGrVAVyf8 hcGiU1gxShCfjnWT5Q== X-Received: by 2002:a05:600c:1e23:b0:434:a04d:1670 with SMTP id 5b1f17b1804b1-439248c2c07mr44057015e9.0.1738942278829; Fri, 07 Feb 2025 07:31:18 -0800 (PST) Received: from draig.lan ([185.126.160.109]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab79378ee30sm54936666b.160.2025.02.07.07.31.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Feb 2025 07:31:15 -0800 (PST) Received: from draig.lan (localhost [IPv6:::1]) by draig.lan (Postfix) with ESMTP id 016CE5FB89; Fri, 7 Feb 2025 15:31:13 +0000 (GMT) From: =?utf-8?q?Alex_Benn=C3=A9e?= To: qemu-devel@nongnu.org Cc: Peter Xu , =?utf-8?q?Alex_Benn=C3=A9e?= , Thomas Huth , Weiwei Li , qemu-arm@nongnu.org, Nicholas Piggin , Liu Zhiwei , Bin Meng , Tyrone Ting , Hao Wu , Kyle Evans , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Laurent Vivier , Riku Voipio , Harsh Prateek Bora , Fabiano Rosas , Alexandre Iooss , Laurent Vivier , Daniel Henrique Barboza , Warner Losh , Pierrick Bouvier , Palmer Dabbelt , Mahmoud Mandour , qemu-ppc@nongnu.org, Paolo Bonzini , qemu-rust@nongnu.org, qemu-riscv@nongnu.org, Peter Maydell Subject: [PATCH v2 07/17] Revert "util/timer: avoid deadlock when shutting down" Date: Fri, 7 Feb 2025 15:31:02 +0000 Message-Id: <20250207153112.3939799-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250207153112.3939799-1-alex.bennee@linaro.org> References: <20250207153112.3939799-1-alex.bennee@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x331.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org This reverts commit bc02be4508d8753d1f6071b77d10f4661587df6f. Now we catch attempts to clock_step to the next timer when none are enabled we can revert the previous attempt to prevent deadlock. As long as a new target time is given we will move time forward even if no timers will fire. This is desirable for tests which are checking that nothing changes when things are disabled. Previously most tests got away with it because --enable-slirp always has a timer running while the test is active. Signed-off-by: Alex Bennée Reviewed-by: Peter Maydell --- util/qemu-timer.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/util/qemu-timer.c b/util/qemu-timer.c index 0e8a453eaa..3243d2c515 100644 --- a/util/qemu-timer.c +++ b/util/qemu-timer.c @@ -675,17 +675,10 @@ int64_t qemu_clock_advance_virtual_time(int64_t dest) { int64_t clock = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); AioContext *aio_context; - int64_t deadline; - aio_context = qemu_get_aio_context(); - - deadline = qemu_clock_deadline_ns_all(QEMU_CLOCK_VIRTUAL, - QEMU_TIMER_ATTR_ALL); - /* - * A deadline of < 0 indicates this timer is not enabled, so we - * won't get far trying to run it forward. - */ - while (deadline >= 0 && clock < dest) { + while (clock < dest) { + int64_t deadline = qemu_clock_deadline_ns_all(QEMU_CLOCK_VIRTUAL, + QEMU_TIMER_ATTR_ALL); int64_t warp = qemu_soonest_timeout(dest - clock, deadline); qemu_virtual_clock_set_ns(qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + warp); @@ -693,9 +686,6 @@ int64_t qemu_clock_advance_virtual_time(int64_t dest) qemu_clock_run_timers(QEMU_CLOCK_VIRTUAL); timerlist_run_timers(aio_context->tlg.tl[QEMU_CLOCK_VIRTUAL]); clock = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); - - deadline = qemu_clock_deadline_ns_all(QEMU_CLOCK_VIRTUAL, - QEMU_TIMER_ATTR_ALL); } qemu_clock_notify(QEMU_CLOCK_VIRTUAL);