From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768213873; cv=none; d=zohomail.com; s=zohoarc; b=aDZ18Y6S7YSanWOwpTkRxWk2Ndw2hkIkUIKXqJqE4MvUvBOTImYlKlxgkluZx0V0WcARONdPaWi/wm+chfkBL5P34cXAM41pADT8DclIGppPoFBL0ZF34LTv4tctKIhMyGpEIpEKP0aJ5stU61ywZrWQoj0ITt/0V83g+v+s3oQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768213873; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=coZfcJZ/6iboNtDXNLPBr0JOWH2iJ2AVZq4q6R/3X9c=; b=DQKd9h+pLutxMblnQpu05SPdBI5PbVZTLyngFXiGWim0yNnu4lskikNALT+sm76Z9vqyuofZ8iv0zqHa4/iPM31Tfohphht4o4KuMfAJGAdWgoEm/nJeQrQAr/JrAQXq6MIBlvx4mANI4fweZ748npATk9QYMSt4t8TwBTm3VCE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768213873798731.8157717241068; Mon, 12 Jan 2026 02:31:13 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFCW-0000hw-7h; Mon, 12 Jan 2026 05:31:08 -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 1vfFCE-0000PU-60 for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:30:57 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFC9-0001cw-9i for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:30:47 -0500 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-4779ce2a624so51816365e9.2 for ; Mon, 12 Jan 2026 02:30:44 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f65d9f0sm356986665e9.12.2026.01.12.02.30.42 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:30:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213843; x=1768818643; 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=coZfcJZ/6iboNtDXNLPBr0JOWH2iJ2AVZq4q6R/3X9c=; b=B5Uq/XKgBXwL/sBBXdXCkGEaJWr2VWFREz3K7s0lSODnaS0ekOMUB5Ca5jaEd2Q+2d +MAxQEmdkY5cuNJA9KdUZoZzH81Wn+AbEcVkY3kWP2sCffMLfiMsvhbrkJfg5qNhjTbG CRQQTBggrEmlxEFvkOSppb5+ydYjcoI2bQhwommWWPSnj8gwBpE6UxZ/enPV6ww6v5et aikcns2kSOYqfvVK6N6cxqJDkQKrlMdO2DnCaIWY0529UfbUSkpxAv51xgr/9HCxpbkp PDANgaHexjS6RkijY1dU2apeJdDZU/IR+Gf/GqYedVKSUohhOjo2sjvAUFw2x2QCHFMC rWfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213843; x=1768818643; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=coZfcJZ/6iboNtDXNLPBr0JOWH2iJ2AVZq4q6R/3X9c=; b=OwMw0XuIWPq7VTf+dQSMBecAo1Gtzcfo128ma2ewJYMdI8H3HB+M/a50o6WaqAZ/ih r3unXm/ylHMCblXSn4Z/xI826+br+9B2r9yWAtdEJLqLYkxuBXUzHAwmlPmfOTIN7H9b AenHTu8Puur9JMUtCmTwsxlixDlnX7vp1/4krOcw2H57kBY2ljW1xImX2ROVsoQgaCaD lr4vrLCdeu670AYAvNys74rfyBlSHws+LeL9i6i81F5d8QUpoiIIPlml8JesXrxbQn5Y ROx+LMh1l5Q3AQfs/84zKAEywEB+H8ncyxP2Uk1S69O7vyObbFwMO9LgvOKqXJ67UPrS 9n0Q== X-Gm-Message-State: AOJu0Yy97fWsihpd8xKWJTq/pR01KtjlQhdlmPgOddr2Z7ScWKqo3flx +kEXpGeRWq1bvqO3XfSuNQS4/6tj67P2UmeMWQmupc7HkEzqUZ6j3udHO847gLd6MWeWlBtlaIQ i2/qV2PM= X-Gm-Gg: AY/fxX5CibzzIjydtMwK+QLAqw02LnJIonAEpDYvqnjk81w2X6NpdWl+491TBJLbQsF xHLf7qHWlnuQKBF3oxUENJa6ZdSQD8izE7/F0018gbzPmg0jQKRo+97u9zNvS47yPTtxlwFY6Yo VwdNitzdnlyvupP0KRgNxlylaJmZcaAV0n8fmybi4U42xonhAxiDKQ2PgBRYVrF+5/fb8ovzxgv sXYWto3Mlk6Axh5kpLuKyik3Ll/n4R1PYWXNkHsqD33q5apkw86DzovAIRXRHgVrQUaIaFfm9cn 24JddwJ5472o4m5yDV9zyT7P9WFlBtlpDN8wDiGWBmOJfK4hFTheJnixX4uD7JocGbRdehYw+2W YXwYAJmZaynRlisG6W/JbmlBUG4IMHxilqiL8hQPa/j13pAdjVjLVhuUd/z9HDoixYRCrCzLnDL jiT2xucvUSaH8SlH8djK+pmte5NGEdDSVKYa6r0aXJexyhsD1rMxfGJ2GBvHpG X-Google-Smtp-Source: AGHT+IEswK740VpVL/UCsNp9N9yljG87McVTz3t8hqlQTwOPwB43DhhJOUwSmmg+RrCcQ62s0LuFrQ== X-Received: by 2002:a05:600c:3152:b0:47a:940a:c972 with SMTP id 5b1f17b1804b1-47d84b18752mr191302105e9.4.1768213843127; Mon, 12 Jan 2026 02:30:43 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 01/19] accel/hvf: Create hvf_protect_clean_range, hvf_unprotect_dirty_range Date: Mon, 12 Jan 2026 11:30:15 +0100 Message-ID: <20260112103034.65310-2-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::32a; envelope-from=philmd@linaro.org; helo=mail-wm1-x32a.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768213875514158500 From: Richard Henderson Signed-off-by: Richard Henderson Tested-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Akihiko Odaki --- include/system/hvf_int.h | 3 +++ accel/hvf/hvf-all.c | 25 +++++++++++++++++++++++++ accel/hvf/trace-events | 1 + 3 files changed, 29 insertions(+) diff --git a/include/system/hvf_int.h b/include/system/hvf_int.h index 3d2be4092ef..5a57691885f 100644 --- a/include/system/hvf_int.h +++ b/include/system/hvf_int.h @@ -89,6 +89,9 @@ int hvf_arch_get_registers(CPUState *); /* Must be called by the owning thread */ void hvf_arch_update_guest_debug(CPUState *cpu); =20 +void hvf_protect_clean_range(hwaddr addr, size_t size); +void hvf_unprotect_dirty_range(hwaddr addr, size_t size); + struct hvf_sw_breakpoint { vaddr pc; vaddr saved_insn; diff --git a/accel/hvf/hvf-all.c b/accel/hvf/hvf-all.c index 77f4e4e4f30..741b4bdc4fb 100644 --- a/accel/hvf/hvf-all.c +++ b/accel/hvf/hvf-all.c @@ -58,6 +58,31 @@ void assert_hvf_ok_impl(hv_return_t ret, const char *fil= e, unsigned int line, abort(); } =20 +static void do_hv_vm_protect(hwaddr start, size_t size, + hv_memory_flags_t flags) +{ + hv_return_t ret; + + trace_hvf_vm_protect(start, size, flags, + flags & HV_MEMORY_READ ? 'R' : '-', + flags & HV_MEMORY_WRITE ? 'W' : '-', + flags & HV_MEMORY_EXEC ? 'X' : '-'); + + ret =3D hv_vm_protect(start, size, flags); + assert_hvf_ok(ret); +} + +void hvf_protect_clean_range(hwaddr addr, size_t size) +{ + do_hv_vm_protect(addr, size, HV_MEMORY_READ | HV_MEMORY_EXEC); +} + +void hvf_unprotect_dirty_range(hwaddr addr, size_t size) +{ + do_hv_vm_protect(addr, size, + HV_MEMORY_READ | HV_MEMORY_WRITE | HV_MEMORY_EXEC); +} + static int do_hvf_set_memory(hvf_slot *slot, hv_memory_flags_t flags) { struct mac_slot *macslot; diff --git a/accel/hvf/trace-events b/accel/hvf/trace-events index 2fd3e127c74..f989da59492 100644 --- a/accel/hvf/trace-events +++ b/accel/hvf/trace-events @@ -5,3 +5,4 @@ # hvf-accel-ops.c hvf_vm_map(uint64_t paddr, uint64_t size, void *vaddr, uint8_t flags, cons= t char r, const char w, const char e) "paddr:0x%016"PRIx64" size:0x%08"PRIx= 64" vaddr:%p flags:0x%02x/%c%c%c" hvf_vm_unmap(uint64_t paddr, uint64_t size) "paddr:0x%016"PRIx64" size:0x%= 08"PRIx64 +hvf_vm_protect(uint64_t paddr, size_t size, uint8_t flags, const char r, c= onst char w, const char e) "paddr:0x%016"PRIx64" size:0x%08zx flags:0x%02x/= %c%c%c" --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768213877; cv=none; d=zohomail.com; s=zohoarc; b=OIuQdT+q4Q0M8F+WAuRBn8Pk1wwEaP9pH+IAA9lHMKCUwFZQ5SEU/UPXsBcuasEFGgFfMmzc5z/HS1JcOpk4V2tmGKV8s6OHV5ESjkCETXK55MmzUJ1xIXpphUbc0fYs+bTeJK5AUa+41VdwH4zxFCNtIVrAYZ5JXFV5O/fRY/A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768213877; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=iuteZZxP72AdlZG/ZllJpEmgG/znqQ6KfrKPEYlPSPU=; b=U5Vk5lHHPV8mMMGwKUTc2IpB8nx/Mrg4V9ewDqokKCX0wOF/r7OhjnZGaI0GPKBy8qnY0Unb5DrgUovZAgkA7gw+wjev9sf+OUQlEM9g4V5vNqnX51W9oo17m3d1zH9E1ylRyK/qn2u9lRUW1ZvinV+T4P+Yh8dig9hVaIjBqG0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768213877857767.6320938107046; Mon, 12 Jan 2026 02:31:17 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFCX-0000kW-4M; Mon, 12 Jan 2026 05:31:10 -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 1vfFCK-0000Qh-Lp for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:30:58 -0500 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFCH-0001eF-6A for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:30:55 -0500 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-42fb2314eb0so5143101f8f.2 for ; Mon, 12 Jan 2026 02:30:51 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd0e19bfsm37495823f8f.18.2026.01.12.02.30.48 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:30:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213850; x=1768818650; 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=iuteZZxP72AdlZG/ZllJpEmgG/znqQ6KfrKPEYlPSPU=; b=RHIpCqsehl4bge5RejRPLxpoE8U3D9o8Os0ghh2qzGztC5QWXAFrfxU7ldi5Z10eAm 9bn7ny7I+U4KtmXFGfbgoODIa7oBtFJTVlbeoo5ze1eCfLpNtql7au4+dJwtlW//qhdc 11krX4N99bfSnhQX8KTj+qDRXQv84qXHkAyvnH6VUONGljGd4EUmYOFU9tTZcuzp0/pf Glar4sQA1dHxz8QniQMFJZIZjWtY2PV9VW0DmRQXy2jQAJFzXTeSKWprnbZBYTQbGXU/ McMH+butvmsCWMv29s1Xtc6uLKgCnHUjHGDkNKqnzCGKmLd6K4gUAT6zN6ZErLvK9Xg4 Z9Vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213850; x=1768818650; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=iuteZZxP72AdlZG/ZllJpEmgG/znqQ6KfrKPEYlPSPU=; b=XWaqh/EkeAaUBPVpR5CheeNgljFueyozBA4Gaw10sM1UJ5Hxhmhh0OyAKE13KZjJPV ouOexrC7UcyBpz7bOKmKAR2VBaJcdigrDPMymTVKSJCsM5KELftfNWwqw2GcaAyP722p Lyg0ZThCtNAuAK7Oh7CojaskDIazu2l/R68m3+MlJ6xQ01YIi3BV2/m4VoT4F7D5LaRp 41kKZycOPheHlRjfhN129lqlM9Z/31sYwje2VRgeRrB+x7cP23HAd/6F8Hw4fs7JZ0hT UkmmDW1EO4qe0Kwe922kkIsklmF2qaiXKBMLaHTI9z4OFOWK6uQ83od2KarJqdr3Mxwf uHGA== X-Gm-Message-State: AOJu0Yy0jVoTdBzOxTSJeDuIAYtF/SclX+p3WP1Fo1JTEo0NKBnUjZC6 04MDQgKMUzHHWk1ye5ry0dfJAY7F10vAJrvTiNQp7+mNaXjoiDMeAM75rJHBNCbiy9ozE8ghN0p fBaC5lLM= X-Gm-Gg: AY/fxX5qEXOK4UpXqH+yqHqmufDDic5UeGT1FyDFWjtKtwrcpDu9CGmVel+AGZEu7P6 fYiiVrLlbOmzQasCbyClGL+HU1+2pyysyI4GcWo/sTB+qjanWGfdzR5Ts+AIibn8qpyA7PcV5GJ /yxNeR8DEv1AX6NUjwX4aG2ZcH/aADpHvKMeDFbJgu7XUiNpsIdO8mkQdVBF/4ewzynCYcVfwXl +7mndvH90PqJaXxX66JC+Gu5Xi87EQDV3jflRqx/e4fwi/6k8v3HYGYh2ljVIPlNoEasiAva9R6 HLxecq5y8eouSjcrFzOGBPxqhpnOyTQOJjfaQ9tEtoS36/qSB5UIotmG9iqns2gnzO+//ZrFxTS 2R+2Xsq4S8im310maW0f86kf5TVu+HkOs1eL98evJ8rnDrs732sKZg2E9z8T6dxQD716n4MOqUl KSXswcbLZjadc1ML2oipiDjDpChQ4Q5hgGmPtmdjA+7d3OAVHR3i0Tk6SFx/S3 X-Google-Smtp-Source: AGHT+IF3ZTbLdnzutbrVwqWTwnPZgqWmiDXh0eTf7bS3s1GZRQU2C189gzuaYXrsvaFVRd2tv+1gxw== X-Received: by 2002:a05:6000:4313:b0:433:1d30:44c with SMTP id ffacd0b85a97d-4331d3005d3mr1641586f8f.43.1768213849925; Mon, 12 Jan 2026 02:30:49 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 02/19] target/i386/hvf: Use host page alignment in ept_emulation_fault() Date: Mon, 12 Jan 2026 11:30:16 +0100 Message-ID: <20260112103034.65310-3-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::432; envelope-from=philmd@linaro.org; helo=mail-wr1-x432.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768213879735158500 While on x86 the host page size is fixed to 4KB, it is better to call qemu_real_host_page_size() for consistency. Reviewed-by: Peter Maydell Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Akihiko Odaki --- target/i386/hvf/hvf.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c index 2023a7bfbb0..731cd954630 100644 --- a/target/i386/hvf/hvf.c +++ b/target/i386/hvf/hvf.c @@ -76,7 +76,7 @@ #include "qemu/main-loop.h" #include "qemu/accel.h" #include "target/i386/cpu.h" -#include "exec/target_page.h" +#include "exec/cpu-common.h" =20 static Error *invtsc_mig_blocker; =20 @@ -137,9 +137,12 @@ static bool ept_emulation_fault(hvf_slot *slot, uint64= _t gpa, uint64_t ept_qual) =20 if (write && slot) { if (slot->flags & HVF_SLOT_LOG) { - uint64_t dirty_page_start =3D gpa & ~(TARGET_PAGE_SIZE - 1u); + uintptr_t page_size =3D qemu_real_host_page_size(); + intptr_t page_mask =3D -(intptr_t)page_size; + uint64_t dirty_page_start =3D gpa & page_mask; + memory_region_set_dirty(slot->region, gpa - slot->start, 1); - hv_vm_protect(dirty_page_start, TARGET_PAGE_SIZE, + hv_vm_protect(dirty_page_start, page_size, HV_MEMORY_READ | HV_MEMORY_WRITE | HV_MEMORY_EXE= C); } } --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768213930; cv=none; d=zohomail.com; s=zohoarc; b=lj8Etp5BnV9UTWtFFQl4EmjQhPSlT5M9LmOFO+zx+o1bWvYPWfIetUZlvDG0gP3b0dqXz1wO6LBlOebBu8eftT52dKbQWvnzTRragJdWzOVXXQv0ZcwKdKdu67JeTcZP92KQRYv9qE04MxvtqGyDhcw4ImLJ3hfZWm8J1Ia+cTI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768213930; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=H3X0GR+B2otc1rW8rlwOeUFhaPiJB8m0oagpWA1qY28=; b=DutKT06DXfcwaQZ946fsIddhlLt0oo/W8jRtsyN0uYa/m85qFQF7FM6lTxM0pwq+TtJ3M8Fd87KLd0kBcdmHqFRSM7+XWLOOr9P9tRajeqD/x1kkjH32BsCN6UoO9fa0ILkR4/RHWyldXFO7aRH5QI557EGS9I6lN4IwoCYcM98= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768213930654284.43393439672684; Mon, 12 Jan 2026 02:32:10 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFCZ-0000qO-3W; Mon, 12 Jan 2026 05:31:11 -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 1vfFCO-0000ST-00 for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:00 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFCM-0001fG-Kr for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:30:59 -0500 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-477a219dbcaso49517905e9.3 for ; Mon, 12 Jan 2026 02:30:58 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f390a69sm344395805e9.0.2026.01.12.02.30.55 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:30:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213857; x=1768818657; 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=H3X0GR+B2otc1rW8rlwOeUFhaPiJB8m0oagpWA1qY28=; b=xFocQHkmoYj9qKUB3tOpTqVBr2JmtI8ZagcKw07BoF286ZeWdjzqNApkRyi1yGhsKM yqWZ11Ti+f7BmXHIL82eyKyzltAfoujdMbhQvE1WPHxqcPFy8cgh3+9233uKxAN8QoKe Lhu4D4SKD1K4t8PeZk6e3KEBZT4CB362Z1NDW/AG69TKwu7Mz9g32QHNdo+m4IkefDwo GJ5dWEdvXzS2HoMuqPLx7QryeH9ZfJOs2T0LJy8STqxDjf6gC5HHw6yqebrga/1RzPtl r3WmrxaQlQZxgPw8dsYBQBpiXSFoGHfOLpifYblH9b9oshrOui5YimxsqUZWnp4xJJMH 6hSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213857; x=1768818657; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=H3X0GR+B2otc1rW8rlwOeUFhaPiJB8m0oagpWA1qY28=; b=RsKoh9dOLc8Iysncdjl6qb5kPIHK2UC+Abx7DZzc94F1KaPbMprLWo+5R6hqpdF+Fl EJurf79gwrmDTCjTM3/WIa2DakCqkQ6Dvx9vdFJONKqxg9QdwjfljnkD4pvTK76OlKDS TNn+u6NFOZg7J//DgQ/CqdMzBmv+c7h1TEb3Cg+p6t+iY8HBqjvWbgBep6YqEz2aVBnS FEOot71e54WYofyd0GDrCSdlaDWAJ6w7SQ5yrZX/Q7m2SSRoLusjPeq3MEHL3hmjO7bo yCpETl2fY0j3jVrg+LvXUmfsEXc1xuNJPIDWStfVNXQgpzOmjZ2Lm4B/u77qYwwX1x1k IlTQ== X-Gm-Message-State: AOJu0YxTAKtBNOIdZSzwyrhNxQtIgAGk470LvzkzDjEQNzTTcqcmHTXM 5ATfSkH90ZTESFWURvCjLzCbuUn0gxTR2QP1/vEqjd714Wbari6V+ZLlA0iwuIKCHAkv6aSuYvs 6RTwx0/Y= X-Gm-Gg: AY/fxX4ByjmO4Ny7hxGO5y1M3l0vzmkSkvHWcAAjtOPbONT0Edz7g69tFjViqyK02rh agvqQtG6pYPmUMq1TFP0ddU/9FiJIJS3Xh0KNg4qHYZOUixCCdBergmwcMsDEsfiCJz0qxRQbkz YgSNe0j8JnKLdEN54rXdHkBdnxghh3WI9D3V60abUZGnZYcVAU32xYlIsTW0nSVxIcxXb5Q0dIE 1XFl+oR00CftFjVvunPDQg0fiRGeDOxLgEk9ZLgZn8qG1DqMeCTXT0ZEdLgc8Vvq6+jJLo3nH9l 8sY3kzRqkTOdwF9atPMs8YTtS9yuT2XdBUsDODv/Wsk1NlH2VI1jXLv9T2bKEEuV7H4rqSuS2GU rUtOJJZlwiXKF45uj7WonCxj4RcQRaiOAsyKq9d7ZTmyaS3YiRROWCD/KI8Nuh39CyQXmZG79Nj L4Uskyg7IwyPDoh6brxkoJQewcAb1vw3Ud+PvRiMUP0EFvtqrCu9gXWfxi6U85 X-Google-Smtp-Source: AGHT+IFbKbnEf2NM+CS2WX0qs3UxMFPG5JVd637/0T5NzdVh6xT8T/RclQ5ZvnsYnVPhfhSpHnC/Jg== X-Received: by 2002:a05:600c:470c:b0:477:557b:691d with SMTP id 5b1f17b1804b1-47d84b39d1cmr183517455e9.25.1768213856716; Mon, 12 Jan 2026 02:30:56 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 03/19] accel/hvf: Enforce host alignment in hv_vm_protect() Date: Mon, 12 Jan 2026 11:30:17 +0100 Message-ID: <20260112103034.65310-4-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::32a; envelope-from=philmd@linaro.org; helo=mail-wm1-x32a.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768213931260158500 hv_vm_protect() arguments must be aligned to host page. Suggested-by: Richard Henderson Reviewed-by: Peter Maydell Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Akihiko Odaki --- accel/hvf/hvf-all.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/accel/hvf/hvf-all.c b/accel/hvf/hvf-all.c index 741b4bdc4fb..96ed79108a6 100644 --- a/accel/hvf/hvf-all.c +++ b/accel/hvf/hvf-all.c @@ -11,6 +11,7 @@ #include "qemu/osdep.h" #include "qemu/error-report.h" #include "accel/accel-ops.h" +#include "exec/cpu-common.h" #include "system/address-spaces.h" #include "system/memory.h" #include "system/hvf.h" @@ -61,12 +62,15 @@ void assert_hvf_ok_impl(hv_return_t ret, const char *fi= le, unsigned int line, static void do_hv_vm_protect(hwaddr start, size_t size, hv_memory_flags_t flags) { + intptr_t page_mask =3D qemu_real_host_page_mask(); hv_return_t ret; =20 trace_hvf_vm_protect(start, size, flags, flags & HV_MEMORY_READ ? 'R' : '-', flags & HV_MEMORY_WRITE ? 'W' : '-', flags & HV_MEMORY_EXEC ? 'X' : '-'); + g_assert(!((uintptr_t)start & ~page_mask)); + g_assert(!(size & ~page_mask)); =20 ret =3D hv_vm_protect(start, size, flags); assert_hvf_ok(ret); --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768213900; cv=none; d=zohomail.com; s=zohoarc; b=OynQCAZVV47prhNCm/mW5oRqxECY7EzAYvGgJjBBdw7Ai5OX/TZ0iEBHQ6rR0tDvVXSxXXBouLtcBrwVk4lhKO3G9LhtMhHS1GPSVdlTS8AlCuSHOB4+t5vxfM5puSbsUHDuf3X5ETrzpK3x/u4lxy3PwdhtghOikyf4YckBsfQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768213900; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=sdxPWV01/6nmJEhYXTQC44DzHogM6aeRuubkA7qkB3I=; b=FcKEFEvD1PGnXFSWC/Kxafdox3RLEXHpHGyvgDC6YehXt0qnWO+yv2tD6bVPaqM9WO5AWUEGApPcyeJikzTBHlNtF5yG1SE38mpVhgLvCrGeAdTgHl/xWmgYCNm0DFJooX9dJTQZbnJ3Hle8YIoXL5oxoRjUJLOjoB3AgbybHZo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768213900786180.2920453136462; Mon, 12 Jan 2026 02:31:40 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFCY-0000pJ-Ul; Mon, 12 Jan 2026 05:31:10 -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 1vfFCV-0000fF-52 for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:07 -0500 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFCT-0001g4-LH for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:06 -0500 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-4775ae77516so68869635e9.1 for ; Mon, 12 Jan 2026 02:31:05 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f390a69sm344400635e9.0.2026.01.12.02.31.02 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:31:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213863; x=1768818663; 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=sdxPWV01/6nmJEhYXTQC44DzHogM6aeRuubkA7qkB3I=; b=s9LiGzaOTTUg0sj8xF6Vj2FoMQaUrjuHMH6CEyuTWQhCF4ax+FeA87kc0trIochtMJ Z6B+3w/NjSNQP/iUtkmXAFmwJVPepMA/ZSfu+jaBSp2BWpLpDZyF6Y9viKbwgZO8YsbW 59QUkSqdRoEuW4OcEqevjdndh/Qmcxp9qhNPWn8groM5W7jaTocWqKkWUpVIgCZzh3f4 PH4tcxQHdD4hKXrt87hsgv9hkXZk83oG0TmDFAbIAMSZYGpfLAgV8LmIfPW8/5bpFkyC 5kyKInVTeb7cNbDnrK+HKNKJBBtr6dojwMx7IZBe8tJl/JO0w1rb+AtGhmBnY/4KvBlW AShg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213863; x=1768818663; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=sdxPWV01/6nmJEhYXTQC44DzHogM6aeRuubkA7qkB3I=; b=ezkKrNYV6olfWe7I8BnC3T7oNLzEnwSK9KVHGYk6wAZOASXiJqtfu1U6Lfzq5OXJbp JxWiqUs+VzwHb7voo588woidxW6Qck7dzBQwdVUvGN2yikkG/ENswfY72XXMu4LldTJp UjfChe3UHuTog2+1xJ7q+ENxNHYjbzlWqQkHn84UOMYY8YMXSoV1Y9sQAMerNuaG9D2y f9t6Qx6mwbPFjHd291ZDBi7MvLIgmeZ7RTVU6plvqNkJLZO4U169b4d0IE7rEHArffro qt1ngc1wOdQ3WdZm3H/r+9Alq+Mnlpc81NBZtjFZynsS+O0X9q+RC3j006RRWMjzs9Ur mT2w== X-Gm-Message-State: AOJu0YxwIBkuL9WkUlRvXbLVBdFfUJKSZZBcyp98PQZ+8CdCBeSAKWNC nY7p3dk0DwZp9S1pyxJMqMwY36kYIJAUVybQQqhnWLLaN9K67QKHXDDsu552D+ieK4GttdaUMGU +Gg3Mn3s= X-Gm-Gg: AY/fxX5ryAfiRrkevusWMqsTfsqO0fQ6K34/St9Bdb52NkNSBk2eVYCMba2jimwbDVr CwQMb3vv9psC7dcYLuqJqGTlxWYHTyODkYGMgOcI4yWBaP+Klipeu3WWe7QYlxuW3ijVR+Btsy3 iXn7/dppWBRKw13MkcoBDiZEdjGDSkw78uT2TLzuXuAj+PHitcCbVpcZX34UMes7MD9NHAPQW/Z S+vDZaEoCjTNxPF0FGJDd6w4PHWKcJGkU4Ua9WoKhaTnA2pNp6SppCqEbggbLONvNoJTdNW+roV DDlywlLh+3BGx4Bw/0uAXZkxZ/bSrk+uOBG1gzZuFV1zC3S+jyURbXcR7soH4IMHcNRu7svJYQq SlG4C6lPslvrjbuf4Amfpl5jE3cout3lnGPNOH//AwGafCOGVL9egLmsiXywv4x3WVAP/Cf5GTv DEVY/DoaP2APWy3/FZHVHFJgJ/sV8mhmUp4S1fNTBZO1+SJ+uKDX9n2JxjvnfA X-Google-Smtp-Source: AGHT+IGW/uS96/6kTtHUuZ1heBSX/hPA0wMfZihSjWAG/nFtfzwmyfRFPLTg+jz0Q9fvgJX4YgUYfg== X-Received: by 2002:a05:600c:83c9:b0:45d:5c71:769a with SMTP id 5b1f17b1804b1-47d84b3b650mr194319305e9.26.1768213863556; Mon, 12 Jan 2026 02:31:03 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 04/19] target/i386/hvf: Use hvf_unprotect_dirty_range Date: Mon, 12 Jan 2026 11:30:18 +0100 Message-ID: <20260112103034.65310-5-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::333; envelope-from=philmd@linaro.org; helo=mail-wm1-x333.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768213903280158500 From: Richard Henderson Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Akihiko Odaki --- target/i386/hvf/hvf.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c index 731cd954630..1610000d9ca 100644 --- a/target/i386/hvf/hvf.c +++ b/target/i386/hvf/hvf.c @@ -142,8 +142,7 @@ static bool ept_emulation_fault(hvf_slot *slot, uint64_= t gpa, uint64_t ept_qual) uint64_t dirty_page_start =3D gpa & page_mask; =20 memory_region_set_dirty(slot->region, gpa - slot->start, 1); - hv_vm_protect(dirty_page_start, page_size, - HV_MEMORY_READ | HV_MEMORY_WRITE | HV_MEMORY_EXE= C); + hvf_unprotect_dirty_range(dirty_page_start, page_size); } } =20 --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768214005; cv=none; d=zohomail.com; s=zohoarc; b=EmRLPn+PVC0zwClLn4d9x/TgowVBqdpLLSXnFoy8vuFkXh9qpHKpw7T3uISectXhrdXeMAYLdb78tmNRzwlMZ+u0MlgRhKi941wsRtTMHPdVpyy3ieXC7e3Ood9gR3tGXpdYPo+vdZLt2i14ctnYtyunDSthjcd0jtEBK+CZKyE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768214005; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=CXbd4IKEO7Yjpowq+VWguY9db9jI9msI2RfrvzCs7NU=; b=LzrsLmbmS9ZzvAeI4R3/2zNU/MjzB2hehYrrQf/Zuos/uZq3uFfK2WPxjmjNtV+n4BdiNTlBx43/E1OFbTugpr1Zh+YhuCYttv/xMzdQ40Bbu1GUWqHcTUvLgVqKQjR4L8M1+8vAzcTpoPwXKwdywqPKIGlVJU8rmfVYRTc17mI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176821400545178.63336666782868; Mon, 12 Jan 2026 02:33:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFCd-00013I-Ne; Mon, 12 Jan 2026 05:31:15 -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 1vfFCc-0000zY-CC for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:14 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFCa-0001hA-QU for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:14 -0500 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-42fbc3056afso3515695f8f.2 for ; Mon, 12 Jan 2026 02:31:12 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432d9610671sm20189887f8f.34.2026.01.12.02.31.09 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:31:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213870; x=1768818670; 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=CXbd4IKEO7Yjpowq+VWguY9db9jI9msI2RfrvzCs7NU=; b=VpFOxpviNZLGwr8rg3SM0PmDB+Vikp4WlAatwbInqU/Tx8HK+DSOG3BWMTtpHJHnOe 8rsxXcgZXUbswughuktmbI0RQIvBtvKPkuoLU49teUisAiIuOnqtsUaLPAzKLqjoD6Bj vv5p5oPNhjngCuLfKZcgrwhWMXEL4NEviRuF3dWkefWuXsP5UHxoAEeFpZndLc9f4RrQ 74Lrdz0nXiYWeUaw07JUvKanJ7BALF/VzPrTGJQlZerZ8XoTVD7e2+A2wCuXERFom9Pd 8/9XL/8sHGAoJxQ86RlSFwIwrImGYADxCrz7soTx66pKCevwiBfz/OtQXGjFwFI9SVbJ mq1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213870; x=1768818670; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=CXbd4IKEO7Yjpowq+VWguY9db9jI9msI2RfrvzCs7NU=; b=i4QUWNHlVr73Fp30z1azaMzeh6mi7q5iYVg45vbK2/VE50OxlthGhkWeH4OpNSxJcf AG5+sNGiuv5Q4J9ndleEzpC1z/N9nIW3oLeC0pQL7RSs0VV9/6goKR6kyGZA5AEVUCTq MiO6g/udtvyImszBo7QyUuBVSOMvEDZ/IueeqEbPZBjRSr+RXR8DVoyMjHAeUxswF7GJ 69S5HQt9609exEVelgHrmkeiHmM7gtUpEmcUrjJ3SvCFi1c70rjVMjZ/QUNlnUMYreQR dOT8kyFe5YryjM5h+MiT61aaOIy6BPQBtL752EWA5QtyA39pbhraP977U7ojYsW7cQ+q /4hw== X-Gm-Message-State: AOJu0YxsUmWUVq3aMgVOmdDdYQsxkOuMynQnAF+C35osscHx3/73Xe5U lJjCR2KakmRhYbQlRnpcvpEKpa56YhEth6ObIvg+52MEa8fgJcwEhLRbl//kdAZMzvFkAabmT/D QNsoWqTU= X-Gm-Gg: AY/fxX7zW+NcJfyk0qABhkVkJUFosMkruPk2NspyPM48ExUNbzYMtnJQAXe56zLdH0q HoAZNjuiiIXVNUPlaaLDsvx3bf2Y3hFfo9vCzUwo+kAP24QwSZ9ub28eFz6QqPFQ4rLLi6i5NF/ hVBT6rO2tr6zbCUubd3hnm2V6fQ5ATlq55wIgXwwLTqmbNQwXnoeIMPZ0Elw6LkfBZe/1y7JTh/ 1J16YO/Kk0T8mGClZS7mFB7ANIVfVDNDShTFDauh9fLJ4hibewH3Lqp3mQ6Ff8OLOmdwqwjtcOM JcEoS/gmMEyoORMNa0CMrhwooHCRNX75GBn9TxlOIfYjPYL0cIUY1AzatG4uwprwCjxghxF9mel q6uUKremRV2lUyN15yuOsYpryv+5b34LsE1CmApJWEGGgNuugrq/boTn7cgAZcT/dv1kaQXLgUj OGmy+vq+u3kFygP3WJADyVuMV6s7J+gx6oO5eIgg4LeJ1b4h1rpJ9vbGhn+uL6 X-Google-Smtp-Source: AGHT+IEjcypaFFeEkp9bj/xQCnQ7dKTD0qxZvP201i+RQFNCuzf0fZBezE939nGdivjjpC1gkSHxlw== X-Received: by 2002:a05:6000:2410:b0:430:f58d:40cf with SMTP id ffacd0b85a97d-432c3633514mr18598022f8f.16.1768213870400; Mon, 12 Jan 2026 02:31:10 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 05/19] target/i386/hvf: Use address_space_translate in ept_emulation_fault Date: Mon, 12 Jan 2026 11:30:19 +0100 Message-ID: <20260112103034.65310-6-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::42b; envelope-from=philmd@linaro.org; helo=mail-wr1-x42b.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768214007459158500 From: Richard Henderson The hvf_slot structure is a poor replacement for properly looking up a memory region in the address space. Use memory_region_get_dirty_log_mask instead of HVF_SLOT_LOG. Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Akihiko Odaki --- target/i386/hvf/hvf.c | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c index 1610000d9ca..e3e54c10bd5 100644 --- a/target/i386/hvf/hvf.c +++ b/target/i386/hvf/hvf.c @@ -119,9 +119,12 @@ void hvf_handle_io(CPUState *env, uint16_t port, void = *buffer, } } =20 -static bool ept_emulation_fault(hvf_slot *slot, uint64_t gpa, uint64_t ept= _qual) +static bool ept_emulation_fault(CPUState *cs, uint64_t gpa, uint64_t ept_q= ual) { - int read, write; + bool read, write; + MemoryRegion *mr; + hwaddr gpa_page =3D gpa & qemu_real_host_page_mask(); + hwaddr xlat; =20 /* EPT fault on an instruction fetch doesn't make sense here */ if (ept_qual & EPT_VIOLATION_INST_FETCH) { @@ -129,21 +132,22 @@ static bool ept_emulation_fault(hvf_slot *slot, uint6= 4_t gpa, uint64_t ept_qual) } =20 /* EPT fault must be a read fault or a write fault */ - read =3D ept_qual & EPT_VIOLATION_DATA_READ ? 1 : 0; - write =3D ept_qual & EPT_VIOLATION_DATA_WRITE ? 1 : 0; - if ((read | write) =3D=3D 0) { + read =3D ept_qual & EPT_VIOLATION_DATA_READ; + write =3D ept_qual & EPT_VIOLATION_DATA_WRITE; + if (!read && !write) { return false; } =20 - if (write && slot) { - if (slot->flags & HVF_SLOT_LOG) { - uintptr_t page_size =3D qemu_real_host_page_size(); - intptr_t page_mask =3D -(intptr_t)page_size; - uint64_t dirty_page_start =3D gpa & page_mask; + mr =3D address_space_translate(cpu_get_address_space(cs, X86ASIdx_MEM), + gpa_page, &xlat, NULL, write, + MEMTXATTRS_UNSPECIFIED); =20 - memory_region_set_dirty(slot->region, gpa - slot->start, 1); - hvf_unprotect_dirty_range(dirty_page_start, page_size); - } + /* Handle dirty page logging for ram. */ + if (write && memory_region_get_dirty_log_mask(mr)) { + uintptr_t page_size =3D qemu_real_host_page_size(); + + memory_region_set_dirty(mr, gpa_page + xlat, page_size); + hvf_unprotect_dirty_range(gpa_page, page_size); } =20 /* @@ -156,9 +160,6 @@ static bool ept_emulation_fault(hvf_slot *slot, uint64_= t gpa, uint64_t ept_qual) return false; } =20 - if (!slot) { - return true; - } if (!memory_region_is_ram(slot->region) && !(read && memory_region_is_romd(slot->region))) { return true; @@ -765,7 +766,6 @@ static int hvf_handle_vmexit(CPUState *cpu) /* Need to check if MMIO or unmapped fault */ case EXIT_REASON_EPT_FAULT: { - hvf_slot *slot; uint64_t gpa =3D rvmcs(cpu->accel->fd, VMCS_GUEST_PHYSICAL_ADDRESS= ); =20 if (((idtvec_info & VMCS_IDT_VEC_VALID) =3D=3D 0) && @@ -773,9 +773,8 @@ static int hvf_handle_vmexit(CPUState *cpu) vmx_set_nmi_blocking(cpu); } =20 - slot =3D hvf_find_overlap_slot(gpa, 1); /* mmio */ - if (ept_emulation_fault(slot, gpa, exit_qual)) { + if (ept_emulation_fault(cpu, gpa, exit_qual)) { struct x86_decode decode; =20 hvf_load_regs(cpu); --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768213936; cv=none; d=zohomail.com; s=zohoarc; b=MuFqXQCWYD59FcC6PYZzRUWzBNztsB9t0gDnJnRobI99bSBqM0Mpa9DU9InzmV6ULtRyA6RPPYdlRky6uTCXRECVTa2ip8oRl41tlxcmO1mJUkoNrNf+8De454s70UnYKfwAyEHfwQgjyL+n4cLBy1INI7M4HYxxZHNXfUl7WKQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768213936; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=NpoVoyzKEMQOQOPpAUew9Gr5OoFiq3RIGI/UbsfUcDU=; b=C6xy1NLUo86LPb0aypknAQ2O6CTD917U3qcfkcdqe83ehcyEQRU1nqnacG2vNpXKV0mqcyNJqlybFUKS4KXM568x3Uj/t3A6EJNQF2AkrPqxmaLByg7xVcrAMGXiNfjUvSsyidMNUoPAmwQhUznP0MWiCw3hBjtqGB+uhDTA9W4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768213936417785.3101980245558; Mon, 12 Jan 2026 02:32:16 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFDI-0001Uc-6O; Mon, 12 Jan 2026 05:31:56 -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 1vfFCi-00019x-MB for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:22 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFCg-0001iA-Ut for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:20 -0500 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-477632b0621so38631125e9.2 for ; Mon, 12 Jan 2026 02:31:18 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f41f5e0sm340958915e9.8.2026.01.12.02.31.16 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:31:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213877; x=1768818677; 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=NpoVoyzKEMQOQOPpAUew9Gr5OoFiq3RIGI/UbsfUcDU=; b=W3EjPgWMTLckJMcOAoOX4DZw2vpEyVumMOLH9MVWiNkPVOB4CmSDaExEJ5V8oaUFDI 9VnETgTANXgIaNbBzfTR2/VORfpYz60DxRxrao6Vf4FT4kAzwBMzdcGpys0KDzdpuTWt keSeCoE2v2nhxWhbLiG14R/l02wakirC2lNbMQsPBD2IhDR2Tj6L+n5ueeuW3zcbunuE JUHNDwjFFro+psv+AC993EQSPg47gBM9ctm8ntGsjLNmvm3qNg/x4QmAo8Tgp3WJzHt2 zFf9xOz2jbt1irdEfeSNx2SbIlYdXngS7dhywnB1ZDhh96muwJ54v9c8R/g0Ohf4AQR5 PP1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213877; x=1768818677; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=NpoVoyzKEMQOQOPpAUew9Gr5OoFiq3RIGI/UbsfUcDU=; b=dUQjOZVdrSLu0QiGJh8p/8UcimEn1pX1Rn3eEbgFem4pkhHUomTM3DB1m5g2Kyme0R FzeIUXHPU11tUNzXcvvq800Tt7fEbkPpfsiNsP0lNUw5M4XQBj9URpBjrE0gksBDYXwC oLHwDCKIlwRNq1TUTT6QeHIZD+935NjrsF04GO5SAB8Fxj1y9SqwGl74P7K9vm7yFuZm 1v2zJDwRI/Eeu89CHmlUDdk06YwnJU8/iF+YSFcSwQqhXgLYT6WvfkZKvfegmAh1R/IJ hpUBWQkSdGSrkx8u7PgQcaH5M8sRa6vtTheGz4KRD7mqgh9sCSmP3Q3umEX4JkckMbAB O70w== X-Gm-Message-State: AOJu0YzMWfU3LxzVPJC5ELS4xmvS1Fj4NBV9FMdnhraWJCruW0wqfypF KAhdp39EJU+/zRgZ8ObVgCUDW+PruhZuiNhgvL1xc9fHYyueyxRUGnxhZx1pwuMfPXNV04Gl85a 1sxuycAU= X-Gm-Gg: AY/fxX4PReQcphw+MwELiyPmQeih96aSa+QvwVxF9uYiSzGj6oHT2Mok2+nNxnWnfUc /JyeN/d2VaK+SWWO8B674svg7QeAgAY8ixOJnPGrP3YO+HHKZW09CYpC6rCgvsOGzHjoQYMlwfQ 3TKXMx/zq0mOjD0GAd4DqP8JeeUkIelZszDkFOHcU8t5NErS6Y+VWr5PcvxLjsWUE4nFKQzHu8h UvBa1O/OteC1/hUAFjFAd1WWUoK/gE7zryvM8QJHZxXV6TLIXRaXnSo1ct6alcAzk0e81n9akQb B4D8OeZzZw1kFNLdEGdRLdUx48pcyf+DtDr7BErorC39/Qw3sD6fY8faWOHWf/6BX1KKPbTSxmb nuPprS70oIWSXaG/BImWr3pXBR5TrWYh417y9rSY5jWN0wnWJ3IHyFx7NUWwIUtDtdNW1GyuVSb KBiuKSedgFSiTh2UCHeu9GcN0NswDC6yGML0+5MjtCh3A6fWa0yo98+mMv1FMR X-Google-Smtp-Source: AGHT+IHi4hPEIeeCHvq5wDFHBvggzMvh+mlDjUUsbZKxfKK4A//iWzyjZqq1WMJULSisnocro/NlfA== X-Received: by 2002:a05:600c:1e1c:b0:477:58af:a91d with SMTP id 5b1f17b1804b1-47d84b0aa4bmr173588495e9.5.1768213877182; Mon, 12 Jan 2026 02:31:17 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 06/19] accel/hvf: Simplify hvf_log_* Date: Mon, 12 Jan 2026 11:30:20 +0100 Message-ID: <20260112103034.65310-7-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::32a; envelope-from=philmd@linaro.org; helo=mail-wm1-x32a.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=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768213937411158500 From: Richard Henderson Rely on the AddressSpace and MemoryRegion structures rather than hvf_slot. Signed-off-by: Richard Henderson Tested-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Akihiko Odaki --- include/system/hvf_int.h | 3 --- accel/hvf/hvf-all.c | 40 ++++++++++------------------------------ 2 files changed, 10 insertions(+), 33 deletions(-) diff --git a/include/system/hvf_int.h b/include/system/hvf_int.h index 5a57691885f..ee7ab689f45 100644 --- a/include/system/hvf_int.h +++ b/include/system/hvf_int.h @@ -24,9 +24,6 @@ typedef hv_vcpu_t hvf_vcpuid; typedef hv_vcpuid_t hvf_vcpuid; #endif =20 -/* hvf_slot flags */ -#define HVF_SLOT_LOG (1 << 0) - typedef struct hvf_slot { uint64_t start; uint64_t size; diff --git a/accel/hvf/hvf-all.c b/accel/hvf/hvf-all.c index 96ed79108a6..bbb0403d246 100644 --- a/accel/hvf/hvf-all.c +++ b/accel/hvf/hvf-all.c @@ -204,45 +204,24 @@ static void hvf_set_phys_mem(MemoryRegionSection *sec= tion, bool add) } } =20 -static void hvf_set_dirty_tracking(MemoryRegionSection *section, bool on) -{ - hvf_slot *slot; - - slot =3D hvf_find_overlap_slot( - section->offset_within_address_space, - int128_get64(section->size)); - - /* protect region against writes; begin tracking it */ - if (on) { - slot->flags |=3D HVF_SLOT_LOG; - hv_vm_protect((uintptr_t)slot->start, (size_t)slot->size, - HV_MEMORY_READ | HV_MEMORY_EXEC); - /* stop tracking region*/ - } else { - slot->flags &=3D ~HVF_SLOT_LOG; - hv_vm_protect((uintptr_t)slot->start, (size_t)slot->size, - HV_MEMORY_READ | HV_MEMORY_WRITE | HV_MEMORY_EXEC); - } -} - static void hvf_log_start(MemoryListener *listener, MemoryRegionSection *section, int old, int new) { - if (old !=3D 0) { - return; + assert(new !=3D 0); + if (old =3D=3D 0) { + hvf_protect_clean_range(section->offset_within_address_space, + int128_get64(section->size)); } - - hvf_set_dirty_tracking(section, 1); } =20 static void hvf_log_stop(MemoryListener *listener, MemoryRegionSection *section, int old, int new) { - if (new !=3D 0) { - return; + assert(old !=3D 0); + if (new =3D=3D 0) { + hvf_unprotect_dirty_range(section->offset_within_address_space, + int128_get64(section->size)); } - - hvf_set_dirty_tracking(section, 0); } =20 static void hvf_log_sync(MemoryListener *listener, @@ -252,7 +231,8 @@ static void hvf_log_sync(MemoryListener *listener, * sync of dirty pages is handled elsewhere; just make sure we keep * tracking the region. */ - hvf_set_dirty_tracking(section, 1); + hvf_protect_clean_range(section->offset_within_address_space, + int128_get64(section->size)); } =20 static void hvf_region_add(MemoryListener *listener, --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768213937; cv=none; d=zohomail.com; s=zohoarc; b=MynDN2q+/9pQfd1KuiiRzc64poH6HEQuTTyRa7csvawR4X8YBtK2UdLpTcqN4teOBRD5FXR4b7lKmgBLMfZfCil6x7wIExlWsZhwhWhp0WU9U+ar/46DW/7G5gR6xUGI15/2eVkW10rcrs47SaNwd3lrdgVCDxariqrJAnZHiKM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768213937; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ixr5nOWVnk0SPmYmo1QPQQYqq1YV3cCKo8OoOb8Zakc=; b=NXSR37MMSbBuxOBpgYQJSeQMmPzlrzcWt8dsu4d7JKQKrEZWvbWOMIktImtyIjTT2Ln/RSFNcO9Nw1UnEFk90MWYooJJSnZOlcKo83MDFtl1ud/ZcBcmETQAEuTR/FO4bA4KyPfKAeVzcyDQUN1nv1HdC/OBw0YCHtmb8Exdu2w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176821393768996.05087189673236; Mon, 12 Jan 2026 02:32:17 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFDJ-0001g8-G2; Mon, 12 Jan 2026 05:31:57 -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 1vfFCr-0001KF-Ms for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:40 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFCn-0001it-Px for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:27 -0500 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-47d6a1f08bbso24966055e9.2 for ; Mon, 12 Jan 2026 02:31:25 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f410c6csm360206035e9.1.2026.01.12.02.31.23 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:31:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213884; x=1768818684; 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=ixr5nOWVnk0SPmYmo1QPQQYqq1YV3cCKo8OoOb8Zakc=; b=G5ZhiVn3wlCqEC2oqpjUUPTi2zxfVKd5/R+saaL7+fFXYxSsot6xORB/Fb/KKjlEA4 E//t1oXJJ1hFzbcYZdIe2xQv6UIf5kWjd5Btulj4FewyhanA5/RWBoPk4APbXw6YX2mI ghJzXEtn+k0Xa/0W3O6Q4Vn/RiyUTynXALZQh0KWIn/ctz9EQxf+0s2tYVrQp+BsIjWf dwRkIewiEZVYJt5F02WqYHD0+dmBb17tRwRCbIaTbTh6JDRWY3csq3pfyhwY3YUJjYmG fnE6OGCp+JI6XsRHxIdzyBTxCdRmRKd6sBwN/K/grmBm6/YdR9W2rRhd3Emv9boYBOee +kWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213884; x=1768818684; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ixr5nOWVnk0SPmYmo1QPQQYqq1YV3cCKo8OoOb8Zakc=; b=psBNOIitq7dOVvDM2hss2Top5PzkR/RzW8+H0a19bTKTB6SwsAJvnGd1mk2yK272sk YB7e2A4mCiOOlt0YcGtULoBJanEQ09vZxPEEP63oAz0fg2I+a2tcJynDwk0hV6CPhGX5 OAn1zcEdkFtE9LQBBkaVRSHC9BYVTDI9msjgCWdctXh/f9WoOBuTnUYEN/Cvdd4X2SU+ ZlGpA97WIiyJ/SWWSSDPBv01ONuMB5/qdV71ME6gVXdX02uOn/9vH7ZS/iuDXDfDJL49 OhuSGSpQ2GphujlEkfBRJy0rV2BdvXpKhH4Z8zBIBK0YIij5xyRYvQ0+KWGc8KTmGYCE BBEg== X-Gm-Message-State: AOJu0Yy7QRki+yEVUND+kSdrcTztaLUGl7aL7heH3NWOJ1ARk0wVgiTW NjApINxU0c4MHs5yuT0iJ9PHprFctYr9RUXGpVYeaYxnYYGZasKhJ0Mqi1MFb/mDA4gGRdkVuXq AWJ94M78= X-Gm-Gg: AY/fxX62KHqXFysjgB6e59FM0JzWsenO7kA1w1+3AtAi73P3w9QqPnkjqFP/h73AmcY YEmaYxcFX19nuX2sEWnhRXBqBwZxEl2r5dwyevKRLltTqQV3vjEajeQtrEjCCDMpel11MFKRyi0 7pqw/d95/osPKNsslaVC5KhaLuHUv2Ok4BUGTQ1GrzmNq8D/0GFshj6fZvB9xQLJ3YrPOJaHJjx 182K7O1iADdxQJwqLvnaQXctHSQZpBLiGHlXMzxRWBZS5aIP3bi1mEBN040GXY08Yge7R5i1rfK NH+tOPIYF1Bnvi8bd9RyVR9VPbKEpZvwKcKxqcPr3fZR6+DiGQACkPnegABanIWlcAwsns8d/vE IwJKhqYk3h92b2hA8ewR+T5nslN1UKVi18dpkAOVLS+dx/SNilj44Cmv4CIoYfIIWF2LxQ071+N 4F878qP2LilVKLHEL0MiCFbi7msmA3rByTAP/rZDFXeiAHpuuC/Isg9ggxOCTA X-Google-Smtp-Source: AGHT+IFkZ1HZfvCYqYvZPXq14TcyW65q3krj93a9Npo3+rwamgqfZyfRpWz/OHrqjztwwuxyVe/fLA== X-Received: by 2002:a05:600c:8b33:b0:47a:81b7:9a20 with SMTP id 5b1f17b1804b1-47d84b19f5emr178166915e9.9.1768213884081; Mon, 12 Jan 2026 02:31:24 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 07/19] accel/hvf: Move hvf_log_sync to hvf_log_clear Date: Mon, 12 Jan 2026 11:30:21 +0100 Message-ID: <20260112103034.65310-8-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::32a; envelope-from=philmd@linaro.org; helo=mail-wm1-x32a.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768213939114158500 From: Richard Henderson Right idea, wrong hook. log_sync is called before using dirty bit data (which for hvf is already up-to-date), whereas log_clear is called before cleaning the range. Signed-off-by: Richard Henderson Tested-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Akihiko Odaki --- accel/hvf/hvf-all.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/accel/hvf/hvf-all.c b/accel/hvf/hvf-all.c index bbb0403d246..3b6b9d6ea6a 100644 --- a/accel/hvf/hvf-all.c +++ b/accel/hvf/hvf-all.c @@ -224,12 +224,13 @@ static void hvf_log_stop(MemoryListener *listener, } } =20 -static void hvf_log_sync(MemoryListener *listener, - MemoryRegionSection *section) +static void hvf_log_clear(MemoryListener *listener, + MemoryRegionSection *section) { /* - * sync of dirty pages is handled elsewhere; just make sure we keep - * tracking the region. + * The dirty page bits within section are being cleared. + * Some number of those pages may have been dirtied and + * the write permission enabled. Reset the range read-only. */ hvf_protect_clean_range(section->offset_within_address_space, int128_get64(section->size)); @@ -254,7 +255,7 @@ static MemoryListener hvf_memory_listener =3D { .region_del =3D hvf_region_del, .log_start =3D hvf_log_start, .log_stop =3D hvf_log_stop, - .log_sync =3D hvf_log_sync, + .log_clear =3D hvf_log_clear, }; =20 static int hvf_accel_init(AccelState *as, MachineState *ms) --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768213932; cv=none; d=zohomail.com; s=zohoarc; b=HV3eIgYp9xcZGDge+SmGxuJK9xAvpBTBK7ySHZ6gVRiSnKluiG61mhvXyTbIr4ci8DkyqdX+S8OMqfvFOjP95qrgnww76TMB5TQ8Yam94DbrUxmjH4D2ewcuEuBdMnhYPYyTbZIW/blOah3j2DJVoVpTWcAfLkUdldw96T5+bpY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768213932; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=229mJ0exSkSuzo3goGw27TABw6OtzO3/NT2tuTjL7Tg=; b=ZDa1DvXHjPI96QUp2UZRTxPTBuo3/ZJdTrabTCJ493vv1r17GLnQ2n0QAwIyA0wGxxBocw9GP4l+bP894+uwgaBRPsFmlcnYnFfQ2IM6dQgFVkPh2dr6B0baZsccbp93MhWknV1aprFHSKSXtMQS9V7GKl6Xb4KFQ9jBUXbXGng= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17682139320741000.3286509483131; Mon, 12 Jan 2026 02:32:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFDK-0001lk-Ed; Mon, 12 Jan 2026 05:31:58 -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 1vfFD3-0001Rd-3i for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:44 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFCy-0001k3-UB for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:39 -0500 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-4779a4fc95aso26458665e9.1 for ; Mon, 12 Jan 2026 02:31:32 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f41eb3bsm360742385e9.7.2026.01.12.02.31.30 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:31:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213891; x=1768818691; 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=229mJ0exSkSuzo3goGw27TABw6OtzO3/NT2tuTjL7Tg=; b=uKQ3bjznQPkEARxjyG52CAA8kWMZ9qaSxEw1PenJWyzbBID7yy6ax9AlxnaD0ke0t/ GcfISKqERRJt5EFl53EGrZiDE9yKKqXG8VT/VVrBxNxhXCUWlckDRJKPRUbeKDNRyjQ3 3cEil4ME4SCn/iAjPEdG+wfi09P/JuTeiYJr1C0mwJe0KJsldvGDbJMEA3A4T0WaEYr3 q3PJOMz4Y06DS5ohygfiEs19s7oMQUnFzB8k7oLIZDbLXTcGtMCwOPLGLG8RuzWrphEh Fjyb2zR989rp1Ghq8xOnS+dUzdYHLBMAPb32ozMOIF+519ARguBx6TrKYPvwF0pX6hGH fN2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213891; x=1768818691; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=229mJ0exSkSuzo3goGw27TABw6OtzO3/NT2tuTjL7Tg=; b=b96J/b4hcFqaBavJHmb8l+tG8gfAts63MvORzv/2Antx5tSCCO42QKAnkwN+aRDmrB UWCeEstPioznoEkU89XC70lgAzjDIliHppsC6ffDhUEc4FC1VxGa02yCTS5ZOpBTVr+A a7J6aP0qLL+yxf+r2E2fa1SF/81Ppg0ZgVHrBMl9MX6uHMAAn7BTcDI4yQBVPpIQq3Ol hes3R+2NrtXTVCl6QZIQdnc4iYsyEo/O88NcSQnenEnRUJr/23sKQrM4dL/7+oRh6MF6 26WSC8cLwI8ygV7ph25eLFsQy22ogXnIc8wQsE3zy2DDJHJUH1istt0m+mmAImQjMvHf P1Dw== X-Gm-Message-State: AOJu0YzOFt1ruxHEgG1v9A6pgJPJjItLft4btT0LcYNLvUNKosDkI3eV E4xMVPgyNkyBtxRi8q8kHFouiDFiJN7/BA6hB7cL0SCA0ArasLPf5MXkt0d+73zMpahI/kWvqeN iA+Z7L5Q= X-Gm-Gg: AY/fxX4SYX6gbigzyFt9S1sTFvLKB/zBIqQ+tisX2F3pX0cQfXbfic894LmGhJPzSp6 c+FwK7RUlIuiy3Oa1i2YkRxTJzAmnjgfjOYVvUw/GK+iWfK0/vX0nba4OBB/t0GWrEquQMcGzRO +5AZYeuzv11A4iFbZ11K57fKx7ws8KLQWB1nHwifd7JV17De2dHvhP7AgGzVDfs8QO2JKvRD8Cu Y+J/f4WSRfgGR2fij8n1is1Jv34ICiqvdF6WihHUYp131OTuULaiDBg3x71FvNL5sliyR6aLbH2 wqbuQcPDwReMe2SSPu5es3bu8Re5m+ZnzO9QgxowVX+xCcGRMJyYEuZmFSv5+ozHNNjHGVm3JCC 32thuejJ9X/Q2iMukIXOkzNBiZe3oEIw2wPbTwmcBfPBKjUbmha0DE+pl00QpnGX0+7aQ7SbPWR DNqShk9xe+tLp8pWaiH2jMM9g6hKOaprL7tE+aDrjj+LTMoFeliElRWsU+uOvy X-Google-Smtp-Source: AGHT+IGxNNabdE2dqECqAaNqVZs7YYzDTVBzYnA8oPlXa4JXy9OfHmt+PAXTKsrsivExvfvJCZVVMQ== X-Received: by 2002:a05:600c:a46:b0:47d:403a:277 with SMTP id 5b1f17b1804b1-47ec98112bcmr52055345e9.4.1768213891498; Mon, 12 Jan 2026 02:31:31 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 08/19] accel/hvf: Simplify hvf_set_phys_mem Date: Mon, 12 Jan 2026 11:30:22 +0100 Message-ID: <20260112103034.65310-9-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::32c; envelope-from=philmd@linaro.org; helo=mail-wm1-x32c.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768213933971158500 From: Richard Henderson All of the complicated parts of updating the address space are handled by address_space_update_topology_pass. Do not create or use hvf_slot structures. Signed-off-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Akihiko Odaki --- accel/hvf/hvf-all.c | 111 +++++++------------------------------------- 1 file changed, 17 insertions(+), 94 deletions(-) diff --git a/accel/hvf/hvf-all.c b/accel/hvf/hvf-all.c index 3b6b9d6ea6a..dd9ea641ea5 100644 --- a/accel/hvf/hvf-all.c +++ b/accel/hvf/hvf-all.c @@ -87,45 +87,16 @@ void hvf_unprotect_dirty_range(hwaddr addr, size_t size) HV_MEMORY_READ | HV_MEMORY_WRITE | HV_MEMORY_EXEC); } =20 -static int do_hvf_set_memory(hvf_slot *slot, hv_memory_flags_t flags) -{ - struct mac_slot *macslot; - hv_return_t ret; - - macslot =3D &mac_slots[slot->slot_id]; - - if (macslot->present) { - if (macslot->size !=3D slot->size) { - macslot->present =3D 0; - trace_hvf_vm_unmap(macslot->gpa_start, macslot->size); - ret =3D hv_vm_unmap(macslot->gpa_start, macslot->size); - assert_hvf_ok(ret); - } - } - - if (!slot->size) { - return 0; - } - - macslot->present =3D 1; - macslot->gpa_start =3D slot->start; - macslot->size =3D slot->size; - trace_hvf_vm_map(slot->start, slot->size, slot->mem, flags, - flags & HV_MEMORY_READ ? 'R' : '-', - flags & HV_MEMORY_WRITE ? 'W' : '-', - flags & HV_MEMORY_EXEC ? 'X' : '-'); - ret =3D hv_vm_map(slot->mem, slot->start, slot->size, flags); - assert_hvf_ok(ret); - return 0; -} - static void hvf_set_phys_mem(MemoryRegionSection *section, bool add) { - hvf_slot *mem; MemoryRegion *area =3D section->mr; bool writable =3D !area->readonly && !area->rom_device; hv_memory_flags_t flags; uint64_t page_size =3D qemu_real_host_page_size(); + uint64_t gpa =3D section->offset_within_address_space; + uint64_t size =3D int128_get64(section->size); + hv_return_t ret; + void *mem; =20 if (!memory_region_is_ram(area)) { if (writable) { @@ -139,69 +110,28 @@ static void hvf_set_phys_mem(MemoryRegionSection *sec= tion, bool add) } } =20 - if (!QEMU_IS_ALIGNED(int128_get64(section->size), page_size) || - !QEMU_IS_ALIGNED(section->offset_within_address_space, page_size))= { + if (!QEMU_IS_ALIGNED(size, page_size) || + !QEMU_IS_ALIGNED(gpa, page_size)) { /* Not page aligned, so we can not map as RAM */ add =3D false; } =20 - mem =3D hvf_find_overlap_slot( - section->offset_within_address_space, - int128_get64(section->size)); - - if (mem && add) { - if (mem->size =3D=3D int128_get64(section->size) && - mem->start =3D=3D section->offset_within_address_space && - mem->mem =3D=3D (memory_region_get_ram_ptr(area) + - section->offset_within_region)) { - return; /* Same region was attempted to register, go away. */ - } - } - - /* Region needs to be reset. set the size to 0 and remap it. */ - if (mem) { - mem->size =3D 0; - if (do_hvf_set_memory(mem, 0)) { - error_report("Failed to reset overlapping slot"); - abort(); - } - } - if (!add) { + trace_hvf_vm_unmap(gpa, size); + ret =3D hv_vm_unmap(gpa, size); + assert_hvf_ok(ret); return; } =20 - if (area->readonly || - (!memory_region_is_ram(area) && memory_region_is_romd(area))) { - flags =3D HV_MEMORY_READ | HV_MEMORY_EXEC; - } else { - flags =3D HV_MEMORY_READ | HV_MEMORY_WRITE | HV_MEMORY_EXEC; - } + flags =3D HV_MEMORY_READ | HV_MEMORY_EXEC | (writable ? HV_MEMORY_WRIT= E : 0); + mem =3D memory_region_get_ram_ptr(area) + section->offset_within_regio= n; =20 - /* Now make a new slot. */ - int x; - - for (x =3D 0; x < hvf_state->num_slots; ++x) { - mem =3D &hvf_state->slots[x]; - if (!mem->size) { - break; - } - } - - if (x =3D=3D hvf_state->num_slots) { - error_report("No free slots"); - abort(); - } - - mem->size =3D int128_get64(section->size); - mem->mem =3D memory_region_get_ram_ptr(area) + section->offset_within_= region; - mem->start =3D section->offset_within_address_space; - mem->region =3D area; - - if (do_hvf_set_memory(mem, flags)) { - error_report("Error registering new memory slot"); - abort(); - } + trace_hvf_vm_map(gpa, size, mem, flags, + flags & HV_MEMORY_READ ? 'R' : '-', + flags & HV_MEMORY_WRITE ? 'W' : '-', + flags & HV_MEMORY_EXEC ? 'X' : '-'); + ret =3D hv_vm_map(mem, gpa, size, flags); + assert_hvf_ok(ret); } =20 static void hvf_log_start(MemoryListener *listener, @@ -260,7 +190,6 @@ static MemoryListener hvf_memory_listener =3D { =20 static int hvf_accel_init(AccelState *as, MachineState *ms) { - int x; hv_return_t ret; HVFState *s =3D HVF_STATE(as); int pa_range =3D 36; @@ -281,12 +210,6 @@ static int hvf_accel_init(AccelState *as, MachineState= *ms) } assert_hvf_ok(ret); =20 - s->num_slots =3D ARRAY_SIZE(s->slots); - for (x =3D 0; x < s->num_slots; ++x) { - s->slots[x].size =3D 0; - s->slots[x].slot_id =3D x; - } - QTAILQ_INIT(&s->hvf_sw_breakpoints); =20 hvf_state =3D s; --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768214004; cv=none; d=zohomail.com; s=zohoarc; b=jOfMzT9hPgn3x80W3WnAio04EjQvxU6NocHU/PQwycJo4k+j8o+r4BufpQ6v5HmrNS8o+/D5I+8WOBW9WoIjW2nt1krORmc5oiqnuhhgNZC3ns4SEReQH00h17PODsUhvhlsgJkwhaRa6taD2qis0d1hg/+OQYdX8idvorHyNoY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768214004; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=TgCkB/cCjci88novh5LUA6gxo5hF4mBrKIWSSmV2nEQ=; b=X0ZmexvTcK9CgRDO1bKRQ00xb7V1uvt7RAUgtiAsWcFvq2u4JWzOrKMgxfIieHBof0kDCj6IlId0DTgIQSLzOdaogec8MLRU8SHdqrnP4v86lmLVNGUDXkL1FoZBNUqACV6aBsOXJBfRZTk2KRmdaXgL/78NJuWxizkz4+VK7XQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768214004792305.19326396368297; Mon, 12 Jan 2026 02:33:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFDL-0001yg-Mc; Mon, 12 Jan 2026 05:31:59 -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 1vfFD4-0001Rs-F2 for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:46 -0500 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFD2-0001kw-Qn for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:42 -0500 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-47d59da3d81so22597095e9.0 for ; Mon, 12 Jan 2026 02:31:39 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f418538sm347901565e9.5.2026.01.12.02.31.37 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:31:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213898; x=1768818698; 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=TgCkB/cCjci88novh5LUA6gxo5hF4mBrKIWSSmV2nEQ=; b=xi+frKiL5qoFeSlNzhb8px0ARu7nSgzHKr37solLyVAH3+/CKp+KxJ2M8T6gwISjPh 5FnmRNvv4xRC+EaGfQ7p2ErDP2i/645PhVAKo9K/okA0gnhucM7morHDN/KyxWm0mwQX JnOjplLgF89gyEg0jlidgP7qSXwUVUMmtJAFhiE23o9qGqxFvxVMuk9kLThKysJjGCaD TaWqnTrlvWeqCavp+vM9Kb97QutArlzaiOOeKd/q1gxgzKTGMkQNCyF8XKw3Wf/9zfjz g0LVdqfpzpjNVS07ki13stwGsSx0+/2D0xxV+9hzO+kQ3TeolqandhPA0jXMl7EnsZWd ZedQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213898; x=1768818698; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=TgCkB/cCjci88novh5LUA6gxo5hF4mBrKIWSSmV2nEQ=; b=OyUyuSr8EGHEJ6v2zpfYw7m+xlaUfNMKoIzqVC2Vj+8mFU/nuJeSn6uCAjxPCE3XTB ELgTp5y34G1mml7WlFfUBLMqyUSzMyPbk2IrNyub+9RzDZchr8MG94G4N8MfvJNVRtoE Bvi294VH24kTgrMJXm25ITcGoZSJvUkh5QiAXQtxxT/PL8NN9ggZ0jpHC/AJvHogQ4+B XWrMJSJWDsj/87+fmpOi4Yq9vKC5V1S59Rz/3/pEdgLsmqQE9nQVTaJVU4BZy4e2LIJs Um8OF2A+wG1CSPImu0qWl5X/hyogBwxTyVtEzz0BB4bDRxX/IjDQGNRi4pFPXP1/NnrT sD6g== X-Gm-Message-State: AOJu0YwZ4sO8Qfb6NZrP1gVHj+tMd/7c/d/bwspJs/pC/2H5KTZuvydy I4i0RKAZFrwER/2h8f+b2ilj2sAx6dUjiSjJrRLgNy2bKeoW2zVAa4fhT2+HILQtV6/k9DQ/FM1 KUQTBpwQ= X-Gm-Gg: AY/fxX40W7vhXq+nyNJBSa4zRKH4SHV7kuwtpVk9UH2uF78EQ9qR0r2yNq0JIbQBnUk XvJ5nldMTeRbaaHgfrI4cdDVKR0tb+F/zS9QHlki65d5DzfTba/6+QFcaVVZ4TR/U5Rt4sp0ILT bTzbBPCxf5Hu/BuTDuZBGGNThWl/KVxebs2Q3FJE/t/fHYtxAznah8d50axs9FoRnB+V1eT6qz4 l3wFU6DINDL/95C9Jj1mNgDhwVtMm2A7QnPB0nRC2XSHqIT+6LJPWTmR5mq2UHZDC9k5+3BUj+r eZ1dcYaRW2PGm3VDdW8cpsAsAMKekOmHQtgRXOSmp8EeGO1TJpV9clNVR4nIPkgacG2AQr4fTge V0PNQzAOszCmrS+E24WWhCgoGheKw7yvvSylFXto/FJ/TEpNznTyGwZuNg9Re0krs+diRg/hy4C 4LutBhNHMxpy1Ea8J6hviXAeCboQvonrNuBVXoCPlur42fZBxDiglchb29Hb34tbWi5XTELD0= X-Google-Smtp-Source: AGHT+IF8maqCDS62Rc3D1MaSXWcC9wINio3H+5HILmC7bsCDhFLwRisLg/IrkiWfxxWNlfja6ugfgA== X-Received: by 2002:a05:600c:198a:b0:477:a289:d854 with SMTP id 5b1f17b1804b1-47d8484a113mr219245415e9.5.1768213898184; Mon, 12 Jan 2026 02:31:38 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 09/19] accel/hvf: Drop hvf_slot and hvf_find_overlap_slot Date: Mon, 12 Jan 2026 11:30:23 +0100 Message-ID: <20260112103034.65310-10-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::336; envelope-from=philmd@linaro.org; helo=mail-wm1-x336.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=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768214005487158500 From: Richard Henderson These are now unused. Signed-off-by: Richard Henderson Tested-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Akihiko Odaki --- include/system/hvf_int.h | 13 ------------- accel/hvf/hvf-accel-ops.c | 14 -------------- 2 files changed, 27 deletions(-) diff --git a/include/system/hvf_int.h b/include/system/hvf_int.h index ee7ab689f45..d842d4b2b99 100644 --- a/include/system/hvf_int.h +++ b/include/system/hvf_int.h @@ -24,15 +24,6 @@ typedef hv_vcpu_t hvf_vcpuid; typedef hv_vcpuid_t hvf_vcpuid; #endif =20 -typedef struct hvf_slot { - uint64_t start; - uint64_t size; - uint8_t *mem; - int slot_id; - uint32_t flags; - MemoryRegion *region; -} hvf_slot; - typedef struct hvf_vcpu_caps { uint64_t vmx_cap_pinbased; uint64_t vmx_cap_procbased; @@ -45,9 +36,6 @@ typedef struct hvf_vcpu_caps { struct HVFState { AccelState parent_obj; =20 - hvf_slot slots[32]; - int num_slots; - hvf_vcpu_caps *hvf_caps; uint64_t vtimer_offset; QTAILQ_HEAD(, hvf_sw_breakpoint) hvf_sw_breakpoints; @@ -70,7 +58,6 @@ void assert_hvf_ok_impl(hv_return_t ret, const char *file= , unsigned int line, const char *hvf_return_string(hv_return_t ret); int hvf_arch_init(void); hv_return_t hvf_arch_vm_create(MachineState *ms, uint32_t pa_range); -hvf_slot *hvf_find_overlap_slot(uint64_t, uint64_t); void hvf_kick_vcpu_thread(CPUState *cpu); =20 /* Must be called by the owning thread */ diff --git a/accel/hvf/hvf-accel-ops.c b/accel/hvf/hvf-accel-ops.c index e4c62522e10..d931412975c 100644 --- a/accel/hvf/hvf-accel-ops.c +++ b/accel/hvf/hvf-accel-ops.c @@ -64,20 +64,6 @@ HVFState *hvf_state; =20 /* Memory slots */ =20 -hvf_slot *hvf_find_overlap_slot(uint64_t start, uint64_t size) -{ - hvf_slot *slot; - int x; - for (x =3D 0; x < hvf_state->num_slots; ++x) { - slot =3D &hvf_state->slots[x]; - if (slot->size && start < (slot->start + slot->size) && - (start + size) > slot->start) { - return slot; - } - } - return NULL; -} - static void do_hvf_cpu_synchronize_state(CPUState *cpu, run_on_cpu_data ar= g) { if (!cpu->vcpu_dirty) { --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768213936; cv=none; d=zohomail.com; s=zohoarc; b=ioHDyU9KOymKYVZ1/etYxa6nrKHS4Rg7nYuXxDLte6pcddkUzqhqgO2Nr563rEKV+VzRGJdd6Y6wHj4hKvp2pm5xlHCssRpguVf2eHImqhVw7rqv/XdutPcBL0eGI6iPjxz0Ng6hQPLwY/ZJpaKlJJ4bdEiljKTxPhE85NQip+c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768213936; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jk+GlBfd4MnMnSNPuwPicByGCHTQSdU/sy3BPUcATpE=; b=NXJCs9G31l8+9NclXTzYiZ9GDNVEXJnl4EXkUjWAPWkPWmGbRO/YcJvBX3erS2EW9XiojnFRtF8bohChGCaCpYoPhsSL300xbXcJ5Vm5nC15hwP+0FXwE1uFRnB/17MX1ZhNy1t+f5s9YblxbgGlk80wMBMWBdSSbm7Qiee7dcw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17682139362521001.6174028894612; Mon, 12 Jan 2026 02:32:16 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFDM-00025I-Dk; Mon, 12 Jan 2026 05:32:00 -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 1vfFDA-0001Tc-HA for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:50 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFD8-0001mI-St for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:48 -0500 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-47774d3536dso43728745e9.0 for ; Mon, 12 Jan 2026 02:31:46 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd5ee24esm37617534f8f.33.2026.01.12.02.31.44 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:31:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213905; x=1768818705; 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=jk+GlBfd4MnMnSNPuwPicByGCHTQSdU/sy3BPUcATpE=; b=ukJSNDeY7CMN7aoyxOEImP3spMmfn6l83KnLnutvN5svpMel7RdR2v9kanL4lWTqK+ 0GM7AsxzE0EPMYJf9GA2+EgnL51x7qKzU60gUACpZ250XT2VI+KpYrqJ5dY6mfA6T6R1 eb5VFoG63X1IhS9mpitsMVQohS5ignAJ9FEfvmiyO+Ta9ZKo4FXP9LP+MMvrqvXDgY7k dV2eV7qKhJaX3jKF0j19vihD0csAsf+DVBC8h7ROCcaOUxEVSHypnrI4b7W8uZaIOxL0 d3JQUuVgH1LQ426D4FneRvmOD2ptIKmto0IZP9OT+kq41kxtGBDyGfSElqLdjmlIXb14 IhHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213905; x=1768818705; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=jk+GlBfd4MnMnSNPuwPicByGCHTQSdU/sy3BPUcATpE=; b=ncdTAr4IYqi9mqKCB4pk8MzXJ4zxoYCT7H5isbldcOjTgmtzAfXINvFjAJL5qkDqFY ZGbLsZdbG3x8PWGgamiysr87OHZ6J3EIJQyugGqnrDzpi32kd7+/kEq02fldJ91L5/qp wpwaJ0LuQCsFneck4BOfdDzK1eCPs7W/BIrpo9c/pTtKkEOMyP/Fycymlg9nTxgaZkn+ PAt1Y6l3it2+bKzSg7hw8GxAAAteYLSqlylJxBs8V9dA0ZsowCB3bHGhXargCFZao4JT Tbn4SB98drIWQe2cEOWEE3kUoPRYnINNUG7TQEhBoGs28cQ+VR6yIah3UmlmE13Zun+i abBg== X-Gm-Message-State: AOJu0YydVKIEwdHpBJCHfIUztNFX5s0UDXGBXnUWFvxV002QCEMOXYKJ GUep893imfe+j6JHZW0hlBysz9rxw2txRXTqXFLzlVgQii7YBS/5WpdyxZLW5wAxAQqjD+Zvdz+ 91bfrXZ0= X-Gm-Gg: AY/fxX7dP8XiZoj9dfyomaQJ9WwVGTckuluFlVXJHuDypRNAG3V8axE9DhsDwk0BjcC zw308Ad8lZDDZL/iE91GuaMBy+m2b2QnZTB0KIeN3U4B5gM+P2RsxbxAGr6cUAUoHglk0t/RPvX 7LI12zUOKYy3IOZcmsFs1QAqLPypphBodl2HkUF2xIBRBXe8YVepY/aD/ZT7tp7lgiRNhhaGzYv JdRLB32CSphGogXeRL7djjoEBvNbT8/6Gc5Wu9178CEKhhjYsnMdFtGyj0ozXr+AMKpj6HtvfIa 7PY/au/YNQ1Jkue+F50NQ6rlvhQvjv69ru23X3aXoFKkP3IUYsKsrl4rf42phfZfZt9TlHQjAVe d2xLvxrQpL3KjEITQBFO4LfElP0xiWLz9CIRTHcN22ty0cvRMjh6ixCUfhY3GGHHa/CYotqHSho yPpKQjeLeENvZXUnoW2ECH26klldVnaBM5LvcVpxQd21EstSJ24agpxTxPetZIZ4+QZlKj474= X-Google-Smtp-Source: AGHT+IHizxSyKMy535RWVIsej9xSU97E5QPdXR7pyxDK29UWY3XaC/0ccXP7hOmpNCgyvRi2Jl5k5w== X-Received: by 2002:a05:600c:681b:b0:477:a219:cdc3 with SMTP id 5b1f17b1804b1-47d8486d5e6mr179002385e9.12.1768213905078; Mon, 12 Jan 2026 02:31:45 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 10/19] accel/hvf: Remove mac_slots Date: Mon, 12 Jan 2026 11:30:24 +0100 Message-ID: <20260112103034.65310-11-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::335; envelope-from=philmd@linaro.org; helo=mail-wm1-x335.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768213937382158500 From: Richard Henderson This data structure is no longer used. Signed-off-by: Richard Henderson Tested-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Akihiko Odaki --- accel/hvf/hvf-all.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/accel/hvf/hvf-all.c b/accel/hvf/hvf-all.c index dd9ea641ea5..0fbe27dfa26 100644 --- a/accel/hvf/hvf-all.c +++ b/accel/hvf/hvf-all.c @@ -22,15 +22,6 @@ =20 bool hvf_allowed; =20 -struct mac_slot { - int present; - uint64_t size; - uint64_t gpa_start; - uint64_t gva; -}; - -struct mac_slot mac_slots[32]; - const char *hvf_return_string(hv_return_t ret) { switch (ret) { --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768213955; cv=none; d=zohomail.com; s=zohoarc; b=YPyJ3S+U2VfMRKxB3ljIBD6XWytE0dF2FPKh3p43TcxzlzHNJ0SCVC5ZRDqjoys5fiYsRvie+igjuQdp7l+pYyXk39CucGv1RW3zLX9805xwkY19TFcvjd3YaR/8O71qhGxBLtvzubbDh8I69k4DFkxfpfbfCjHERyKsEuYJ4dk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768213955; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Y91fAvc6xKZuK9le0d8AtWKsv85XevnNosJ5k8ViqPs=; b=FWLOG0OZaHd9yBR6ui8Hj48thAVaPNte8FrYUuAL653V5/RDOSsM2NXcH5nUMI1ymBiHUZJBKPYY+DTFKJOAZYBCsKOGcuX6rVH6eI9nHKbRf6jf+FbJGg904EPqyc9j5BQUR6qhbeG8QEyZgHChOhF4EDz1e5joQBA9E5Ii7O0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768213955866358.07212203444885; Mon, 12 Jan 2026 02:32:35 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFDM-00025Q-Go; Mon, 12 Jan 2026 05:32:00 -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 1vfFDK-0001kn-At for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:58 -0500 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFDH-0001mw-TM for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:31:58 -0500 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-47a8195e515so44256595e9.0 for ; Mon, 12 Jan 2026 02:31:53 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d8660be14sm133154575e9.1.2026.01.12.02.31.50 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:31:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213912; x=1768818712; 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=Y91fAvc6xKZuK9le0d8AtWKsv85XevnNosJ5k8ViqPs=; b=LIaRnWbrnWBEY4SZEucLHKlMk57rAjAnh28e0hctfoAsIxLWwDHmTLC1dk0pEgxFM+ z2Kb3JdVWqbv+YtDIzJHal5Jo0EITelgzDsRyrB82l2Bg2DLx2O0YT8m5ndIwlIh14TA QHXNG9CNAeYvRBWKIS4E+6/BDPkgT1NI+l4Kqx5sVraCX2NtrfhQfsr8VJ67DCySst9F R23mSxVTCVRwpvVGgPLXyg58Y2igAS2dwbopSzDeN7fCbHyVSrLf4OTIOKS24Rzi534R bSLvmAs8lydTm7UFYwq4SU/LgTg03lNC7lM7a+o8jSKjjB6vfUyGqhzUzVbZKikWp+de d1vQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213912; x=1768818712; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Y91fAvc6xKZuK9le0d8AtWKsv85XevnNosJ5k8ViqPs=; b=I7T7VXRzvfm5HbrbmOa5MIWYPvNvHIi1Acl7xBUQfSHYf/yVqgxLjkMd5B4Y0uuGO1 i1yVvegXPLg3m8EZ5EjxiNk6mshYN2dUSYfEY0oc2H9M1AIdF/GkaAFTIoF31v2naRw0 OiqI8rOOt6xqKFVePrDpvbaJP4NEEabRjCxKvY+F4SFK4QA29NYLd0kO2FAdfxQFz+in 4drqXxtV2pP4JZgd5ZwubaYpTrf1iZ/NbWnyyjAng4H4XxMFkE5DqOSY990C5d/bp3RL RYDFNY7uzx1JmcTmP1dTv85tkmYbysa9yt4envXhrGNVtz+v1SpyO98H9gge+DGsPWe3 TQxw== X-Gm-Message-State: AOJu0YwfPX9DCvETUD2ME2Ko35PY3FhVcMUZexIQOACtJsrd2AIQ17Of qh0zLqOOuAl5loyJ0Z8GowATU46OurnoM7tsKGpdWmMwblzmbRsoW4J5Ou7GtAybTuHEs0Nj9x+ j41q+gy4= X-Gm-Gg: AY/fxX7RBJX6giiqnxaZaG2nnKpKLFmf3NSidI16ih6WyrRbf0y/Z2Rt9fARSYafTa8 VZWJgf56Pbruh5wueEN50UHmfC1294G/iSuiGXTN3Os7gMLpJrdY7YMj2O6hfcOesGphQrYKsVC K3kQ9f+3+5k2A9m7iQnxPrUTZHbQeXIp+8tskwhbkJDxQQa8UhhlHoEt3Db0hyXEmlFY2DzxR65 6T7BcKAG0sHphslEvnGaB6FbP8q9yauKhaGBpaKNLLjlicXGLyp4IEgiC+bwcD1n5Vl4Nmt8Cug zAVgbd+xGF6X7o0En97IG65xUk/iIPUcrF9qoCtgsutDUOVt0JvzgwBPNGxAQaYQccEtgrDGQdZ 7xX7gki7kTRAa6JqEwEXHH6dDm90sn+P+b8Bl/dJH0ZrK0B8x8hGBySwc3qKgGpc2dDeq2kpOKh XZgQwMFEdU1V4k6hRnQyrnEsoFBv3lwR6fjbuLTD2AigsYjn0tnAoGQy0wjwPU X-Google-Smtp-Source: AGHT+IF4tNvGEfgGyLJ0gHv50pXMI++ff4bnPOIRsPkDgJIApYNMzrEw0GLsE39MPAuclIxWVnFdUg== X-Received: by 2002:a05:600c:4e13:b0:47d:25ac:3a94 with SMTP id 5b1f17b1804b1-47d84b32f30mr219949655e9.17.1768213912562; Mon, 12 Jan 2026 02:31:52 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 11/19] target/arm/hvf: Implement dirty page tracking Date: Mon, 12 Jan 2026 11:30:25 +0100 Message-ID: <20260112103034.65310-12-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::32e; envelope-from=philmd@linaro.org; helo=mail-wm1-x32e.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768213957420158500 From: Richard Henderson Notice writes to pages which are being monitored. Mark the page dirty, re-enable writes, and retry the instruction without emulation. Assert the fault is not from a stage1 page table walk. Signed-off-by: Richard Henderson Tested-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Akihiko Odaki --- target/arm/hvf/hvf.c | 52 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c index fa26f63a61a..af28b8e8825 100644 --- a/target/arm/hvf/hvf.c +++ b/target/arm/hvf/hvf.c @@ -1869,9 +1869,10 @@ static int hvf_handle_exception(CPUState *cpu, hv_vc= pu_exit_exception_t *excp) uint32_t srt =3D (syndrome >> 16) & 0x1f; uint32_t cm =3D (syndrome >> 8) & 0x1; uint64_t val =3D 0; + uint64_t ipa =3D excp->physical_address; + AddressSpace *as =3D cpu_get_address_space(cpu, ARMASIdx_NS); =20 - trace_hvf_data_abort(excp->virtual_address, - excp->physical_address, isv, + trace_hvf_data_abort(excp->virtual_address, ipa, isv, iswrite, s1ptw, len, srt); =20 if (cm) { @@ -1880,23 +1881,56 @@ static int hvf_handle_exception(CPUState *cpu, hv_v= cpu_exit_exception_t *excp) break; } =20 + /* Handle dirty page logging for ram. */ + if (iswrite) { + hwaddr xlat; + MemoryRegion *mr =3D address_space_translate(as, ipa, &xlat, + NULL, true, + MEMTXATTRS_UNSPECIF= IED); + if (memory_region_is_ram(mr)) { + uintptr_t page_size =3D qemu_real_host_page_size(); + intptr_t page_mask =3D -(intptr_t)page_size; + uint64_t ipa_page =3D ipa & page_mask; + + /* TODO: Inject exception to the guest. */ + assert(!mr->readonly); + + if (memory_region_get_dirty_log_mask(mr)) { + memory_region_set_dirty(mr, ipa_page + xlat, page_size= ); + hvf_unprotect_dirty_range(ipa_page, page_size); + } + + /* Retry with page writes enabled. */ + break; + } + } + + /* + * TODO: If s1ptw, this is an error in the guest os page tables. + * Inject the exception into the guest. + */ + assert(!s1ptw); + + /* + * TODO: ISV will be 0 for SIMD or SVE accesses. + * Inject the exception into the guest. + */ assert(isv); =20 + /* + * Emulate MMIO. + * TODO: Inject faults for errors. + */ if (iswrite) { val =3D hvf_get_reg(cpu, srt); - address_space_write(&address_space_memory, - excp->physical_address, - MEMTXATTRS_UNSPECIFIED, &val, len); + address_space_write(as, ipa, MEMTXATTRS_UNSPECIFIED, &val, len= ); } else { - address_space_read(&address_space_memory, - excp->physical_address, - MEMTXATTRS_UNSPECIFIED, &val, len); + address_space_read(as, ipa, MEMTXATTRS_UNSPECIFIED, &val, len); if (sse) { val =3D sextract64(val, 0, len * 8); } hvf_set_reg(cpu, srt, val); } - advance_pc =3D true; break; } --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768213969; cv=none; d=zohomail.com; s=zohoarc; b=AyZsgPvzFEMFQ2CJyVC18Nx4xvt7KDa112NBtb8JSYllllE+AtMzm3OEh1BMxaP0jgaatQIxHNYQSjL4DeWvJJJpDH5fZMIkMV/1GKQj6XWROwn44ghgwX3hDipyvNbTgkq6R+ZttkEN4lNFzzfWBShihI1dlInP2q2s6kKNqmc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768213969; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=AX8TReywRramP00AS3aCoMrxM5/FCzCrdGkFzNm/dQI=; b=MAbMiIwywYhOnCVn6Gq95LDvpU/p+LKA9uzZZocuxUXDVZPsrgPLtBO71vG0N1X7ZJ9rgh/vysvm9td3KX4oxmZJxLOYCCQhcW3XictB7XwBXxgdqQHr9KFv1oyIP4H6bfZgwyeEhpx822F6tnmANfbaJOeU/aIPUkZxs/kaQEg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768213968992520.9942601596931; Mon, 12 Jan 2026 02:32:48 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFDR-0002eU-45; Mon, 12 Jan 2026 05:32:05 -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 1vfFDP-0002Vb-Le for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:03 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFDN-0001oP-1h for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:03 -0500 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-47d5e021a53so45245765e9.3 for ; Mon, 12 Jan 2026 02:32:00 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f668e03sm360270915e9.14.2026.01.12.02.31.58 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:31:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213919; x=1768818719; 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=AX8TReywRramP00AS3aCoMrxM5/FCzCrdGkFzNm/dQI=; b=U+KAHOkGVuUAaCyHZT1RDGwqkYWJv5BaLsk11iJoSmyFiS73rYZTUZdYJ3dN8vyuNA alUzkCVDVZA16QhhPbLXLn4RSRoszt8YP2jvoMmuA+KAxSOZ4CshaiyEWfDZJhtI0nVI HerzwacjmW/Y2x4C3Wu2j7S1W3Cb0BYi4AlFXKSdthMIOvHo31Qx4GFq8W8pIPkk5KTL sGiKFVThQ4jkW7RnZ2uAo8Ze7dpnEjdz+0Hh8OjxhKrPh6KC/cTkcXPOXnXUwGBXjAYB KrExqLG9ppThXUUFRjs9eQESk1G4d7XjHZ/SK2PCDcg8faqdIH9XndLf1uTUz4ttU0a6 y9UA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213919; x=1768818719; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=AX8TReywRramP00AS3aCoMrxM5/FCzCrdGkFzNm/dQI=; b=uzKof764e318u6L+kh/BycKDKD8Ng1QZMqplHKxrwmTKM8CY3gbyKOb0TxyR+gJr9e cTqkaMQbP7Hk3ZQdIETCEGfaF5ZcsXHQVKBoZg3SgP2Naa6Tts3htdCgBcfVKr7cUxtN Q8d94boj9CeLV39j6efqglyeM6qfaRwvzN6R0d/abVqicgeweQAYX+S4bLS0gc0LCTgh 0Sx6hlSQXR9pf4RbLtc6JFCIZMLvo4q4m39oLqWYWFJm8mtm5t0prcXtibJpG4o1lpP3 Dp0prSj90gvBOgEjKqC6malQ11ZpxLpFCm7axEQ3Yna7TKjGhmqCalcBs8KZote8PP8B g71A== X-Gm-Message-State: AOJu0YzmKpSnaN7S9KM0kc4gBetQl/7AX0THtl+tWvYELv9TI7fGdeCs m+oXSAEMhSRZ/KYGR2/tqMvD0yN7PXC4aKmehHRHqO2Dh+S8CQVYTF3GnYNZ46S3BhQAtw15rbQ o0xhUCfo= X-Gm-Gg: AY/fxX7lMUAF60N/MhQkc1zJFh4HSfC9f/igZHz5oODlFwN6cHxjE+Y07zhyUONOVT0 dTK0gGCrVDVj2Bq67KR52zfopLbSDZ8KKZU2x2z+1aQtEPcVmObyi6LlQvpgYxyw347Jr7jTRP9 PvpvM3bD/k8e0ld0zsc8TvvomFNYJfgHVPd1+65+TY92xarIveQ+C0d6eQjZol/nstgilsBJbIs cLGIyVfnPJ3LgCSJNMuqoXGYgXUwmNqwqvovduy7FwyFCQMkwB2ra/6tyd/zq85ZOnJJXTRDfK/ sTUFHr5pevY9zvtGFZuAxUJOPROur7w4vmF/bPq3pN6V34LkF8RyKRWS773LE8UnyWjIJ6iW/ub tdGyoSZgHtHR27C/7SqNAkPCLySCXEr8uarOycVtPMuG2IeZ8bbHplCLOyGujBy9pSlRT8kkQxQ yjuiYOHVmN04qCTuSckAjYxVHbH823C3G5gfccNCfoU+xdXkt6KO8A5NmADpQW X-Google-Smtp-Source: AGHT+IGB6Tl1ert2opqbGb3etVZFe2N9kHf1efTNdwwXBVqb7F1j0mAu1FrFM18r/Olgb+y1yiSm/g== X-Received: by 2002:a05:600c:83c9:b0:47b:e2a9:2bd9 with SMTP id 5b1f17b1804b1-47d84b3b719mr219757495e9.31.1768213919309; Mon, 12 Jan 2026 02:31:59 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v6 12/19] accel/hvf: Skip WFI if CPU has work to do Date: Mon, 12 Jan 2026 11:30:26 +0100 Message-ID: <20260112103034.65310-13-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::335; envelope-from=philmd@linaro.org; helo=mail-wm1-x335.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768213969680158500 Avoid sleeping vCPU thread for any pending work, not just IRQs. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alex Benn=C3=A9e Reviewed-by: Richard Henderson Reviewed-by: Akihiko Odaki --- target/arm/hvf/hvf.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c index af28b8e8825..d74703a3d55 100644 --- a/target/arm/hvf/hvf.c +++ b/target/arm/hvf/hvf.c @@ -1737,8 +1737,11 @@ static void hvf_wfi(CPUState *cpu) uint64_t nanos; uint32_t cntfrq; =20 - if (cpu_test_interrupt(cpu, CPU_INTERRUPT_HARD | CPU_INTERRUPT_FIQ)) { - /* Interrupt pending, no need to wait */ + if (cpu_has_work(cpu)) { + /* + * Don't bother to go into our "low power state" if + * we would just wake up immediately. + */ return; } =20 --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768213940; cv=none; d=zohomail.com; s=zohoarc; b=KrwiHaPKhD++WY95iPsx3CZYx+PospIuUDu4VjxzR7QWyncts5DxWANpShKzRuKy7chr1wmiUMd0r0hExB+8wQJc0dSVakZ5seSMw1ambvGozCbWyDLVI8lkcg0n4A7SlwOe8uNLJawwDX0iMeULZhLF+nqXU6uTF7woulvRBxE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768213940; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Ql1PuMmPLOZ2kGLsYrxz6xjnEWz6/m3NR7n6L0jhmzI=; b=AKMHgv0SnybWMhne87PPIBbtbHBhGqLCj5eL/41wn6HBleEM3LMvVo7XJ9X29RB/GHXq03jOiUNF4Yfzd/mYGulBHLDDN8CPDZ1ONmIJ7aBMqdgnHo+N/zF404tnnlPhUSfi3kIWDZU6zdTUpT9b74Bw8sJFKXrARoKDDXiGWEA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768213940395907.8815131593947; Mon, 12 Jan 2026 02:32:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFDY-0003j2-Is; Mon, 12 Jan 2026 05:32:12 -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 1vfFDV-0003Mw-VP for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:09 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFDU-0001qL-90 for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:09 -0500 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-47795f6f5c0so37689875e9.1 for ; Mon, 12 Jan 2026 02:32:07 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f418538sm347922405e9.5.2026.01.12.02.32.05 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:32:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213926; x=1768818726; 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=Ql1PuMmPLOZ2kGLsYrxz6xjnEWz6/m3NR7n6L0jhmzI=; b=C2djm3wTKhep0bzmC3sh8uReFN4ev0ynOURdQQtJSmi1kTAOAZuyTIc4Vfdjt6lYfv UkAGUy+lp9Ybyk03VaiZ13eb2YkFA8BGVtYRnZARn4LXmvpUuc/1jI6rkeb4ZU7wFQ+j 8Hg4+3fFzOlow/aOp/7zLST020kYGmJcMW1SaEZPBdQil7DOJ+mzGsrSL5XQ++yGT/ek Z8i3julwhYVwez5Ss3/WYks9Gt71tN6rwOc+2cK1TQTMWJS0PUIPSJr3o0BxgNgzFKTA pu2uWKSj5Q7GAj7+kyOJpguao4hxuxbuT20Y9FrX/VX6PkBmiXHSWzoMD4Pdc6uCJnFh 9c1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213926; x=1768818726; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Ql1PuMmPLOZ2kGLsYrxz6xjnEWz6/m3NR7n6L0jhmzI=; b=CKR1JnUuMK08DO8rMlu5m0mWolSmmj7P2OmXDDwd2rWlnQXwCfTzBOGebzG2A60DQc 0A7kIrjW+5xfpEYUvimoNH+eNkgr80Mo/agGXYJuKZZwd/SCNrayiFJFTzuaKMpQpBxy ftYFYnr550H+3hPVVnD3NV+mEfyiNC2eMcWLduw5H+f+OHxtnbmznVQkZ2X6xmyCHAA0 Ue8MolTEWSnIuUayVKFABbL+fwiy5Bm2YQLb+OA24uIW6Xhy/jA3ZNYGtguaOfoSsqrd LhV0lXv3xfX1cMXtJHSSGFfl5nimt/coirJTtPClcpzi77ulypjxosXlYrg3hRbwc12+ lEqA== X-Gm-Message-State: AOJu0Yz0CdXDTVq0I7h68x8bqPxMz8RVDhnZr6W7f1iF4rsLH1vs/1yu IkaqpE/QIXublSABDtfPXh3KHH0TrUroP4j+es9TiRhsZ6XFyayr9H0DF2xvdvs5tlDvtd+aWFv +F7OD8vE= X-Gm-Gg: AY/fxX4r/0jn74tyBzO8qRkB6oy0gz9K+5QOAyFx+7gQ9DrBP+dmETbOahjKlVIPwti rW7QiMmCndw977QeVswgzsQwOM3qr3pGBzLItNzut+5Cugx0s+HrdJBhqnt0iDcP8brBO6NNoRK Bg+PrLNjEc8Ealai7usZ7gOjqoyX/mcTUFtiCal+NeqBT29e8u9NSv55xiJZcKrtTRabU+M/+8A JJH98epqxpKisH2gcpkkwCzuPZnKnx0dWR1tI/a02OT3MR+5H1dClDM8z+V2XNHkcOHyxQARIUQ Vu5VPqCqChYE4AMoZFbguc6wZ2LxtMmVlQ6ICXH++nBsBd03RM1gE2gtT+uJg8bEh8NzBe5gs+s +pquc6tq7WhE+bYQAjIc3ycrvnuFaOlHtRGxztIifq2SA06vN3eCzSbHpeIQqS/bMW8m9gRk7LE PvquwLRKoqnsSW4nFD503v/r1kDYzc7NOjLwVCG1JvbaauVw3mvKS3sbKh/6w6 X-Google-Smtp-Source: AGHT+IGr/ALfC+F/tIF1ShEzZoVdxM8gChV5FVpBxUkWfmb6ftyZiWHpg/DvqmnwzrfDBTAxn475QA== X-Received: by 2002:a05:600c:8506:b0:477:9fcf:3ff9 with SMTP id 5b1f17b1804b1-47d84b5b4a5mr161131205e9.27.1768213926031; Mon, 12 Jan 2026 02:32:06 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 13/19] accel/hvf: Implement WFI without using pselect() Date: Mon, 12 Jan 2026 11:30:27 +0100 Message-ID: <20260112103034.65310-14-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::32d; envelope-from=philmd@linaro.org; helo=mail-wm1-x32d.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768213941127158500 Return to the main loop where we'll be waken again. This avoid a tricky race with signals introduced in commit 219c101fa7f ("Add HVF WFI handler"). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Akihiko Odaki --- include/system/hvf_int.h | 1 - accel/hvf/hvf-accel-ops.c | 2 -- target/arm/hvf/hvf.c | 74 +++------------------------------------ 3 files changed, 5 insertions(+), 72 deletions(-) diff --git a/include/system/hvf_int.h b/include/system/hvf_int.h index d842d4b2b99..c8e407a1463 100644 --- a/include/system/hvf_int.h +++ b/include/system/hvf_int.h @@ -47,7 +47,6 @@ struct AccelCPUState { #ifdef __aarch64__ hv_vcpu_exit_t *exit; bool vtimer_masked; - sigset_t unblock_ipi_mask; bool guest_debug_enabled; #endif }; diff --git a/accel/hvf/hvf-accel-ops.c b/accel/hvf/hvf-accel-ops.c index d931412975c..ffcfe9663b5 100644 --- a/accel/hvf/hvf-accel-ops.c +++ b/accel/hvf/hvf-accel-ops.c @@ -135,8 +135,6 @@ static int hvf_init_vcpu(CPUState *cpu) sigaction(SIG_IPI, &sigact, NULL); =20 #ifdef __aarch64__ - pthread_sigmask(SIG_BLOCK, NULL, &cpu->accel->unblock_ipi_mask); - sigdelset(&cpu->accel->unblock_ipi_mask, SIG_IPI); cpu->accel->guest_debug_enabled =3D false; =20 r =3D hv_vcpu_create(&cpu->accel->fd, diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c index d74703a3d55..b936098d257 100644 --- a/target/arm/hvf/hvf.c +++ b/target/arm/hvf/hvf.c @@ -301,7 +301,7 @@ void hvf_arm_init_debug(void) #define TMR_CTL_IMASK (1 << 1) #define TMR_CTL_ISTATUS (1 << 2) =20 -static void hvf_wfi(CPUState *cpu); +static int hvf_wfi(CPUState *cpu); =20 static uint32_t chosen_ipa_bit_size; =20 @@ -1703,81 +1703,17 @@ static uint64_t hvf_vtimer_val_raw(void) return mach_absolute_time() - hvf_state->vtimer_offset; } =20 -static uint64_t hvf_vtimer_val(void) +static int hvf_wfi(CPUState *cpu) { - if (!runstate_is_running()) { - /* VM is paused, the vtimer value is in vtimer.vtimer_val */ - return vtimer.vtimer_val; - } - - return hvf_vtimer_val_raw(); -} - -static void hvf_wait_for_ipi(CPUState *cpu, struct timespec *ts) -{ - /* - * Use pselect to sleep so that other threads can IPI us while we're - * sleeping. - */ - qatomic_set_mb(&cpu->thread_kicked, false); - bql_unlock(); - pselect(0, 0, 0, 0, ts, &cpu->accel->unblock_ipi_mask); - bql_lock(); -} - -static void hvf_wfi(CPUState *cpu) -{ - ARMCPU *arm_cpu =3D ARM_CPU(cpu); - struct timespec ts; - hv_return_t r; - uint64_t ctl; - uint64_t cval; - int64_t ticks_to_sleep; - uint64_t seconds; - uint64_t nanos; - uint32_t cntfrq; - if (cpu_has_work(cpu)) { /* * Don't bother to go into our "low power state" if * we would just wake up immediately. */ - return; + return 0; } =20 - r =3D hv_vcpu_get_sys_reg(cpu->accel->fd, HV_SYS_REG_CNTV_CTL_EL0, &ct= l); - assert_hvf_ok(r); - - if (!(ctl & 1) || (ctl & 2)) { - /* Timer disabled or masked, just wait for an IPI. */ - hvf_wait_for_ipi(cpu, NULL); - return; - } - - r =3D hv_vcpu_get_sys_reg(cpu->accel->fd, HV_SYS_REG_CNTV_CVAL_EL0, &c= val); - assert_hvf_ok(r); - - ticks_to_sleep =3D cval - hvf_vtimer_val(); - if (ticks_to_sleep < 0) { - return; - } - - cntfrq =3D gt_cntfrq_period_ns(arm_cpu); - seconds =3D muldiv64(ticks_to_sleep, cntfrq, NANOSECONDS_PER_SECOND); - ticks_to_sleep -=3D muldiv64(seconds, NANOSECONDS_PER_SECOND, cntfrq); - nanos =3D ticks_to_sleep * cntfrq; - - /* - * Don't sleep for less than the time a context switch would take, - * so that we can satisfy fast timer requests on the same CPU. - * Measurements on M1 show the sweet spot to be ~2ms. - */ - if (!seconds && nanos < (2 * SCALE_MS)) { - return; - } - - ts =3D (struct timespec) { seconds, nanos }; - hvf_wait_for_ipi(cpu, &ts); + return EXCP_HLT; } =20 /* Must be called by the owning thread */ @@ -1967,7 +1903,7 @@ static int hvf_handle_exception(CPUState *cpu, hv_vcp= u_exit_exception_t *excp) case EC_WFX_TRAP: advance_pc =3D true; if (!(syndrome & WFX_IS_WFE)) { - hvf_wfi(cpu); + ret =3D hvf_wfi(cpu); } break; case EC_AA64_HVC: --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768214005; cv=none; d=zohomail.com; s=zohoarc; b=Z/XniSlz83566o3ki0SRMRqu6t9vGU64R67X88DlDy3DiQd0aNRyFosYGtW2x6pr4bHvsMraoWMkUbHM7hQLlpeJaisrV8kc0aAOqwZ3Ta80mvRFr04rjFBU5/48F2hlPeTVjJ9ZMvcUNeL/qJnexMqwU1Ou2Lw+9XJCn2ccRH0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768214005; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=rjaoEA0EYqF5t3dZz3vxcYiQNespCzrnVtF3goBx/A8=; b=SRIkBjHy94n2kGRro8vGf5Rb0x7P/4kcHkoJZXuR2eSsLPeQXhKUj1fJ715nOHwuhDeFt28UB/gM4rmnmsjsCiYI7feJc9vS1AX3gtsUN8W/OdHbXr9+2J4jlA1UmPYvLnUvt2PnbOBzcLquojMqGoAg9xKg3mqQXauf5Ai1QQ4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768214005978960.0095608654501; Mon, 12 Jan 2026 02:33:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFDe-0004Kc-Ai; Mon, 12 Jan 2026 05:32:18 -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 1vfFDc-00048E-1v for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:16 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFDa-0001rV-IH for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:15 -0500 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-477563e28a3so33800895e9.1 for ; Mon, 12 Jan 2026 02:32:14 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f6f0e15sm345226605e9.10.2026.01.12.02.32.11 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:32:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213933; x=1768818733; 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=rjaoEA0EYqF5t3dZz3vxcYiQNespCzrnVtF3goBx/A8=; b=uN+ERW6f8oFkM9ypruC6ESi3uqTWZ1Dhi2dUOKOShg8SD8Rw009PSVGjEDCfeL6v11 U1WsxK8Uf18EeSkOzaapLfWRUkeZjTiV9FzfH32bBb5es3kByLtZsYNpwiHAtzYWOOXQ Q02x7x/dYbXeuAPLEeC83X8pPSlOy9Vsil9e3OYpNWTDUM/6jAFJAzmEBWLgh86lwouD mDTV+hUSXtim34oeTVgVz/tmC+4ixtZ8opeNDIrja5A4hjUlrXms5fbB67MTffYiLmGB D2Xr9Vx6ZEPBPHA/qqYkoCjaxzy1mYAjFOZj0ZLWwa2IeVdTPGpkvdYjxjkUfp697IMO 8O/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213933; x=1768818733; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rjaoEA0EYqF5t3dZz3vxcYiQNespCzrnVtF3goBx/A8=; b=paDLqMAIh1qE5TVMy/atSg0Yjr4xm9oUHruwFWIz+9DfJyjwJVw+Cuv3x5t4oXNhbb xDzxkmPrhTn1z+qdoPsoz6CZLiEyoJo42xNqmQtBTm4Z9PurELBtkR5eWxr3OF3ipX/z F6f6Osr6HdOwbmN+jNYoD4hwGN8wdOzjK2G3T0Amntmcs9YQ79UEpxUjEitNwV/dNznc JbkLIUy9lM18yKc5yddjl8i93/64Cn44nO8P0A1f8h3rV6dR/uFLRLIBJJh2Y+N7pvsu ZbNBAlzhhHSGqkHl+v2p1eJFUBRtCuyJmKsSN984COg7r+cC1gkxr8fSfvFFtEfI52HL Mn/A== X-Gm-Message-State: AOJu0YxngY20/kWQ2lUcMBYvzmP1iTmdKN1YL3Pa+tCWtfZEfkPuOKWl W/aYEDNNaSLg9sAGEtCZOG89MSx4DmH/DMVWWs3S2EZNEpJUfjwcJ7cua8hzBGwwZqMboIQmOlp FqNuQ5aI= X-Gm-Gg: AY/fxX4bDWTc9YJamm7MZf94WV9vpLtsHkf7p/3FCac2/noqQ/tf3A6KIzq1jXJzZpQ dCdcRLAh6y0cDp32wQ/xezCbcm+UBlH5WmJ5TiTRGxUQ14LEST21UaZjYGYKTUZQqcTdUyYJYKW YSwPS+jQ2VF0JWl542WCJUod+GFqIxwJhcjn/UFd6OMAu2cto9UWf/KcVjzXq/sNc7mq++sNIIc VgIWXcuBptRsLUTXFudVUnBbwNrqZAs36Hq/+CIRq0SkVKsRXnPM9rejbZW1085oHckepkljPYB rnelRSphoQn2WvpTe8U5SRmULThXfAdUUGl7TMwVST3mCYYK94nd6iA90EwjKAYJMiwH5IVYm1D 63zPS3c9JkMM4OJrgxxbrRnnGLJBehb8yY3o52pr1QFaaqPWBPeQXlOs7e0cFLggoLl+Ng+XX4y qJdBZZODLaSePNhCcChMVmXm3MtjoED0CrDQNTAyqRHQ59H0Op/KWS35Ij38fm X-Google-Smtp-Source: AGHT+IEMjMzNaieUA9OkBkUtVScBvDnU91mR5fqPmcrycAex2vTHoPUSaj+ydDzqxO7u19mBmRf6fg== X-Received: by 2002:a05:600c:3b05:b0:475:ddad:c3a9 with SMTP id 5b1f17b1804b1-47d84877e51mr211876665e9.13.1768213932812; Mon, 12 Jan 2026 02:32:12 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 14/19] accel/hvf: Have PSCI CPU_SUSPEND halt the vCPU Date: Mon, 12 Jan 2026 11:30:28 +0100 Message-ID: <20260112103034.65310-15-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::32a; envelope-from=philmd@linaro.org; helo=mail-wm1-x32a.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768214007387158500 Return EXCP_HLT to the main loop. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Reviewed-by: Akihiko Odaki --- target/arm/hvf/hvf.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c index b936098d257..718414cc53c 100644 --- a/target/arm/hvf/hvf.c +++ b/target/arm/hvf/hvf.c @@ -301,8 +301,6 @@ void hvf_arm_init_debug(void) #define TMR_CTL_IMASK (1 << 1) #define TMR_CTL_ISTATUS (1 << 2) =20 -static int hvf_wfi(CPUState *cpu); - static uint32_t chosen_ipa_bit_size; =20 typedef struct HVFVTimer { @@ -1008,7 +1006,7 @@ static void hvf_psci_cpu_off(ARMCPU *arm_cpu) * Returns 0 on success * -1 when the PSCI call is unknown, */ -static bool hvf_handle_psci_call(CPUState *cpu) +static bool hvf_handle_psci_call(CPUState *cpu, int *excp_ret) { ARMCPU *arm_cpu =3D ARM_CPU(cpu); CPUARMState *env =3D &arm_cpu->env; @@ -1091,9 +1089,8 @@ static bool hvf_handle_psci_call(CPUState *cpu) ret =3D QEMU_PSCI_RET_INVALID_PARAMS; break; } - /* Powerdown is not supported, we always go into WFI */ env->xregs[0] =3D 0; - hvf_wfi(cpu); + *excp_ret =3D EXCP_HLT; break; case QEMU_PSCI_0_1_FN_MIGRATE: case QEMU_PSCI_0_2_FN_MIGRATE: @@ -1910,7 +1907,7 @@ static int hvf_handle_exception(CPUState *cpu, hv_vcp= u_exit_exception_t *excp) cpu_synchronize_state(cpu); if (arm_cpu->psci_conduit =3D=3D QEMU_PSCI_CONDUIT_HVC) { /* Do NOT advance $pc for HVC */ - if (!hvf_handle_psci_call(cpu)) { + if (!hvf_handle_psci_call(cpu, &ret)) { trace_hvf_unknown_hvc(env->pc, env->xregs[0]); /* SMCCC 1.3 section 5.2 says every unknown SMCCC call ret= urns -1 */ env->xregs[0] =3D -1; @@ -1927,7 +1924,7 @@ static int hvf_handle_exception(CPUState *cpu, hv_vcp= u_exit_exception_t *excp) /* Secure Monitor Call exception, we need to advance $pc */ advance_pc =3D true; =20 - if (!hvf_handle_psci_call(cpu)) { + if (!hvf_handle_psci_call(cpu, &ret)) { trace_hvf_unknown_smc(env->xregs[0]); /* SMCCC 1.3 section 5.2 says every unknown SMCCC call ret= urns -1 */ env->xregs[0] =3D -1; --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768213951; cv=none; d=zohomail.com; s=zohoarc; b=QHpAyp0Mlfpj7Rt15Z56v2/7xmPwwXzSYSIrlLlEIu3hsbzSV29bNELVkwoWurHRmhywvc7XospMzwPgdaI6VnpBg2iuSnpx3vu3uPyt1wI/7xzjAyXJUfFd3fii1irg7Jn/KFnvQqpdwA761tvLyv+XIw1oSwSvmu07y7SaWlk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768213951; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=9Kh+4Sh/zRQ8CAg3HJCYZrKZcr0kD3MOt1nUSLo1u/c=; b=Brv7ywaPChKgndfmOe1j7bNIi7RogF8p8bT1Y6k6vhSEhzp/uTPM6zC4WbNV/54AuI6tyWnrRIqBRXI2/V3apos9cW38rC6sT0w45XDKZT+3duB528xsxSbbXNEAQeA+zYKH/j445EtwAnsx+TYtt5FH68PQBVvCUBMh6W3JzM8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768213951026897.3381800147687; Mon, 12 Jan 2026 02:32:31 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFDk-00050Z-K2; Mon, 12 Jan 2026 05:32:24 -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 1vfFDj-0004py-0L for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:23 -0500 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFDh-0001sw-GW for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:22 -0500 Received: by mail-wr1-x442.google.com with SMTP id ffacd0b85a97d-432d2c7dd52so2910380f8f.2 for ; Mon, 12 Jan 2026 02:32:21 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432dfa6dc4esm16087003f8f.23.2026.01.12.02.32.18 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:32:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213940; x=1768818740; 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=9Kh+4Sh/zRQ8CAg3HJCYZrKZcr0kD3MOt1nUSLo1u/c=; b=XZm6ohN/EYBPszut/DO8jHneEEIvDFsv020Pcljyb8dQfEcKsP+zG6n6NMvCUrsoDk Nm82e2yZ+1RpJh8Hc9rsYLIUz54OQMffW07dlyKO096lwFHRWaZ+AhIyi6p93qtniopA Emc9iSSfesY873NpN1hNNmBeGXJoBOJaJKJNbn73iu70rTWl4LlUH1IvGnNWuC/DFLva PMjddLtZxygocD8BeoQZba3uk0/lKUwLmTkcN408gqJhqQ+1HAD4TUxsZVTfYJJ6tK9Y bGX5n0/o8mXU6hJGAvCAbeDwB0BcUIz2raQX89HjsFwiEEvyBvExzWZL1Uvf3LT6JLAq gdiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213940; x=1768818740; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=9Kh+4Sh/zRQ8CAg3HJCYZrKZcr0kD3MOt1nUSLo1u/c=; b=lmjes2lEtqqPpClQGxOLAbFjhD3k1nmqJX0Y7SY80vJGgTcBb+T/j8XbJgR5tLM1fX MvDA96WLHxzh/5IKi9C9OCcxRXhdbx1E2B3ncxXY6kPmAZcseHKweeZpMUml11EkDggM D49VDECBGu1c1rTdZV2qE9RvThyF8UkZqDNH7TPZMrJDhhZFNYqRWL10fvrF2xY4mGJd ZNpi317080f8MlPEK/hYWTHPe+XzQH09yfv4YVRsJbBJ0g2eTnZJgLK2uu1hXa4xbzye SKJHFPJxNhxdeVlr15QafWLXzb1dcO5GYPFOmFvWlzYfMAhS8KXkgP2pMWK8fxbkUioj 2JGg== X-Gm-Message-State: AOJu0YzqbsgNm6JAHbnRnyplPTY4tnJSvusQt1+0C6r9MGa/eEcjbuVe dC9HGMlYKkEpU6k/54bd1/R2ern/OEK0+PcWfvQE/hreomPsiIBNjPLUQ3GKiDqkEnQu5ioWlLj Mz39DD6Ngmg== X-Gm-Gg: AY/fxX5lAyK47Y6iSdWP4xV76s2viW6W010Ejl5G1xJT1PP+58CPK4vYchDIIfi4hTF Lb6HADFkBRgDl2oKjFGq4gSyYvuP/CaVer/jhWqbP4RQDo6I1QjboJu/i7OJq0PNXjUGNhoGeTV uLlKP5dPUILddmAz2LfWiSgtuKhzwfVmCB4QGQniOFH/2yGXpk5tJnORZA1QcvH04+DhuscwsHy 0UIi992rVrLh4CbPj2wWsD/1tlkdzao36BeWwQdm/p/oAILSEnJm0M9t3PZN8MLbVPbomTASd8V RgK/oU1ZlWVJs7hC8mPIgFns/lnU/ggI5+nmBaBPAS0mBeiQQCPtLgI21HqxAo1kpLgTS919t4t onbsyB2lPLy6lt/zaj4Vys/BtpjDa8SMlu7dFjH351Gb+L4Akwtkf0eJq2jMCck6XCwe88jW6jE AMC0dkM/aewhQu9QXA+q083O4fTQAWYmydx06/vWs8uvRHztjWpNjElHWsgR6R X-Google-Smtp-Source: AGHT+IElMUYyHZPj4L30whtEhJ6TJuZDnl5hgM97hyaM0UUHuFgTAGaAfSYsA2rAnUhiwpZkjvH3hw== X-Received: by 2002:a05:6000:22c3:b0:431:3a5:d9b8 with SMTP id ffacd0b85a97d-432c379f4f3mr21648932f8f.52.1768213939678; Mon, 12 Jan 2026 02:32:19 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Paolo Bonzini Subject: [PATCH v6 15/19] accel: Introduce AccelOpsClass::cpu_target_realize() hook Date: Mon, 12 Jan 2026 11:30:29 +0100 Message-ID: <20260112103034.65310-16-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::442; envelope-from=philmd@linaro.org; helo=mail-wr1-x442.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768213953213158500 Allow accelerators to set vCPU properties before its realization. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Reviewed-by: Akihiko Odaki --- include/accel/accel-cpu-ops.h | 1 + accel/accel-common.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/include/accel/accel-cpu-ops.h b/include/accel/accel-cpu-ops.h index 0674764914f..9c07a903ea0 100644 --- a/include/accel/accel-cpu-ops.h +++ b/include/accel/accel-cpu-ops.h @@ -34,6 +34,7 @@ struct AccelOpsClass { /* initialization function called when accel is chosen */ void (*ops_init)(AccelClass *ac); =20 + bool (*cpu_target_realize)(CPUState *cpu, Error **errp); bool (*cpus_are_resettable)(void); void (*cpu_reset_hold)(CPUState *cpu); =20 diff --git a/accel/accel-common.c b/accel/accel-common.c index 850c5ab4b8e..eecb2a292af 100644 --- a/accel/accel-common.c +++ b/accel/accel-common.c @@ -106,6 +106,11 @@ bool accel_cpu_common_realize(CPUState *cpu, Error **e= rrp) if (acc->cpu_common_realize && !acc->cpu_common_realize(cpu, errp)) { return false; } + if (acc->ops + && acc->ops->cpu_target_realize + && !acc->ops->cpu_target_realize(cpu, errp)) { + return false; + } =20 return true; } --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768214022; cv=none; d=zohomail.com; s=zohoarc; b=ELQPFI7RE4cu0B2zycRtMUZhMOscZ1iEa8A6rpqjYViUC88FemQBuPYbWtMGfTMIyPANs3s6lGpac8Z1OkuOrGJXaM3/eZiFu1O3GT7uiixyylVd/XG1kCws732H9FfZPyXR9Ji2S6GOgdVJplcNkYxuiobcDx6eiQofuVqYLdI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768214022; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5S99U3XUshmuddLFuBd6ft79OtosHUhtCtEVlD+u7mY=; b=IpbLXg3I/r3IrEopX4dI4Yn7FAcJ8rovf2+j5JKTcmsQQiabWUwgKBJX5MOoBoljMZPyI+5cI69Sj5lqSDXq3nrSHD1RRyMdMONcqqRzlIiksPr8xakF4LX+P4iBdaRzown78TjcZw2yd4YVHwyqL2XkIa2NUIv5JDypwDRhLTA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768214022206978.2738135634808; Mon, 12 Jan 2026 02:33:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFDr-00062v-O5; Mon, 12 Jan 2026 05:32:31 -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 1vfFDq-0005qn-5T for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:30 -0500 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFDo-0001uC-Fg for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:29 -0500 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-47775fb6c56so59046845e9.1 for ; Mon, 12 Jan 2026 02:32:28 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f6ef868sm341578045e9.11.2026.01.12.02.32.25 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:32:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213947; x=1768818747; 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=5S99U3XUshmuddLFuBd6ft79OtosHUhtCtEVlD+u7mY=; b=L0lI1o+tQ3J2yddKgVJ9drl1h3b03p9tClBdJuAjRBINN8IHgi4pOe3B9+i7h64OAh a4kycf35AgHrtmeXvuIAZrekhahUziiM61KO8nFurypWYCiz9eWmK1Zj8/iL6NSqPayD RlGVfI9sOkvDjoYr+NAKt7J1/E1BA1h8PC9VjpFuUQxme5NKSz5mtVqlQn5aA+ebmtVH PDKtSc8V7/a5na7QtrWrvgo7AUDx7QZ30YXZCGCCLBLW8x8oS4oeyR5nRLSxhQGCLN47 ZaXSeWqKnr03I0/JA7b6km3UoTDF5XNpie2gAa7iXt5mM7oZpxvHfL1uxan7Nqo5pbqy ZggQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213947; x=1768818747; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5S99U3XUshmuddLFuBd6ft79OtosHUhtCtEVlD+u7mY=; b=Rj6xynnXfwC0QWqfoJMjc37p7es2fK8avc0Dw0G0/C5X7Y6Jw3jiXi+1uicmJ/auY+ BTgLw0dW7/2UDVOLuk/nUSNUqbk3JAoZy31NMUaQYW0qaIzhI4v5PdYk+rNjmXTu/tOZ HVhUSX5wQ9rF7CryskOyS3aMvNqbSB9l2Or323oo3jkqzRbBqV7+0wRPbxSi3ktWakUf 3Dd0OBWieADj+0ZpVGJMxJyAOt1+BTDfXLtiMC4S4paWOLTbojD9uZHG7ueJ3cpSFhsB deJuClF7ZNp6Z7DhI9Xt5+DCIW+XO2QeoDrrhdYMJCnoPfIdQI9Enc/eGxMcAVQbaefN K/0A== X-Gm-Message-State: AOJu0YyyMlxNGhkWBsXIIJ5WA9KPeWGBMICSqWElHT+0HSrM797IW/Yx xkxGPznrABVINrHCQMWxFpXfmyEOpGfbDZC5wnJbC9iH9cPoKEkM+AKVBnJE2RE4TRlai50JbwM s5OWOP9g= X-Gm-Gg: AY/fxX49geeEOzKkzrGF1af4V+wHUbDqQNCLQakdnw5/GsT/lHIUFaB3IcC4vrTwdTD uDMx4GLq2IRARMIg7s/ulFn8k9LMt08rUpUBAwZkdM8KjMzLOh2EuxsPYiAumVk2wGa3knx9HKp kS1Ud9HAYybj8cjh9r9sMfvbo70syapV4MWv1d1QSjudTGlmB7d/ViDPlthpZsOw8VLuQSdtoYY 6rNC9umhIM8NKUL98nhkdf0YREDMBKwcVWaz+Br9Fl8LkoqOp6uJzLttibJXs8vKYroRvX9cgg3 XS4Z1VVI1WQYLr/lFn2CsfO9c2IS+6ChhOIB5ModQniIdC18CB0ML9/snChUGIHE6E4j2rGt0rO 9HXCdcogynoL/g4LMhn0m0wUbT7RGUHV9qD7Or+Uu3X/AENtwTtWEQzCK9UWN38wIWhbyirbm6x UXkt6dTu08F3z73tXRRhTueykI9/llOiItzXsNuQdXO0RAecdtMYXFvUXQYAxp X-Google-Smtp-Source: AGHT+IFg6iH9BJeHq4aOiqxHsjm/MD6f+vy1OWo+rbxM1fwDMXT1DjWBv/68mkoS6E7clyHMfcuiow== X-Received: by 2002:a05:600c:630d:b0:475:e007:bae0 with SMTP id 5b1f17b1804b1-47d84b1fbeamr234567095e9.16.1768213946620; Mon, 12 Jan 2026 02:32:26 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 16/19] accel/hvf: Add hvf_arch_cpu_realize() stubs Date: Mon, 12 Jan 2026 11:30:30 +0100 Message-ID: <20260112103034.65310-17-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::32e; envelope-from=philmd@linaro.org; helo=mail-wm1-x32e.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768214023472158500 Implement HVF AccelOpsClass::cpu_target_realize() hook as empty stubs. Target implementations will come separately. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Reviewed-by: Peter Maydell Reviewed-by: Akihiko Odaki --- include/system/hvf_int.h | 2 ++ accel/hvf/hvf-accel-ops.c | 2 ++ target/arm/hvf/hvf.c | 5 +++++ target/i386/hvf/hvf.c | 5 +++++ 4 files changed, 14 insertions(+) diff --git a/include/system/hvf_int.h b/include/system/hvf_int.h index c8e407a1463..96790b49386 100644 --- a/include/system/hvf_int.h +++ b/include/system/hvf_int.h @@ -106,4 +106,6 @@ int hvf_update_guest_debug(CPUState *cpu); */ bool hvf_arch_supports_guest_debug(void); =20 +bool hvf_arch_cpu_realize(CPUState *cpu, Error **errp); + #endif diff --git a/accel/hvf/hvf-accel-ops.c b/accel/hvf/hvf-accel-ops.c index ffcfe9663b5..b74a5779c3d 100644 --- a/accel/hvf/hvf-accel-ops.c +++ b/accel/hvf/hvf-accel-ops.c @@ -356,6 +356,8 @@ static void hvf_accel_ops_class_init(ObjectClass *oc, c= onst void *data) { AccelOpsClass *ops =3D ACCEL_OPS_CLASS(oc); =20 + ops->cpu_target_realize =3D hvf_arch_cpu_realize; + ops->create_vcpu_thread =3D hvf_start_vcpu_thread; ops->kick_vcpu_thread =3D hvf_kick_vcpu_thread; ops->handle_interrupt =3D generic_handle_interrupt; diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c index 718414cc53c..bf8bed1495d 100644 --- a/target/arm/hvf/hvf.c +++ b/target/arm/hvf/hvf.c @@ -972,6 +972,11 @@ int hvf_arch_init_vcpu(CPUState *cpu) return 0; } =20 +bool hvf_arch_cpu_realize(CPUState *cs, Error **errp) +{ + return true; +} + void hvf_kick_vcpu_thread(CPUState *cpu) { hv_return_t ret; diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c index e3e54c10bd5..089dd4da1ff 100644 --- a/target/i386/hvf/hvf.c +++ b/target/i386/hvf/hvf.c @@ -370,6 +370,11 @@ int hvf_arch_init_vcpu(CPUState *cpu) return 0; } =20 +bool hvf_arch_cpu_realize(CPUState *cs, Error **errp) +{ + return true; +} + static void hvf_store_events(CPUState *cpu, uint32_t ins_len, uint64_t idt= vec_info) { X86CPU *x86_cpu =3D X86_CPU(cpu); --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768214005; cv=none; d=zohomail.com; s=zohoarc; b=nINDcw1/dCvX4E+5Oe/gcv9yeQvTYf0Ys4evbz86WQ/9IXDaPxI3zSwUT3HTaNktM1NXqLZQij9J+3ECdnbMaY+QIx1KXgT2PmgyqoPxCudqxjeSLDCVRIppoRkpfVk2jugGCOkrJ7RXaNDS5xiRpgQM1zhBcnYoy5BvZYozpeY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768214005; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Z/H3tcHxNV5Gv+ubcRhcnU/eZQeg+lU3aNVd2Ihjkzg=; b=jhbZyo+nf8FWVyr5IdXDekARk1Fxn0ZXx7BCpKjLFYELOKk8Km0krF2xs171xJ2BRV6phG1h/8vaLfqBYF8Qe0nLYYnmJHx9IdHzDK1U1PPZvarrJSTnNBTHsOUcfG9IZZYVaqX9anx0Qa4KiiiIUIfNa9C24BozZo5ftNRylQQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768214005591955.0830959120783; Mon, 12 Jan 2026 02:33:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFDy-0006Jc-9L; Mon, 12 Jan 2026 05:32:38 -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 1vfFDw-0006Ea-Q3 for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:36 -0500 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFDv-0001vC-AB for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:36 -0500 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-47796a837c7so42905935e9.0 for ; Mon, 12 Jan 2026 02:32:34 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f418538sm347941935e9.5.2026.01.12.02.32.32 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:32:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213953; x=1768818753; 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=Z/H3tcHxNV5Gv+ubcRhcnU/eZQeg+lU3aNVd2Ihjkzg=; b=jYHZG/qqK/CpEdjFP53CRqNv4IK3KAru6dAdiVUSiLKRcWZUiFsuMss42mx9MJNrkY 9CTL2hiIABM7G+FdTEiSCRXknYXLGaHXK9jCI9hlAZp4UHNbtgkYwganYHSuIAYBgswy fFmlOaC76VRF+HGgXkBr6uAyV5vzGCDc6NMYGsTa/IT/mX+GKmhkJJFOpHxF+3WOBbaO yWs/ymzjd2YslrJ0QMEnv1GH+S0rTaD0qLxYiExiCIST4CUOZ+HiZ9HHP2tvyqfi7qKI Q0udx2jRoi4x4id4HMBvYbh7pXUvw3o4xfZ5p0VwsmpwVbKu+ipOpSHGHy3hICxIdqHy riQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213953; x=1768818753; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Z/H3tcHxNV5Gv+ubcRhcnU/eZQeg+lU3aNVd2Ihjkzg=; b=GU8QzEV1WQ9J9PPfD2kt5AZTOi28z+zRIgqWv1TwTFM9b4p9bWARXv13OAT8JJiSrC PSVNUxKk7nV4K+GAIjmNYLYhIrRJsB7XZWm/SX7L4bxp/JhsTtL6IYby6168VdejCwtg wD1UH2Zrm7RZZNJsPm7QOlcRA+RUnKDyc10dFhUpUFNLzPZ8sXVcVNdXt5QxRGzVgjUY 1GzgpoCwmSXWmoL44UfEOonDpElQnjpy4eFj3b2mnz2wkHmrsrLp1t39QXgOqhFwgpzs VXOuD6TkJbkBUvkpxTWCzaZ7LwRXdZNBzsVw/v+gIqjFpRXri/AhMw2JMU+5xndhgkYD 9hhQ== X-Gm-Message-State: AOJu0YwNCETsDOV4UkMaJ+J0bEnUnXwuA4YnnupD7VFwqpnHm23PSJwy T0sp9cKNlipGgVlAoLfyf571rLAfppcl9bZmmApXwclDmQasAhGi8WPVtDYvsb3B7qy7zLGQk1r MV2X6ftM= X-Gm-Gg: AY/fxX69iirKhGEdrOuZ1yWxUu+aibUEvXXoxCgk4pDNmvFCKGj14AsA2ji87km2Qyk IB3TnZqQHm6h4T9HRfsiStJnJ7SZrrs46fg3iPQhisATWoOY7hz2LRS0cjUNxab/V37M0i5zF0P zLpKD4tI3qk/kNCioJsT2OJI4rrGrx2GyvVG7LoIkeWYhc295Zea48MSGYyhvSQoVcdSM78+V6N VIQ1ThQv1wCair05Udfroz/soL5QUi7PKMjYHkyEdsOm0eK3+6ESSePsYzZwCGMIZXxKfzSJ7X7 SmlzwjMgs/CFhFoddSDiakgCLDc/TJDhRDDbYtCndoQathCxFIMzc7ZrEX3zwF9oO9PMTWsQx29 B52Im1HOiBw8z71MhMS5aiHyiqY7Auc4zdvlQbUvpdockeaXL92Stq2Xq3WIT9cFaj6NNLvMqba lGEVsNo+PO3zrXlodwR1atsmEl6jzqV2oj7vIuAY+gk6ze7FbAW58iSODnDoZr X-Google-Smtp-Source: AGHT+IG6yLqjnscPJXeLpTyo/wSaOXniJA2BzbGl8RcqHrdI8Wgzk4BeJql8k1Iyk3EihGerbBf8Qg== X-Received: by 2002:a05:600c:c491:b0:471:1774:3003 with SMTP id 5b1f17b1804b1-47d84b5b5d4mr168633285e9.29.1768213953442; Mon, 12 Jan 2026 02:32:33 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 17/19] target/arm: Create GTimers *after* features finalized / accel realized Date: Mon, 12 Jan 2026 11:30:31 +0100 Message-ID: <20260112103034.65310-18-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::32e; envelope-from=philmd@linaro.org; helo=mail-wm1-x32e.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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768214007408158500 Call generic (including accelerator) cpu_realize() handlers *before* setting @gt_cntfrq_hz default Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Reviewed-by: Peter Maydell Reviewed-by: Akihiko Odaki --- target/arm/cpu.c | 65 ++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index caf7980b1fc..c1087bf5b92 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1636,26 +1636,6 @@ static void arm_cpu_realizefn(DeviceState *dev, Erro= r **errp) return; } =20 - if (!cpu->gt_cntfrq_hz) { - /* - * 0 means "the board didn't set a value, use the default". (We al= so - * get here for the CONFIG_USER_ONLY case.) - * ARMv8.6 and later CPUs architecturally must use a 1GHz timer; b= efore - * that it was an IMPDEF choice, and QEMU initially picked 62.5MHz, - * which gives a 16ns tick period. - * - * We will use the back-compat value: - * - for QEMU CPU types added before we standardized on 1GHz - * - for versioned machine types with a version of 9.0 or earlier - */ - if (arm_feature(env, ARM_FEATURE_BACKCOMPAT_CNTFRQ) || - cpu->backcompat_cntfrq) { - cpu->gt_cntfrq_hz =3D GTIMER_BACKCOMPAT_HZ; - } else { - cpu->gt_cntfrq_hz =3D GTIMER_DEFAULT_HZ; - } - } - #ifndef CONFIG_USER_ONLY /* The NVIC and M-profile CPU are two halves of a single piece of * hardware; trying to use one without the other is a command line @@ -1702,7 +1682,40 @@ static void arm_cpu_realizefn(DeviceState *dev, Erro= r **errp) return; } } +#endif =20 + cpu_exec_realizefn(cs, &local_err); + if (local_err !=3D NULL) { + error_propagate(errp, local_err); + return; + } + + arm_cpu_finalize_features(cpu, &local_err); + if (local_err !=3D NULL) { + error_propagate(errp, local_err); + return; + } + + if (!cpu->gt_cntfrq_hz) { + /* + * 0 means "the board didn't set a value, use the default". (We al= so + * get here for the CONFIG_USER_ONLY case.) + * ARMv8.6 and later CPUs architecturally must use a 1GHz timer; b= efore + * that it was an IMPDEF choice, and QEMU initially picked 62.5MHz, + * which gives a 16ns tick period. + * + * We will use the back-compat value: + * - for QEMU CPU types added before we standardized on 1GHz + * - for versioned machine types with a version of 9.0 or earlier + */ + if (arm_feature(env, ARM_FEATURE_BACKCOMPAT_CNTFRQ) || + cpu->backcompat_cntfrq) { + cpu->gt_cntfrq_hz =3D GTIMER_BACKCOMPAT_HZ; + } else { + cpu->gt_cntfrq_hz =3D GTIMER_DEFAULT_HZ; + } + } +#ifndef CONFIG_USER_ONLY { uint64_t scale =3D gt_cntfrq_period_ns(cpu); =20 @@ -1723,18 +1736,6 @@ static void arm_cpu_realizefn(DeviceState *dev, Erro= r **errp) } #endif =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); - return; - } - - arm_cpu_finalize_features(cpu, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); - return; - } - #ifdef CONFIG_USER_ONLY /* * User mode relies on IC IVAU instructions to catch modification of --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768213984; cv=none; d=zohomail.com; s=zohoarc; b=Dsr4R/PmC2kvkeuJ5rK2XzlWco/5y3CAYWGsbLUM4bUYjV7Z9/UzIjpX+n3Zl3IoYaA0ZTC4b/U66u/PUhPooE9X4c/FD5etRvsbnDQcK9S8hRI53XUyLFu+V+SEO6aqzQSii+MiH53Tea/h6MPPSVmx73Yh+mnFwdy+KN95YdM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768213984; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=O0DOizNYs3UPa9+lJDtLfBdhlsyXMboB2ENpO7Py5Ag=; b=B8F3rk2uOHadbhfOfRKBkW97hKkC1wEbrIT2rasuyRC4rW0QNk8axAPY24OxiEZ3eMewrKAOMrWcmIXiTWVaVHpFP+kCf1zSWEkamsAy6PQ7TDooo7XTBLY+GDHx3t+7uZ36n3gW6nLkyiwkh37vMxVM8b9b/RtG/IwLyXOR/ow= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768213984583923.7377485377203; Mon, 12 Jan 2026 02:33:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFE5-0007Ag-Vu; Mon, 12 Jan 2026 05:32:46 -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 1vfFE3-0006zN-Tr for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:43 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vfFE2-0001xB-8a for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:43 -0500 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-4779aa4f928so63850735e9.1 for ; Mon, 12 Jan 2026 02:32:41 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d865e3dfasm125106095e9.2.2026.01.12.02.32.39 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:32:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213960; x=1768818760; 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=O0DOizNYs3UPa9+lJDtLfBdhlsyXMboB2ENpO7Py5Ag=; b=jX39qEahLZvE4Oml5RskVSjhsVRP/SNaPrFgHOJQC31KoM7yNWRjFD0B3BMz8B0vcY m9q5RjBPa+QyLuEeW9eeeSFj5bmKTuG04QPaC0VCGBBJcDwHS84IX0GqvXw7T7I2ouIo GC8mOpoKijZSTWyKC3HSIaVLZ0dZDMoqH0eMXlTE5bEge5ryjGt5+pbTzDxTeC8COfIo g5NwWBFolWeXXXY8t/t32e9Q4jTYb1ljQDjzv31cE/zijka7ohfTLvjs6YejebggX/2l iE6Bfc6cyt73PiZ6zIr2EMfyuN8z30o+BXsKkYaaVU+MEk9MkKWF9iwnU9No1COIyKR9 wV/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213960; x=1768818760; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=O0DOizNYs3UPa9+lJDtLfBdhlsyXMboB2ENpO7Py5Ag=; b=dCYyLazi9kZk6sJRZFqrnWntztvFqR5tWg0MgwG0K6clkcJH7NeCaGse/8Zz0QfOT4 MDZ1X/EEi1jOKVji5OY/gw2TG3Fc8DkPRDrhlU20u3ABonHFxRewCROUkFd2OkDZR6kc iw+wpV4uzappVLLqrFo//Anz5UxvT0pdXnkPxsg7fwv6FMB/Q+xXwiWBp6gli7C2xaM4 Ii9PX9/0Dsg1K6zrrRtQ6MNasZLkrQZvGnHMHAyOUI31zqAZv9vnVpUxEOhi6jyOwBdZ dHuNlcVeUBVgIb5TVVn+7uhQb0KLBabs/Jzu//e2fXHtzYedLhGRsGRLrYbCP5Jx86SI BdAA== X-Gm-Message-State: AOJu0YyoLLfBFa+mikxDnAiS30IzNFPcCeVxD1GVZ4LcfkQIuGSOJIDj 7TltNO/8ji4hw+heriouMtJsBZIFWNlaZvtcJIp+yOqS2lhlb8SxIzRxOfhc2aOJWmUi5Kcshzh rzeIwJio= X-Gm-Gg: AY/fxX58fSbqYLtpdvQm6dVYzqpiOUHtebKDjv2ZQCSZTTLwegzQHQoRcX+sQI+S4SL SyiUyWpm7/xRxS0JINyws8984ZvqF9TfvZICl9+uPCEBS853fv7Cz82FDS4/inmATkGeQ5KAOnR fmx2W0dJ3vPXO8ju0hbjOWe3DSkhvJg8JQ3z0jw4otWru6BJvmT02/ABxNbbKks+Hd7ec1pmH+v CYl5bJh5NhB1z3xJ1zatBXe/hgFV/07LziB81zbqUa6RPhkVKNytQOP/0C7n8MXjCgGsaYdCXxZ 6r14HyOLuH9+icZP1r2/UU8n3AoZApSP7yF94ydmSCcJ6IeGeFa5D6Io7sMQj0b7Xsc5gMX0pnd cvefZynMVmrQKPg1KfRHjq3oPxOBr30HeehLxLO0NZYID1ONdiLrKUPqoWDQrzZ1PSqqkHPLVbr ojLPdAk1u0EwKDzUPxjjHwbzsGOdbEwO4NzEK+QvRkUEMDstsFT8jl+odrHetA X-Google-Smtp-Source: AGHT+IGbiSyJ0w/Aqv3K13j9oAQ3PQ8IlZI+mIeWFoPwtrGwy09HAZAVqSNQ7z1HxKEziolaSfhfyA== X-Received: by 2002:a05:600c:4f53:b0:477:7991:5d1e with SMTP id 5b1f17b1804b1-47d84b3860fmr168540275e9.25.1768213960429; Mon, 12 Jan 2026 02:32:40 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 18/19] target/arm/hvf: Really set Generic Timer counter frequency Date: Mon, 12 Jan 2026 11:30:32 +0100 Message-ID: <20260112103034.65310-19-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::32c; envelope-from=philmd@linaro.org; helo=mail-wm1-x32c.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=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768213985280158500 Setting ARMCPU::gt_cntfrq_hz in hvf_arch_init_vcpu() is not correct because the timers have already be initialized with the default frequency. Set it earlier in the AccelOpsClass::cpu_target_realize() handler instead, and assert the value is correct when reaching hvf_arch_init_vcpu(). Fixes: a1477da3dde ("hvf: Add Apple Silicon support") Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Reviewed-by: Akihiko Odaki --- target/arm/hvf/hvf.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c index bf8bed1495d..e4c0d936f1f 100644 --- a/target/arm/hvf/hvf.c +++ b/target/arm/hvf/hvf.c @@ -897,6 +897,13 @@ cleanup: return ret; } =20 +static uint64_t get_cntfrq_el0(void) +{ + uint64_t freq_hz =3D 0; + asm volatile("mrs %0, cntfrq_el0" : "=3Dr"(freq_hz)); + return freq_hz; +} + int hvf_arch_init_vcpu(CPUState *cpu) { ARMCPU *arm_cpu =3D ARM_CPU(cpu); @@ -908,7 +915,9 @@ int hvf_arch_init_vcpu(CPUState *cpu) int i; =20 env->aarch64 =3D true; - asm volatile("mrs %0, cntfrq_el0" : "=3Dr"(arm_cpu->gt_cntfrq_hz)); + + /* system count frequency sanity check */ + assert(arm_cpu->gt_cntfrq_hz =3D=3D get_cntfrq_el0()); =20 /* Allocate enough space for our sysreg sync */ arm_cpu->cpreg_indexes =3D g_renew(uint64_t, arm_cpu->cpreg_indexes, @@ -974,6 +983,15 @@ int hvf_arch_init_vcpu(CPUState *cpu) =20 bool hvf_arch_cpu_realize(CPUState *cs, Error **errp) { + ARMCPU *cpu =3D ARM_CPU(cs); + + /* + * We must set the counter frequency HVF will be using + * early, before arm_cpu_realizefn initializes the timers + * with it. + */ + cpu->gt_cntfrq_hz =3D get_cntfrq_el0(); + return true; } =20 --=20 2.52.0 From nobody Mon Feb 9 04:08:38 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1768214016; cv=none; d=zohomail.com; s=zohoarc; b=CeW+8vA8nwN9KXYhs9nwXzzFH++deq2/aG/gvxR+SkYj/N+BScKWSJySWgJNa3s5jPUnliBWw8x+m295REbIzfJWnTwsjX1sR9EfzHMKRm5YHxb36NGVKNpFCgZDPjqamapTde0AkPLHXr4fyoouy4WMUoX5fzBy8MMvgkkFF5o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1768214016; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Yi610Iff36R1meHawrJl8o7aP+kuOQieFdALRJG5fMk=; b=b0Vk5FqQfmkD9/0uRwHfJMcW8SUoQDU6NFUWulgUt9pgawd0j8Uiqt41aqzKdTbEMshybwwSsADkrvEfxpbF3P2QVSFVo8vzJDMNeQ2tNLfYkaex2qmKjjROTN+uuC852yG/ho+CPbMWgyMTcs9PuuUGxdmPmf8RaFdBLxsRssk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1768214016490297.77206267267934; Mon, 12 Jan 2026 02:33:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vfFEF-0007gc-6G; Mon, 12 Jan 2026 05:32:55 -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 1vfFEA-0007Z4-Nx for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:51 -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 1vfFE9-0001y6-6C for qemu-devel@nongnu.org; Mon, 12 Jan 2026 05:32:50 -0500 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-47d59da3d81so22604005e9.0 for ; Mon, 12 Jan 2026 02:32:48 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd0e16d2sm39252711f8f.13.2026.01.12.02.32.46 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 12 Jan 2026 02:32:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1768213967; x=1768818767; 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=Yi610Iff36R1meHawrJl8o7aP+kuOQieFdALRJG5fMk=; b=uHwd7mSJO4KV+3p+shCXRZbxjuqG+QzFhQikOHjKY8vs2N5FwEzjAtuvcTCtFfcUt+ iIaHAzoqSCZ/SkEzTgHAJYwc3GFM1As5iG6uqWe2Hq58W8w1QrU2zx6RNxVH9dtJJAs7 E6E91S8gMAcjL4Sbp3RwNXkQu7kRzg/2TR0/TSP3yNkL7jXn7A1W6anzO4GEVGyM/Dxi luVgphGqCU6aM3Zc/gk7iiZIG+Qo3PdN0/LyQgDMYmcE7tzXpGbPOrsHv9kVD3cj+O57 vyrcKbeVE8jGzMupCQQ8iPJlbgm/s++Ax2FSSvV3sJXPtMeiEK64rv8y5gLuqQkHQhw6 FpoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768213967; x=1768818767; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Yi610Iff36R1meHawrJl8o7aP+kuOQieFdALRJG5fMk=; b=skgj9yNYQmOLryapmXWih8qKTi8jRGUcOlXNqS3lMRdxQtDg5HQ/+oI6pw3c6yjIuF V6Mxv21AhznxWZyNShpyataKusyBPjWIvAVtgOGJ8a2lcTcTGcIRrUGtikffdODobkuK THzQAMJ2CnulCTsUqqRt2HF0UB6yQORZKgCjwDpFG9Gorl3eKWfDsMagEhFAvRswe6Wh YCxByCQLD8592kaFJD0zhPVW5+LggN8SVC7YuAPIqYd/c5TCmBNFEVYJ7SHCN8wHn5Yx RJ/OgyHJT8HgJ+rWInMuCugFAeH+jN/zAfaooP9/gp1jGHRdxFM78yOYacRvOl7d29qh QKzw== X-Gm-Message-State: AOJu0Yyw8pbiO7FNLP5RrAadwpyeiXeI1DbqUOOgvzVsDbAxp1k0IMoM eHrPfZhRHv6UMya+xCE+u7DX3lC9qpaNcX6Uc/kVr8umxj+nWXBHwiQm1FEtOzY9BADMwJcHObz DrcmDDO4= X-Gm-Gg: AY/fxX6O2brcfy69o7Z+rgtH2y/xuvh95CArTgMwbpJIFG6q2Yk3lWWZrePAxRWLEN6 WMSndYj+n6l3NQbRH0+6qJSy3C+Q65uCN7M1B9Jdmcpv3tw+FHStzw8+PVbANiYT9ItwyYnE4o/ kjNoF5lpMop/IITSYIPXZzwJceGcfgOoG16Mbm8kgKW52zW/mP01PC14YCsZkbBbXikABZIys4k hKdxwrS8T0UPzZH2sYtygRDLOILWBEVBihPB942ZQEbIuzS7WO34vwmtAasK4E14hlGcnRF44iK oMZOmAOa8GfoavarDMdXLgy87IeJRvea0HgCCeO6sHkJh2zIyFmdtsvNc8yNn8ZgqcpZTmncSSj y8aTEnAV1RnTAvXUXZlIQCcDnhTbM8l8G/rE7TBDhryJk3JrurdnEeNkMhYy/Bs0W5dtF/FtzVD 2oq7CnzRe6J6drCl82ykDorHIqyCHc7WERiOQ/b2X5kzK1aKty/MM6T8fG8A2Q X-Google-Smtp-Source: AGHT+IEquge7pQgNftHMqxDhYSqaA5qSgQc2zbRqg0p+uHgbrKs5zaILl9asfJozY1p/Zs0HpN7Mfg== X-Received: by 2002:a5d:5f51:0:b0:432:84f6:827f with SMTP id ffacd0b85a97d-432bcfa133emr25428395f8f.9.1768213967293; Mon, 12 Jan 2026 02:32:47 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Joelle van Dyne , Mads Ynddal , Phil Dennis-Jordan , Nguyen Dinh Phi , Mohamed Mediouni , Cameron Esfahani , Roman Bolshakov , Peter Collingbourne , qemu-arm@nongnu.org, Akihiko Odaki , Alexander Graf , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v6 19/19] target/arm: Only allow disabling NEON when using TCG Date: Mon, 12 Jan 2026 11:30:33 +0100 Message-ID: <20260112103034.65310-20-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260112103034.65310-1-philmd@linaro.org> References: <20260112103034.65310-1-philmd@linaro.org> 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 (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=2a00:1450:4864:20::331; envelope-from=philmd@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=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1768214017434158500 Only allow disabling NEON when using TCG. This avoids confusing user experience: $ qemu-system-aarch64 -M virt -accel hvf \ -cpu host,neon=3Doff,vfp=3Doff,vfp-d32=3Doff qemu-system-aarch64: AArch64 CPUs must have both VFP and Neon or neither $ qemu-system-aarch64 -M virt -accel hvf \ -cpu host,neon=3Doff,vfp=3Doff,vfp-d32=3Doff qemu-system-aarch64: ARM CPUs must have both VFP-D32 and Neon or neither $ qemu-system-aarch64 -M virt -accel hvf \ -cpu host,neon=3Doff,vfp=3Doff,vfp-d32=3Doff qemu-system-aarch64: can't apply global host-arm-cpu.vfp-d32=3Doff: Prope= rty 'host-arm-cpu.vfp-d32' not found Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Reviewed-by: Akihiko Odaki --- target/arm/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index c1087bf5b92..05fa3339b1a 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1460,7 +1460,7 @@ static void arm_cpu_post_init(Object *obj) =20 if (arm_feature(&cpu->env, ARM_FEATURE_NEON)) { cpu->has_neon =3D true; - if (!kvm_enabled()) { + if (tcg_enabled() || qtest_enabled()) { qdev_property_add_static(DEVICE(obj), &arm_cpu_has_neon_proper= ty); } } --=20 2.52.0