From nobody Sun Sep 28 16:28:09 2025 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=1758740757; cv=none; d=zohomail.com; s=zohoarc; b=EXYc6TGoJisuHHYZUkYENqYUHt0ozBrvGSdO93HXqTw2XDdKdUxENmpkB4xzFGjmMVzzhjp0NSvrwkdNsoVjIaDKlhun6Bkp97eUQIrdSYPlNYS/JBY636L76jpMKzRzmwfy7/hxfmTy/mdXSbbN2RcpLiJ1/x7SkriUTSI117M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758740757; h=Content-Transfer-Encoding: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:Cc; bh=7zfQ6Ek+RL90OKpISh7ii2ukdZCuPaJC9b2Qi7cmtOQ=; b=nzEMjDf5PmFA7sjvX/WYaLSRghnxm6s1SpBIlzgMa4JcowbsyVrQDbaHEqxxveAwj9JvK5RPzjQ+uDcSvQP0SOqfmGU+xHRbBXl4P8+escRSHC6OCsFQJaadzkUECWm1VStPgUwAJZ/DOn8nELJySxB5EyQELzXJZPisfylmGzM= 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 1758740757137202.87443297450375; Wed, 24 Sep 2025 12:05:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UnI-0007rW-Jc; Wed, 24 Sep 2025 15:04:49 -0400 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 1v1Ulu-0006v3-8u for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:25 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Ujo-0007mb-53 for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:14 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-32e715cbad3so190442a91.3 for ; Wed, 24 Sep 2025 12:01:10 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740468; x=1759345268; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=7zfQ6Ek+RL90OKpISh7ii2ukdZCuPaJC9b2Qi7cmtOQ=; b=qc5N/N5O5pj3JmzR6IX6IAE3BGHKqSXaB4MZk4IBhAPc1yxl98ZKg3GtQgFCVgbmC3 kop//9JWF7HGqsR3aL6r+8tj7HWDNPTnfKMPtDH2sFvsUXAwZVDI2+PCKG0IErEX7dA4 EYg7jkVpcwDo78qbf4o8SqGmIfUByIB5JaXzwPX2bNFK1Gb+V6/MfFfH/W+VcZ6vBkKu cxWBkuOw0TC9rTMz6iB20QcuR0hYVcK3AUfaVvZsTlc5JYxvUEbhpPJD5PKe0+Flr9Ta iNtuVz80hkF54G/j6jtn46sfEoriD/TcZo4dwAIQ7+59cF+2eCyaWNgh0YpxjWRoRd/j /uOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740468; x=1759345268; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7zfQ6Ek+RL90OKpISh7ii2ukdZCuPaJC9b2Qi7cmtOQ=; b=c+I7SiLaJetCXYK3yvqaobeiuFCRqhfOyA5/2GMFbPicW/H11u00zdmKCeVw7NqMAC jCUzr/gwn4CBBlip3m6ilXbgwJr/XmnobavHoeSNu0jP8g7s666dHS11pN3p0NejBYQf jpemE6ZA14v5B0BWbDummtglEGSlcv+pu07pcFDkH/F9VgO0iRdC1V8+GEI/a6qc4KZ7 xs72RGpMBCuzxAlgIjnbjrN9DUyPBVNJjyHY9AdQDgXzCThdBYeuQjtk/KoPOxBvrwE3 QFt3hUZjKnlqLzJRZy4cEnsyej0pW9OPTQxYoBhAF9YcvilXyjr3tJcmTugHvmNvWty3 gYPQ== X-Gm-Message-State: AOJu0Ywn3PcWlUnH+L9D0nJ2+MlmCWIarZKyMsaqP/zdMb+WjxWLtECm bLxG2b+W/JfY3kbQysV7EiSskez4qSWt2ZcNBuSLJa0kqg3FlaZvU+wK7hpI+yUHyXcstLklXFc +ryeB X-Gm-Gg: ASbGnctbsRlLaKA00o3LhlGBqe+fLRrsYWOByfm7AFKaNjmRfY1cAHexg2QEsBXeuXn rXXfb2CvIv1e4QVbXuMkqnwRvmpIat808CC4W3ZC9GK3Xb04NciDdSfTLrymrVcg9P3OXMn9o0g SupusQmVh2tPTCDtnljOPPWjnTNF63u5j1AhezD0cx3zDXyZPMdHZxQjWTB1/GonLt2mScmQDFT A9t5qyP6bCjj0XjP+LDJaEgcKXxTQO58YbdSB1nLbmX8tni/+UQ7o+f8EZYh7hs14QGr2dSOI/N 7s1K1niUB6gA/fXQFXk+E5qwxoIDHJI/fdfQaG8Sn2peuLTmiJdZ5/XSJIOpLY5mQKzbobzOgya BPodaPu9V7BzbEhQSpXz0Taj25p97 X-Google-Smtp-Source: AGHT+IGr3+KLsWr3rrQRWgABZRP1peKSl2jFU/iGl7REJ8LNZQcgNTNa5L5Su73kiR4sDyeUTdf/kw== X-Received: by 2002:a17:90b:2786:b0:32d:3895:656b with SMTP id 98e67ed59e1d1-3342a22b08dmr950085a91.12.1758740467804; Wed, 24 Sep 2025 12:01:07 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 01/32] linux-user: Create vdso_sigreturn_region_{start,end} Date: Wed, 24 Sep 2025 12:00:34 -0700 Message-ID: <20250924190106.7089-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758740759183116600 Content-Type: text/plain; charset="utf-8" These variables will be populated from the vdso, and used for detecting whether we are executing the sigreturn. Signed-off-by: Richard Henderson --- linux-user/loader.h | 2 ++ linux-user/signal-common.h | 2 ++ linux-user/elfload.c | 5 +++++ linux-user/gen-vdso.c | 6 ++++++ linux-user/signal.c | 2 ++ linux-user/gen-vdso-elfn.c.inc | 7 +++++-- 6 files changed, 22 insertions(+), 2 deletions(-) diff --git a/linux-user/loader.h b/linux-user/loader.h index e42b8fa1e3..da9ad28db5 100644 --- a/linux-user/loader.h +++ b/linux-user/loader.h @@ -117,6 +117,8 @@ typedef struct { unsigned reloc_count; unsigned sigreturn_ofs; unsigned rt_sigreturn_ofs; + unsigned sigreturn_region_start_ofs; + unsigned sigreturn_region_end_ofs; } VdsoImageInfo; =20 /* Note that both Elf32_Word and Elf64_Word are uint32_t. */ diff --git a/linux-user/signal-common.h b/linux-user/signal-common.h index 196d2406f8..0b04868727 100644 --- a/linux-user/signal-common.h +++ b/linux-user/signal-common.h @@ -25,6 +25,8 @@ /* Fallback addresses into sigtramp page. */ extern abi_ulong default_sigreturn; extern abi_ulong default_rt_sigreturn; +extern abi_ulong vdso_sigreturn_region_start; +extern abi_ulong vdso_sigreturn_region_end; =20 void setup_sigtramp(abi_ulong tramp_page); =20 diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 26c090c95d..28f0909d1a 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -1659,6 +1659,11 @@ static void load_elf_vdso(struct image_info *info, c= onst VdsoImageInfo *vdso) if (vdso->rt_sigreturn_ofs) { default_rt_sigreturn =3D load_addr + vdso->rt_sigreturn_ofs; } + if (vdso->sigreturn_region_start_ofs) { + vdso_sigreturn_region_start =3D + load_addr + vdso->sigreturn_region_start_ofs; + vdso_sigreturn_region_end =3D load_addr + vdso->sigreturn_region_e= nd_ofs; + } =20 /* Remove write from VDSO segment. */ target_mprotect(info->start_data, info->end_data - info->start_data, diff --git a/linux-user/gen-vdso.c b/linux-user/gen-vdso.c index aeaa927db8..d6a2cdaa83 100644 --- a/linux-user/gen-vdso.c +++ b/linux-user/gen-vdso.c @@ -36,6 +36,8 @@ static const char *rt_sigreturn_sym; =20 static unsigned sigreturn_addr; static unsigned rt_sigreturn_addr; +static unsigned sigreturn_region_start_addr; +static unsigned sigreturn_region_end_addr; =20 #define N 32 #define elfN(x) elf32_##x @@ -215,6 +217,10 @@ int main(int argc, char **argv) fprintf(outf, " .reloc_count =3D ARRAY_SIZE(%s_relocs),\n", prefix); fprintf(outf, " .sigreturn_ofs =3D 0x%x,\n", sigreturn_addr); fprintf(outf, " .rt_sigreturn_ofs =3D 0x%x,\n", rt_sigreturn_addr); + fprintf(outf, " .sigreturn_region_start_ofs =3D 0x%x,\n", + sigreturn_region_start_addr); + fprintf(outf, " .sigreturn_region_end_ofs =3D 0x%x,\n", + sigreturn_region_end_addr); fprintf(outf, "};\n"); =20 ret =3D EXIT_SUCCESS; diff --git a/linux-user/signal.c b/linux-user/signal.c index cd0e7398aa..804096bd44 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -50,6 +50,8 @@ static void host_signal_handler(int host_signum, siginfo_= t *info, /* Fallback addresses into sigtramp page. */ abi_ulong default_sigreturn; abi_ulong default_rt_sigreturn; +abi_ulong vdso_sigreturn_region_start; +abi_ulong vdso_sigreturn_region_end; =20 /* * System includes define _NSIG as SIGRTMAX + 1, but qemu (like the kernel) diff --git a/linux-user/gen-vdso-elfn.c.inc b/linux-user/gen-vdso-elfn.c.inc index b47019e136..c2677a146c 100644 --- a/linux-user/gen-vdso-elfn.c.inc +++ b/linux-user/gen-vdso-elfn.c.inc @@ -84,9 +84,12 @@ static void elfN(search_symtab)(ElfN(Shdr) *shdr, unsign= ed sym_idx, =20 if (sigreturn_sym && strcmp(sigreturn_sym, name) =3D=3D 0) { sigreturn_addr =3D sym.st_value; - } - if (rt_sigreturn_sym && strcmp(rt_sigreturn_sym, name) =3D=3D 0) { + } else if (rt_sigreturn_sym && strcmp(rt_sigreturn_sym, name) =3D= =3D 0) { rt_sigreturn_addr =3D sym.st_value; + } else if (strcmp("sigreturn_region_start", name) =3D=3D 0) { + sigreturn_region_start_addr =3D sym.st_value; + } else if (strcmp("sigreturn_region_end", name) =3D=3D 0) { + sigreturn_region_end_addr =3D sym.st_value; } } } --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1758740727011643.4881415904414; Wed, 24 Sep 2025 12:05:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UnN-0007ub-LK; Wed, 24 Sep 2025 15:04:53 -0400 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 1v1Ulu-0006v1-4P for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:25 -0400 Received: from mail-pf1-x42e.google.com ([2607:f8b0:4864:20::42e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Ujs-0007mx-4E for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:16 -0400 Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-77f358c7b8fso1032845b3a.1 for ; Wed, 24 Sep 2025 12:01:11 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740469; x=1759345269; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=updEquFTYNbXcHlBVDd6fTmOXTS+3MFAS45UOphconU=; b=Av5Xg3PphnbOWfKV1RXopwrwzz6aoatRzW/EdByRss3FvPByLo6QQXytfxUswbLQO8 efA0QuMt3nVJlgJpHXf4RYhf90LpKURGkoONfxyr4JGfYJguRvecB6fSo69jHqjL1hPq 4YHievs4hiYc7zXGFjf66SIJs5T9Vv033LptmhJi2OEIkGY8QM0H7RaVN2ak+VGE11Kp TpXmGEy64Y04KKMKJTu2xOk+IeyDS/J0hakKfHuerEfPWJqhKWRWrL98BBjk0tw8ZXL8 JzNTXlXk0mpVmh8uMG45pGgVaA9Uk6Lx16sK6eKDpLJ7G+LmJdmZS7QTVlvNlQ1GyLKk 3/pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740469; x=1759345269; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=updEquFTYNbXcHlBVDd6fTmOXTS+3MFAS45UOphconU=; b=Dk5kQuo1tQnx/1UKE1Pz92hcCuotO8eKYsGOGuGJaxPeUnDPlzTXmCuILs6kkMiKPQ FB8T6QwsT6jX0JDfqgL8jK/KkbIWVHF80HBRXhWkfg/MjbK9Qt6TReDP94UT9t+vgdxp zGTyjEUaRvfJp6FJ6HnYNdjc4fwdxXJNeSSOoETTzVcKuTu+7j/BIkVW3W4bnVsVvaFA +IT1/aAiLnVFKn47GSTSgLanhh1HZzP9eGt2P1s93FeAqZtEpsCPkxzd0IducASltdGC GJnWT7XMamaVC/1T5lyIUmxA2TOrGPCZeiFENJEhgTuDV+V+N4qhbYnxNEHzLmwnXWq4 qXCQ== X-Gm-Message-State: AOJu0YwGxc3P/VjkrxfWG8eDP1cXD3mjQDhUZM6+6IZFtwLbYivuW1GK kBnyayhxK/1xo3veXiXQw2l2C0mX8oKacrraqF/qNcJQyAIFYCX3Rq2MinEFLfpcEStJuHdYrGd /kh0p X-Gm-Gg: ASbGncvUu1AR/FtQh1K4y17vOBzhXnACOUm5jNa37M15HFJwTqQbg24rl41Q+ByH7Wi bI9ZDn+XZuEWQGArPFhCWAQWw7A8QjbnCm/M658eoorVBNfJAyehur3T1rH+LlZMN62Q23do0gs hZkBsitQJXieekvrwx1gf5uoky7oJWXfdHxrZdsrmtwdGYDc+/Bo9XI8r0CGeVBhb+xND/nOaOU kKhf9bAwEV0hlBdsjX0AyZ2cZIb3nqOpy3sPIrGs1dKh1gWoGMs2qJsgTDeIxk8qIhCfZXittUb JcmH6NJFWZSXKPbrB7uo7YavOGG+pn/OdD4RARaC4Dnnl37KkmTuweOX9v91wDrFuCP9kbKG4vX rGUSY1ws2a8TOUsxikoplAD+tzQWV X-Google-Smtp-Source: AGHT+IF5gvl0aCvzJf/u3LSvMWgxgK3Goh/PuvMPcYKyarwlCEvcZFl3an7C9bQ6SS8c5dz1zwcRCw== X-Received: by 2002:a17:90b:1b50:b0:32e:dcc6:cd33 with SMTP id 98e67ed59e1d1-3342a4b90e0mr567076a91.11.1758740468697; Wed, 24 Sep 2025 12:01:08 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 02/32] linux-user: Populate sigreturn_region_{start, end} in all vdso.S Date: Wed, 24 Sep 2025 12:00:35 -0700 Message-ID: <20250924190106.7089-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::42e; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42e.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1758740728747116600 Content-Type: text/plain; charset="utf-8" Mark the regions which contain sigreturn syscalls within each vdso. Rebuild the shared objects. Signed-off-by: Richard Henderson --- linux-user/aarch64/vdso-be.so | Bin 3224 -> 3320 bytes linux-user/aarch64/vdso-le.so | Bin 3224 -> 3320 bytes linux-user/aarch64/vdso.S | 2 ++ linux-user/arm/vdso-be32.so | Bin 2648 -> 2724 bytes linux-user/arm/vdso-be8.so | Bin 2648 -> 2724 bytes linux-user/arm/vdso-le.so | Bin 2648 -> 2724 bytes linux-user/arm/vdso.S | 2 ++ linux-user/hppa/vdso.S | 2 ++ linux-user/hppa/vdso.so | Bin 2104 -> 2224 bytes linux-user/i386/vdso.S | 2 ++ linux-user/i386/vdso.so | Bin 2672 -> 2792 bytes linux-user/loongarch64/vdso.S | 2 ++ linux-user/loongarch64/vdso.so | Bin 3560 -> 3712 bytes linux-user/ppc/vdso-32.so | Bin 3020 -> 3140 bytes linux-user/ppc/vdso-64.so | Bin 3896 -> 4048 bytes linux-user/ppc/vdso-64le.so | Bin 3896 -> 4048 bytes linux-user/ppc/vdso.S | 2 ++ linux-user/riscv/vdso-32.so | Bin 2980 -> 3124 bytes linux-user/riscv/vdso-64.so | Bin 3944 -> 4104 bytes linux-user/riscv/vdso.S | 2 ++ linux-user/s390x/vdso.S | 2 ++ linux-user/s390x/vdso.so | Bin 3464 -> 3616 bytes 22 files changed, 16 insertions(+) diff --git a/linux-user/aarch64/vdso-be.so b/linux-user/aarch64/vdso-be.so index d43c3b19cdf6588757f2039f2308a8bce21aed9c..4089838b30535738e89252a146a= 039af54ed8be1 100755 GIT binary patch delta 372 zcmbOs`9pGoKI4y#1`&)RyJD|o>HWC-e5%H5Ca1P4-f+Z z%LfPzCN+U1O#I8_0yb-3J4S~8A0a9j7eHt*=3D?)~hAbgezB=3DIPOdS(wK@d81hITIU& z>uZ5_!>qUgRUiPQCnJf!fr@hg>6J+0JCM}xM-o2)7f(($@JUXqDAdbmP)T7>sbDD1 zOfO0;DJ{y2FG@|%%+HgKFD^+eD!~wsPt8l&T*;oqIB^2Y=3DGz=3D9%$y5=3DhVlWi_+$;zG-qO?aDAW<0|O6K;|-_+0U(`@B>n~} z&H%?iU*Gy7?J< qAme6hP8DX(0-!EFAQqjR!K2Ta0X1XQSxE{t}Xmv61yy2m1;okeN+zms!1<2TP?yu+d>!~g<33?Ep) z3^<_)X7Mn5nViXHFKGwlF*1Dozkm_00L*Zoe2`6CG72i|!Hg{!IA<+TPzY$l zjmeJe;*)PM2{5jl%*ZUxxPNjWyOdRaibY7VlU_c9N(zHY1w(OWdQoagX;EH$QEGZ- zeqMZWNn%k6rf_Or%H~S;c*cnnST^6_P+;a=3Dzyz_I4@ikmX64c5oWTwexiSxrfSl257}AgzHD2Uk@GeFM#i?fJDcY)-eH-%g3Uluh=3DGBD zk>TV21&lxj5|Ez!kxg7u4=3D4hX^dyyqIfNkk=3DK=3DYtKt30gzX`~XM({ltP67o2;R4CYRh3x*p%!}i3@RlI z#hK|vsU@XFdGST5>6!U?@x>*HMOcJW^HMgKu{APtUH}@z55y9axTIM-fQ);S6}Xf| O(}1igKnw$nAO-;P2tZ~4 delta 232 zcmZ1?dP8J_GUJAcDhEV9iF@2Qn5bfLZGwFE!TAAV%KxoCZv1hKW%4~%*?J)c28JI% z%)rR-|09r+W?*1x1kwsj3=3DBL#TAP7^2`mp}a{;j(P~{CE4O1TiVuOGnM1LGme?E}Q z0W=3Dt-zX-@r1=3D3tlejAVdyyqIfNkk=3DK=3DYtKt30gzX`~XM({ltP67o2;R4CYsV*V8W`=3DtC3@RlI z#hK|vsU@XFdGST5>6!U?@x>*HMOcJW^HMgKu{APtUH}@z55y9axTIM-fQ);S6}Xf| O(}1igKnw$nAO-;BYCz-w delta 232 zcmZ1?dP8J_GUJAcDhEW2jvP6cAn`ta_SEXT7Yg+lW8zuPZ2WPIW%4~%*?J)c28JI% z%)rR-|09r+W?*1x1kwsj3=3DBL#TAP7^2`mp}a{;j(P~{CE4O1TiVuOGnM1LGme?E}Q z0W=3Dt-zX-@r1=3D3tlejAV+%m4rY diff --git a/linux-user/arm/vdso-le.so b/linux-user/arm/vdso-le.so index 38d3d51047372391b3125c3f9f6ea5401f04bba1..d34e577b69e6cb22a90982570d5= e66a1fa22e195 100755 GIT binary patch delta 309 zcmca1vP5)(0^^^Fiibto-btLS^tfAl`qJz2U8lY?Z_Q&mz46Bp7TE?C1}NZRPy@0S zAn~my?_`y)w*!j)fU03+`1s!)$ZiCxQUKCS3_J|sK>7z0kN^WNhAbd`gAu|5sc(QV z!K5IN-vwml1NCzNX(6Egc|bZ9$mfFcHv#Er1mBzCBv2p_A;7?poNQne6;a`(m(QS5 z!cd%iibs{A2M=3DDJTKY)!fEEqs*sO2HQxVB+W6xL%j7$(GW9|X3=3DBVj z7z7v@KK_>m(v2((3<^M+iGhbf8%Y0P0uo@r#b5`dZ!ki5AoU>-CYTfi^5cN4e4u^~ zAT0#cUj(F6fqX6~zYR!7Blz+RbAbYZ2muC$X+$tBI2!N$O_Y4Sua;mI{z0*q3Vd%45`Chsqh diff --git a/linux-user/arm/vdso.S b/linux-user/arm/vdso.S index b3bb6491dc..d84d964730 100644 --- a/linux-user/arm/vdso.S +++ b/linux-user/arm/vdso.S @@ -140,6 +140,7 @@ SYSCALL __vdso_gettimeofday, __NR_gettimeofday =20 .balign 16 sigreturn_codes: +sigreturn_region_start: /* [EO]ABI sigreturn */ slot 0 raw_syscall __NR_sigreturn @@ -172,3 +173,4 @@ sigreturn_codes: =20 .balign 16 endf sigreturn_codes +sigreturn_region_end: diff --git a/linux-user/hppa/vdso.S b/linux-user/hppa/vdso.S index 5be14d2f70..a6f8da2981 100644 --- a/linux-user/hppa/vdso.S +++ b/linux-user/hppa/vdso.S @@ -156,8 +156,10 @@ __kernel_sigtramp_rt: ldi 0, %r25 ldi __NR_rt_sigreturn, %r20 +sigreturn_region_start: be,l 0x100(%sr2, %r0), %sr0, %r31 nop +sigreturn_region_end: =20 .cfi_endproc .size __kernel_sigtramp_rt, . - __kernel_sigtramp_rt diff --git a/linux-user/hppa/vdso.so b/linux-user/hppa/vdso.so index e1ddd70c37e9eb6871c21d538dcce0a1e736a918..68baf80fd3943cc2d847744f136= 37810788fafc1 100755 GIT binary patch delta 287 zcmdlXut9Kw5)+%jM3n;~wM-GFSH2~uzvW>xy0IuFLc1|}=3Df)rNnd=3D!qfQ8}zMD-eV*Sd?APT7Vb^7(omG-ZjNUA!li diff --git a/linux-user/i386/vdso.S b/linux-user/i386/vdso.S index e7a1f333a1..8df77b5a94 100644 --- a/linux-user/i386/vdso.S +++ b/linux-user/i386/vdso.S @@ -114,6 +114,7 @@ vdso_syscall3 __vdso_getcpu, __NR_gettimeofday */ nop =20 +sigreturn_region_start: __kernel_sigreturn: popl %eax /* pop sig */ .cfi_adjust_cfa_offset -4 @@ -128,6 +129,7 @@ __kernel_rt_sigreturn: movl $__NR_rt_sigreturn, %eax int $0x80 endf __kernel_rt_sigreturn +sigreturn_region_end: =20 .cfi_endproc =20 diff --git a/linux-user/i386/vdso.so b/linux-user/i386/vdso.so index bdece5dfcf8da036d013262d4e37208350283cfa..e01c3818d0d2e4871cf39b2ddd2= 1043d0695d07e 100755 GIT binary patch delta 444 zcmew$@=3DkzJ5{@jp{@LTJl;I7NjX(ad)H6T<3&Y3%JV5q2 zR+tDkgEEkL4~Y+x0ns4!7C`z3RFIK@iNO)b=3D3s#eFmN)2z?eW<5U4&5NQVH;V+PVf z4BQL_3=3DH)QlYs&vP=3DOX8y&cFGgYqWg9x-u{<2MP#41sIZ(!&1}2ybbm88HzL0i&9HUi}K=3D&Qqwc@ z^Wuw35{pVOg;VoVHXmSXVBBoaah6d_fsuiM7ib#DiJ+hWnal~qAV0$aP*RX_vKg0> RgdorOeY#m4Sg7NDDD=3DGgt!Y$w0mclYp!s=3DSQWathS7noo`vD#e+D$b z1LpHE)UcsSC_}{?(8NK)*vzp2iZcSuZ(sy#gcFW1aW;m@x7m3mqroy<3?EqFO2CY~ z$&4K0j4hJ|nZ+4rOfCeH%O*Pl$z78ZIm9K;0o4dG@Gt~GT?2771HsGt-MwOG=3DCK;)_z#GxPJ}i%SxVN-%{}^HMgi;Amjntj?v#%-g{PaSR`j a5}h2%tIf&52@!cWxs%tN@!RBsyy^hfi%Eb0 delta 205 zcmZpWeIY$TgXsn5MlCx=3D5mA9%)#h=3Do$th|*U-GxV_f~Om__Vo((Sc2rk>TV221W)H zz%|*BLtIh?EXKv~fdxg9!F+Nehd86}WI<+e#>B~mKr(-_Bam#Kd=3DRK>I#96?0}n$0 z8$=3DfmRP&n2A2}p8J8;%BZa%=3DJz|5<`1d-qaQi7A;@@jLg;DCs1pRCAd&Kb`M;k8Uo Hjenet|GUJhnDhEWA#S8BnzBO%iakv;8rJgEnt>YiE@dr0sJp%}^F#P`rq<9z@ z*d)LLU^as?kgtQphce;nEr0?)K!S`63`{`Ek%58v4Tui}TtFNG6xIN7fbuLrDhtF0 z0YQj;iaYlTCGNaE#l>;J~u3G}Hz1nkb!uCykg)t8^X6|Be-uQ!?t^NlC5HK<@Faaqp z1_tIgAU+TP*$lEkVGR%mD9-|j@-*l|TgoKt2mp!+s!N0?B}DKnp+)h8ge#$iD*PZ+7Nb o&A9nJ=3DNCrK1wb)AAQqVXhFgk_{S1)#domA?5);Sq$p$DOEI@iQk~qvq96<3?5b;=3D$QuZw%5(q#R-$2qZ z0W1m#Eh#O^i!Vw|&&jGKjdRG2w6fMR?=3D%s<(I YUyqCP2UN+9$rb!&Ok5i#Z{Sw|0MvRWxBvhE diff --git a/linux-user/ppc/vdso-64le.so b/linux-user/ppc/vdso-64le.so index 424abb4290b7d3100e9dede2f3059483608ba703..22499d2701530ee2aa003ae5fec= ce695441a5f77 100755 GIT binary patch delta 383 zcmdlXcR_xF2IGZ|n)Zw$d#8TmX85vf$%g!(v+1T^wTi0NT-{v5IDx&Mh2i6W1~k9} z=3DJPO|U`LfuhKgT669)-nGsglb&d9*T(7*`R2qzrDEG~u@EDV#iIe8^RfP6tL?ns>c zkx5*#5GX6az{4;HYAeKb3=3DHj)6`92)=3DR#!um3a93!Z2rO7z__`bTalT! kg9&0bACMBByp&IyGlB~u@_zD7K66fYZV0bsvLvrO0GX9Yi2wiq delta 220 zcmca0ze8?<2BXDBO?yU>es=3DTCa!hWME=3DwU}Qi6 zT$39)#U*8dVuB1G|D#9&Ia-rHGKouC0a*eJJPdQ#A@V#>WdV~FnZ+g3pt1*`vMf;9 zn#qD(;*66gA7qlA9KtNRc>-5G<7NRK1!i6iCWsO~AjLn~mS3Cm2PZ^i$K*nObIuK1 L5MImVjlA*zt)(a1 diff --git a/linux-user/ppc/vdso.S b/linux-user/ppc/vdso.S index 2e79ea9808..e9256a2dea 100644 --- a/linux-user/ppc/vdso.S +++ b/linux-user/ppc/vdso.S @@ -220,6 +220,7 @@ endf __kernel_sync_dicache =20 nop =20 +sigreturn_region_start: __kernel_sigtramp_rt: raw_syscall __NR_rt_sigreturn endf __kernel_sigtramp_rt @@ -235,5 +236,6 @@ __kernel_sigtramp32: raw_syscall __NR_sigreturn endf __kernel_sigtramp32 #endif +sigreturn_region_end: =20 .cfi_endproc diff --git a/linux-user/riscv/vdso-32.so b/linux-user/riscv/vdso-32.so index c2ce2a4757900a16b891bb98f7a027ac30c47a5f..4818a994f0394d83ca5e8213f6e= 2d2d3ee2f504c 100755 GIT binary patch delta 447 zcmZ1?zC~h!0#gs?L?tIipNXmSMas5*X}YtK&*i=3DK5rz{7_FXjfZHe71!C1(`Ah&Y5~ zVfgsJ6v&idgzy=3DG{5l|W0#rSSKLg00!3>dSVBlg{4P-hnLHHo~gD@!|Ey(b({{I;u zqXcLG2apzG;9+B(DYJ2O#kol9OHh zi$k)E^zs>0DvHXCjWUf24C8Z+3Jl^CjV7;TRWyZ%3PW*bdQoagX;EH$QEGZ-eqMZW zNn%k6rf_Or%H~<@U5uNRIKMG6`b?h4Ej(F=3DTY&cp(BcO`2k-+OD?ZtiTbgYPI|G9~ P;G_8jvml>gNE`LJT|%RY3X&3j;$0l-~!WGl23u5WYRb z93Z0sNy7#pKL(+I;Rui)fW&7=3DPEO1*3&{4=3D%V$uj*sQ_P#khG3=3DNCps=3DgEpZ!jt!K m3-F!+Dn9`96Uc9(lW%fMv-YqvFx&*o^Y92TrcRdS5eESNR6iB~ diff --git a/linux-user/riscv/vdso-64.so b/linux-user/riscv/vdso-64.so index ae49f5b043b5941b9d304a056c2b50c185f413b0..cc6f7e974be67bd08ed412eccb9= af22138385e56 100755 GIT binary patch delta 453 zcmaDM*P$>$gYm>f&3s0mjWgL9MZUOZ%%7)STEdup@5PH(j}Av>WiW2u!l=3Dl~mu)4hczqpe!T9$NxJRfea)dF`1E5T+#?E z!o{G#iX;VOx=3DuC(%0>fOfBdakV2*m2=3DQkG9)Kwn!34I1nK27s8noD;abGFnS)1x8RF~7HvB5066_FD m7cfC+kat8Um-1_K?%;%o+ysTtULZ3;kBLiRqk#pZh})fO-I~!HOHa>f*qfa!daD0cMEm9%#s{n{EDZlYPHYr5 z0V*y5r1uCyyqa;M|Y2gD+ifAHvYu7Dc+d9neoIp=3DIBuVr!pw*&xqqDfc) delta 305 zcmZ1=3D(;+=3DUkBPHmqk#pZ$eP<0^W+mAZmVidw^)#U>fWD6>!)n4VSK<^&&crqBLf&P zHb7`F$ps`q7zkKiKxi;2i%`$(fFy1##K6D<;j_VnWq=3DH4ggEOHs02tn5-P3>WV6XZ zC76J8K9YtFP;m($-6{xl=3D)^{0-AM=3DqY#@_B0Hkp#LY(ykSd@W5X7hcHX2#9QTq?|* d8bC2VAQqTBfmff?1FB-r Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1758740958256179.1333220281549; Wed, 24 Sep 2025 12:09:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UnK-0007sz-JU; Wed, 24 Sep 2025 15:04:50 -0400 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 1v1Ult-0006ut-Ru for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:25 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0: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 1v1Ujr-0007nr-W4 for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:16 -0400 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-77dedf198d4so243797b3a.0 for ; Wed, 24 Sep 2025 12:01:13 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740471; x=1759345271; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=5sVOgytoa7Rgm1zLxtei1J/KNHixNy8iKKKriI6vpRg=; b=HYXQ9sOiJ3HOjEpbKygd7SJeTrFBTm4jEBRMS34lLPmvl/El1DcTWhiGtCZbtP27iz BkUvTWXcB45AjIca/QzO5CVWiaktx3worELqF3MEwajp5LcLjMbPC6LVnZfBaPYJhwHD +6GHQ57sPPHH1ROa5BauYXtIjWHVrRxILTM9iJ42dmioz++7RHBLdIBi1siBCcsMOFTe BLUOU+dB05D5sXPjJOEigmKSjSTfQhPF4dAdRZFUOvCFRk1Rf81l06amUJwMnNmpQtGG 38/coicfMshJlG8zWl4xA+F6zmTBye7FdgL7Bn9fok/LbLhuYg/Z+LfVBMRekfLpO1h1 xQxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740471; x=1759345271; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5sVOgytoa7Rgm1zLxtei1J/KNHixNy8iKKKriI6vpRg=; b=P7rG9GgO2WqP9PfPV2ovwMklajtCW8CBZFzz0MT9qIG7fzZSioBE/RRtbINcuq2155 t4B1mzdJabgtcIlWVOdpHgcKIge1Ej/RuU4KAsAplI9pM7nRWIE9xG0ikWOIApHptCyX yzch4RrM5EwbpSTB1SdDQIVajProz9Eeq3kTwkCtnvGRMbAXRzWgNhkMB4eGWXWr4MzN l7zh3kDOw/hu2tnMETrvsWTeFwRyH4UtuPSleHYpCWQlmAo6k3iE0Y8n+ipoMJaIrvbh LhpT8JH5evsPemCVC388X2vCLC/AKJyUTmPBw8GVF6+Vky9Tymtyja3aUPGTOYw0BL2Z 8SMQ== X-Gm-Message-State: AOJu0YzM8jXTznS4SlUOewRX6pJ8PRqLDUFKGwcLcGLqJmypYW753DXo p//GD3u0bYsr3UXDtI4apklj2J37koHIASin/Y+0Mc2xsUlCnNKTgbfWx4SKTIplW7i0qFoFH6/ cjm+e X-Gm-Gg: ASbGncuVZCbSf6pdjM46ctDbHGgwBBWCiKYXOTYLJwAu+/sbbAzNMsCQaW2WK/NV4tQ YUbMdpVOipFCh9wEfNtSDAKIl4jDeRff+1hhotGEfQAryKfZ4Sy3TgrWi9WAl3vlTGqZFP6jLra JfDjzbQ5JxIDZQwskRIzpLDyB8GS32720ecggMX49fPsqM7AZ/AFDByGuUQ4PjGDjYIz5sdNILN KrPQAh5z0EqgjRWw7Me0TMlS7dSOICbTpkkm70mEilGjn6NKTWNrUyxFILWk0pEpZ7uGsQMzBB4 1X2TgRXkJKaEvioh+atDh7x+AJZWNUOrBiWZhnmRwTLG73G1f/EcsRRNlX8z4DhAsGOjIHIB6iX 1imQmkiq29WgkkejmpYEAq0GkOj8mwuhrlXkEh2c= X-Google-Smtp-Source: AGHT+IHkTtADfpDj192DFR85ALfv8TRlTc4V0tyv17yl2NVZt1JQzIp60Fsy5DKrVt3XVtGUW+1xJg== X-Received: by 2002:a17:90b:3846:b0:32e:6156:3571 with SMTP id 98e67ed59e1d1-3342a2d9b93mr640800a91.18.1758740469409; Wed, 24 Sep 2025 12:01:09 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 03/32] linux-user: Populate vdso_sigreturn_region_{start, end} from sigtramp page Date: Wed, 24 Sep 2025 12:00:36 -0700 Message-ID: <20250924190106.7089-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::432; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x432.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1758740959898116600 Content-Type: text/plain; charset="utf-8" When a target does not support a vdso, we generate a sigtramp page. The only thing on this page is a (set of) signal return syscalls. We do not need to narrowly restrict the vdso_sigreturn_region; simply record the entire page for all such targets. Signed-off-by: Richard Henderson --- linux-user/elfload.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 28f0909d1a..1370ec59be 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -1974,6 +1974,8 @@ int load_elf_binary(struct linux_binprm *bprm, struct= image_info *info) =20 setup_sigtramp(tramp_page); target_mprotect(tramp_page, TARGET_PAGE_SIZE, PROT_READ | PROT_EXE= C); + vdso_sigreturn_region_start =3D tramp_page; + vdso_sigreturn_region_end =3D tramp_page + TARGET_PAGE_SIZE; } =20 bprm->p =3D create_elf_tables(bprm->p, bprm->argc, bprm->envc, &ehdr, = info, --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741274; cv=none; d=zohomail.com; s=zohoarc; b=bKi2CJnlyYeiIYhnhMxSqwRf5QjpvCGkeG4Cqd6eZLXZnIdeiU7wfpjGy0qhc9zTbbLvqR41D+b6dKqS0J7rRqxpeEFy3DEHKhOrJhXFb3wxVxT8R01jbieTe9spfSbDaekGt3NhJ/bzmeEXQOjucTPKeTwcxkyN3yBjSzXwpaw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741274; h=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=hlkqS35JxZy3ncaxHOMPx7RygOfL9wEkWQNVBqkOmNg=; b=L5BmNbptvLrZoGRWsE69bJHQWaHldovJ9VXo/lZ0pFYo6/MRSwU8M+/j07eTDrIahedtpXJyz8LW63cvOpDIJvsjl0pw0atIoofjbCbWrf0Pxyvf+wGz0NAEdUOS8F6/pHOFY4rVbtXLaM9DeEXB8e1eOK0alLX/RxOKLmk1SeI= 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 1758741274905523.1947193941585; Wed, 24 Sep 2025 12:14:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UnW-0007yA-15; Wed, 24 Sep 2025 15:05:08 -0400 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 1v1Ult-0006uw-TK for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:25 -0400 Received: from mail-pf1-x42e.google.com ([2607:f8b0:4864:20::42e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Ujq-0007nQ-R4 for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:15 -0400 Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-77f2e621ef8so243136b3a.0 for ; Wed, 24 Sep 2025 12:01:12 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740470; x=1759345270; 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=hlkqS35JxZy3ncaxHOMPx7RygOfL9wEkWQNVBqkOmNg=; b=S2S87yJLAJWUI4jrX96gA3E3275YPGhpX6Jd8RxabnhQSrwk0hw0mJOrIYKUcYQh7F B6ZYyzwNXh2k6PYPj274YbAP+rgxtMDkrZVx2epmgR3kB73SI3DMMyxW29yJ6Odp5+Eu kZPQvz3KXWq2KD0YGKVP4hdg5MQtHDHpR1qpePOcA00nCDvBlArnJdbGAY/JuQcA2TDM W/FJDxrk3Z8ilEpMzmTA8OOvQCLLVlB2Zs+G3woIL+Bh+Se2men6JyZfog8D6rKzNbys joM586j97NMBV9GGJpqH8C0JupLuxgRCJDw9xZ42DaHZKBbWaZuReT2rIxQqfPxCPFYE 6ftg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740470; x=1759345270; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hlkqS35JxZy3ncaxHOMPx7RygOfL9wEkWQNVBqkOmNg=; b=vRf9eMQYVkziFXQ4tFtLDB5a8n6fJxGMktuKV6KhIFwzL/MntjpWJZwXshe9zknr2L gL2bADaFBjPxJ8PxC8q26RmBdIgCuEHCOKSrygtaWxb91CYPMeFdVLNRsOdz4reho73S UIFX5iDEc3M6nYlPITCxoTLxPI3AVBNzUXViru743uEvy9wlgCfyLgBwQYSylYEMZ+8e 9MYskRVgFY+c9sKuw0UI18kAf/S7a7UD1VN8Wep5w0lSjEmATX8Hq1NBKCNYZV9JeJ/v 1AeexTwG5/vp4MerW5mkxxc1bpjgrwMxG2G5h5RHvbIMpit5tAJRju0Rq9Rz7QVU+wXs g/PA== X-Gm-Message-State: AOJu0YzjIo/sLt9suG1O9jhx7iVzXeafz4hIq0dR6HZK+ECyPsGZeMYQ MNNpkolAYKeVThrninxPCZ669ZUY+GsavfIaT7Ua58HGbd2hsgulkQmeUAKkOF5h36No5mVQr/3 7/U6Q X-Gm-Gg: ASbGncv3E8bwK2MDA/1fM2135q5wXM+owyu0E30nxVCw8FF9jXT8HLDq2/y0EO+d/CK D5XMtZBT0s4V/vIQemGsedaatAyNjUwTbV3ohmOW3VLybGmUbfV/vPbt9xhlx+E9/OsQg36T/4o M0GLWPa7pYeecmFSdoTfxQffzTvqEtrJj5z2bq7dAKyHSF91N5sSbjrawwgXiVDc4Ip0yAseZQe vytG4D8fkOT/su9WYGkTuQGk0leW8QNd79MFMpEQs5U8x6Hb2HYrgaceaJx1/xtbuUs62H1ufpX GAjz2zCb8cw4eKrzSzRjDyJEMsjsMwGoxkvucrfKxdyU6U7rUz0mPv1cvWh7VUwZx9j+dQOw7g2 l0Pxjp8wjx6KzIPDqIurY6tpzDGEJ X-Google-Smtp-Source: AGHT+IFDNmUegVgKnuoYzOCJEJEFrZUCkR4mmeLdNJMuYashXkYvOjQ0iAUVYlGpGa48duP2dRs8Yw== X-Received: by 2002:a17:90b:3a91:b0:332:793e:c2d1 with SMTP id 98e67ed59e1d1-3342a2e560cmr702895a91.36.1758740470090; Wed, 24 Sep 2025 12:01:10 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Arusekk Subject: [PULL 04/32] linux-user: Add syscall dispatch support Date: Wed, 24 Sep 2025 12:00:37 -0700 Message-ID: <20250924190106.7089-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::42e; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42e.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741278346116600 Content-Type: text/plain; charset="utf-8" From: Arusekk This commit adds support for the `prctl(PR_SET_SYSCALL_USER_DISPATCH)` function in the Linux userspace emulator. It is implemented as a fully host-independent function, by forcing a SIGSYS early during syscall handling, if the PC is outside the allowed range. Since disabled SUD is indistinguishable from enabled SUD with always-allowed region length =3D=3D ~0, this encoding is used instead of introducing a new flag. Tested on [uglendix][1], will probably also apply to software like tiny-wine, rpcsx, limbo, lazypoline, vicar, sysfail and endokernel, to name a few. [1]: https://sr.ht/~arusekk/uglendix Signed-off-by: Arusekk Message-ID: <20250711225226.14652-1-floss@arusekk.pl> [rth: Split out is_vdso_sigreturn region matching and other minor tweaks.] Signed-off-by: Richard Henderson --- linux-user/qemu.h | 5 +++ linux-user/signal-common.h | 5 +++ linux-user/syscall_defs.h | 6 +++ linux-user/main.c | 2 + linux-user/syscall.c | 76 +++++++++++++++++++++++++++++++++++++- 5 files changed, 93 insertions(+), 1 deletion(-) diff --git a/linux-user/qemu.h b/linux-user/qemu.h index e4dca0c20f..cabb7bd6a8 100644 --- a/linux-user/qemu.h +++ b/linux-user/qemu.h @@ -155,6 +155,11 @@ struct TaskState { /* This thread's sigaltstack, if it has one */ struct target_sigaltstack sigaltstack_used; =20 + /* This thread's SYSCALL_USER_DISPATCH state, len=3D~0 means disabled = */ + vaddr sys_dispatch; + vaddr sys_dispatch_selector; + abi_ulong sys_dispatch_len; + /* Start time of task after system boot in clock ticks */ uint64_t start_boottime; }; diff --git a/linux-user/signal-common.h b/linux-user/signal-common.h index 0b04868727..8a44714251 100644 --- a/linux-user/signal-common.h +++ b/linux-user/signal-common.h @@ -28,6 +28,11 @@ extern abi_ulong default_rt_sigreturn; extern abi_ulong vdso_sigreturn_region_start; extern abi_ulong vdso_sigreturn_region_end; =20 +static inline bool is_vdso_sigreturn(abi_ulong pc) +{ + return pc >=3D vdso_sigreturn_region_start && pc < vdso_sigreturn_regi= on_end; +} + void setup_sigtramp(abi_ulong tramp_page); =20 int on_sig_stack(unsigned long sp); diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index df26a2d28f..cd9ff709b8 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -689,6 +689,12 @@ typedef struct target_siginfo { #define TARGET_TRAP_HWBKPT (4) /* hardware breakpoint/watchpoint = */ #define TARGET_TRAP_UNK (5) /* undiagnosed trap */ =20 +/* + * SIGSYS si_codes + */ +#define TARGET_SYS_SECCOMP (1) /* seccomp triggered */ +#define TARGET_SYS_USER_DISPATCH (2) /* syscall user dispatch triggered */ + /* * SIGEMT si_codes */ diff --git a/linux-user/main.c b/linux-user/main.c index 4ddfc9a619..db751c0757 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -228,6 +228,8 @@ void init_task_state(TaskState *ts) ts->start_boottime +=3D bt.tv_nsec * (uint64_t) ticks_per_sec / NANOSECONDS_PER_SECOND; } + + ts->sys_dispatch_len =3D -1; } =20 CPUArchState *cpu_copy(CPUArchState *env) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 91360a072c..9098cdb9fa 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -6344,6 +6344,10 @@ abi_long do_arch_prctl(CPUX86State *env, int code, a= bi_ulong addr) #endif #ifndef PR_SET_SYSCALL_USER_DISPATCH # define PR_SET_SYSCALL_USER_DISPATCH 59 +# define PR_SYS_DISPATCH_OFF 0 +# define PR_SYS_DISPATCH_ON 1 +# define SYSCALL_DISPATCH_FILTER_ALLOW 0 +# define SYSCALL_DISPATCH_FILTER_BLOCK 1 #endif #ifndef PR_SME_SET_VL # define PR_SME_SET_VL 63 @@ -6398,6 +6402,36 @@ static abi_long do_prctl_inval1(CPUArchState *env, a= bi_long arg2) #define do_prctl_sme_set_vl do_prctl_inval1 #endif =20 +static abi_long do_prctl_syscall_user_dispatch(CPUArchState *env, + abi_ulong arg2, abi_ulong a= rg3, + abi_ulong arg4, abi_ulong a= rg5) +{ + CPUState *cpu =3D env_cpu(env); + TaskState *ts =3D get_task_state(cpu); + + switch (arg2) { + case PR_SYS_DISPATCH_OFF: + if (arg3 || arg4 || arg5) { + return -TARGET_EINVAL; + } + ts->sys_dispatch_len =3D -1; + return 0; + case PR_SYS_DISPATCH_ON: + if (arg3 && arg3 + arg4 <=3D arg3) { + return -TARGET_EINVAL; + } + if (arg5 && !access_ok(cpu, VERIFY_READ, arg5, 1)) { + return -TARGET_EFAULT; + } + ts->sys_dispatch =3D arg3; + ts->sys_dispatch_len =3D arg4; + ts->sys_dispatch_selector =3D arg5; + return 0; + default: + return -TARGET_EINVAL; + } +} + static abi_long do_prctl(CPUArchState *env, abi_long option, abi_long arg2, abi_long arg3, abi_long arg4, abi_long arg5) { @@ -6473,6 +6507,9 @@ static abi_long do_prctl(CPUArchState *env, abi_long = option, abi_long arg2, case PR_SET_UNALIGN: return do_prctl_set_unalign(env, arg2); =20 + case PR_SET_SYSCALL_USER_DISPATCH: + return do_prctl_syscall_user_dispatch(env, arg2, arg3, arg4, arg5); + case PR_CAP_AMBIENT: case PR_CAPBSET_READ: case PR_CAPBSET_DROP: @@ -6527,7 +6564,6 @@ static abi_long do_prctl(CPUArchState *env, abi_long = option, abi_long arg2, case PR_SET_MM: case PR_GET_SECCOMP: case PR_SET_SECCOMP: - case PR_SET_SYSCALL_USER_DISPATCH: case PR_GET_THP_DISABLE: case PR_SET_THP_DISABLE: case PR_GET_TSC: @@ -13897,12 +13933,46 @@ static abi_long do_syscall1(CPUArchState *cpu_env= , int num, abi_long arg1, return ret; } =20 +static bool sys_dispatch(CPUState *cpu, TaskState *ts) +{ + abi_ptr pc; + + if (likely(ts->sys_dispatch_len =3D=3D -1)) { + return false; + } + + pc =3D cpu->cc->get_pc(cpu); + if (likely(pc - ts->sys_dispatch < ts->sys_dispatch_len)) { + return false; + } + if (unlikely(is_vdso_sigreturn(pc))) { + return false; + } + if (likely(ts->sys_dispatch_selector)) { + uint8_t sb; + if (get_user_u8(sb, ts->sys_dispatch_selector)) { + force_sig(TARGET_SIGSEGV); + return true; + } + if (likely(sb =3D=3D SYSCALL_DISPATCH_FILTER_ALLOW)) { + return false; + } + if (unlikely(sb !=3D SYSCALL_DISPATCH_FILTER_BLOCK)) { + force_sig(TARGET_SIGSYS); + return true; + } + } + force_sig_fault(TARGET_SIGSYS, TARGET_SYS_USER_DISPATCH, pc); + return true; +} + abi_long do_syscall(CPUArchState *cpu_env, int num, abi_long arg1, abi_long arg2, abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6, abi_long arg7, abi_long arg8) { CPUState *cpu =3D env_cpu(cpu_env); + TaskState *ts =3D get_task_state(cpu); abi_long ret; =20 #ifdef DEBUG_ERESTARTSYS @@ -13919,6 +13989,10 @@ abi_long do_syscall(CPUArchState *cpu_env, int num= , abi_long arg1, } #endif =20 + if (sys_dispatch(cpu, ts)) { + return -QEMU_ESIGRETURN; + } + record_syscall_start(cpu, num, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); =20 --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758740999; cv=none; d=zohomail.com; s=zohoarc; b=TTMYfwP1AdeiMavK771j08J/xgc3xKd0edywaJTVS62ShzTtfMBV9sYpA2GsAmGChE3oyfxrqfDYFijkkE3BbU1qqU4Eoh/RxYVSQ3Eppr9TZfdwBR6Yvt0D08HF6ynDMWBUB7vo9c8EcE7QIvzpI+L4osebTQJaf4+clUlX7tY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758740999; h=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=KNbTOxBm3YqBctSYJsKq4uJkVqqLqDpR5gssxBaoGRE=; b=j1IOtvobPukbJVN6hPwizb4staekNV5ivf1dB4NRFS77h0z7asiOaj3gUAX47zIqZg4d18zf5l08kndhMuU0q5pw9SWnl+/GLFGm0BwqrwPBiYA7optrxD0akyW6iRjHaMZSWkrbRmCeH9LFSNbdhsvFhmO9FpLqIav+08g3tA0= 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 1758740999683253.9804375046267; Wed, 24 Sep 2025 12:09:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UnF-0007oQ-48; Wed, 24 Sep 2025 15:04:45 -0400 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 1v1Ult-0006ux-Ss for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:25 -0400 Received: from mail-pf1-x436.google.com ([2607:f8b0:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Ujr-0007nq-KO for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:17 -0400 Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-77f343231fcso110891b3a.3 for ; Wed, 24 Sep 2025 12:01:13 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740471; x=1759345271; 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=KNbTOxBm3YqBctSYJsKq4uJkVqqLqDpR5gssxBaoGRE=; b=BX2+yoEGrGbQyvCpm4EYCoFIQGipKz7sfB0iiBzZL9a1iCMH1cLWzfR0T714v76Cn7 tzOASI0jYO6UNNViw6bQo6Spi30WzN8TKc7v35Q3uDUpdOhVmMOHXO6qVoV2ScQ/kqB4 gZBcARTuZbK6gXx0KijAoQvmaRyo+9o7QVTAT9LuwqnBWsscYaYfddS6QHrGdaPuE811 7ZHTo8pAjC+ZCPz84godPYppB09NZiIbLXoU5ZKR5kjivbDWrxNsaMf/F2+epCaUJ2mm R0JjITovkHDi3RJNCyMiXYl4Y4+um90Jz4hJt93mz8C0/Hombn31F0reSHoAYbcPE4J1 u6Zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740471; x=1759345271; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KNbTOxBm3YqBctSYJsKq4uJkVqqLqDpR5gssxBaoGRE=; b=gmVyuNbcdPZdd/MuXFHgJqwRaeKzZxh1OOv+/aA4jfIUKgHLiIl3nYlT6WkS09jZWn Rd8+Oji5rtW+bBdTdHcgpiFvIIWwYwLvTgF6riQw0h6NiljhVZ4hZ2w5XBn7bssa9tvB +x7vDMX+RGRiy3BJMrHc0fxCr9jLod5fRWuZnCH74WjhqdvkR8emoteWeHwiU99gEfIa uj21O/eIN4gvIWCrCwUO7UDFhMTTF5cxROvW2IL0YQvChfKLIUH5Yj8HHDSU/0wVZ6Md m49/peWpu9lO93WttnLUigKulJyy6u0Sbetj19zLNhfHV6g5RCkfPFq5qoRxIMcwOrR0 NboA== X-Gm-Message-State: AOJu0YwOcuLAeB4SgjmlOuJqac/+vJUCVfcKvmFeHSVqX9FKhqyZEre+ WEn734gSbyXDfFJeUjsdEyygpoAQjMpmoHLkPpTPy9hLFtUYWAxHDAi/ZoIHzA+AxnAIe9i6GjP OrQ9v X-Gm-Gg: ASbGncszdymF/VHQgzgpE7203f2g40TQTC3b9219ttsUrUFyvl9xkh7XEgzdDGraH/i i2Q1Qr3/LupbEDBlE3YgtJyC0VudaOFqoBuFQDZ1ASITya1m0ObPCWL7pd6su46oxT+ppM4yNuZ P8v/gedFOCifN/qoIkNZI6lIgMOgrXSFS8j+5Se64fFtw+ZG4GGaoObcczmbGldq+Q083jmBM3G vMZFOoALuWCK8Iardl1YfQzu9aUYoVAoLNkbghWBzS+Nb0BK1ORqwcWt76rd6Ca+Bz9cFbm6Jxw RDixn7DEx1i1G1QOdea3/LczQ1+d7wq0ewMpuoQSDyYxaiXT2wE0GtC61mYLLrVd1v92O0yrpey SsCOfMN4GYGZdGN+bREtQQYi2+Hj+ X-Google-Smtp-Source: AGHT+IEpR/BtSYqKohfyYhq9fzNE4eVuFjC/roAQBRrIT87jyGbtN7HEm58aRP84iyLzyoNlnuyBdw== X-Received: by 2002:a17:90b:4f8e:b0:32e:7270:94a4 with SMTP id 98e67ed59e1d1-3342a22f5c5mr680742a91.14.1758740470881; Wed, 24 Sep 2025 12:01:10 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland Subject: [PULL 05/32] target/sparc: Allow TRANS macro with no extra arguments Date: Wed, 24 Sep 2025 12:00:38 -0700 Message-ID: <20250924190106.7089-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::436; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x436.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741001582116600 Content-Type: text/plain; charset="utf-8" Use ## to drop the preceding comma if __VA_ARGS__ is empty. Reviewed-by: Mark Cave-Ayland Signed-off-by: Richard Henderson --- target/sparc/translate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/sparc/translate.c b/target/sparc/translate.c index b922e53bf1..336583beab 100644 --- a/target/sparc/translate.c +++ b/target/sparc/translate.c @@ -2487,7 +2487,7 @@ static int extract_qfpreg(DisasContext *dc, int x) =20 #define TRANS(NAME, AVAIL, FUNC, ...) \ static bool trans_##NAME(DisasContext *dc, arg_##NAME *a) \ - { return avail_##AVAIL(dc) && FUNC(dc, __VA_ARGS__); } + { return avail_##AVAIL(dc) && FUNC(dc, ## __VA_ARGS__); } =20 #define avail_ALL(C) true #ifdef TARGET_SPARC64 --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741028; cv=none; d=zohomail.com; s=zohoarc; b=MExrHDIkHqtg4ITsXHNKAOR8nBUzH3VuwPOuug+nFWrlH8NxTlpT7aMkMDYkXUWQ6JrqlfSTiaV273esEgHYf0w+f3yhC2Di+zob/dj09UhZ2rW1BjYWZ36xU2il6XY0jlSVhJ9hddABbLPnKcTvCiogL6q0vColhiTRdvBUCc4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741028; h=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=xlzJQOFlorrMw5CndfvG4jengOA2DFNt3pdatOiYndA=; b=WLbJWoTmMnec7TwVZ3W3rJCDGLaO/oulp+aW/WbKBuVZWwYeiEfIpPHDAyeEw9VEmQsmVa1KUepIio6xlvx8e88KjzkWmUEJ58oyX5yeqA298V344WBeNjly8MQwW3RmKsara5F/ndUso9P3jlZG6/73rzlVXxcj9GbcZsdN6hE= 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 1758741028124172.5931833380173; Wed, 24 Sep 2025 12:10:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1Uo0-0008MB-Ld; Wed, 24 Sep 2025 15:05:36 -0400 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 1v1Uly-0006w0-1H for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:29 -0400 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Ujx-0007oC-8V for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:21 -0400 Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-76e4fc419a9so214234b3a.0 for ; Wed, 24 Sep 2025 12:01:15 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740472; x=1759345272; 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=xlzJQOFlorrMw5CndfvG4jengOA2DFNt3pdatOiYndA=; b=jBtxunwpEslYpEoaaJq2Htbj2sQntCYVHW9G7P6b/TS13fDIRvKrwcbDmZ/R6QR3q0 MEhCkPGZmFBQ2oDevv1yaOxfUOqaZt07wwhit8u1UswZ+DkFn3pPXItfeT2/KPmJ0suh ScQGP0MCcnUZukvD8EpmamorcNpzyIai2ewkRXszvE42IF8tcFugBe1YLHmaoEmWnOYb W0IFK27y/BOGAg/lXMy/mHRK+Itg1h4JA7uKwziDwBQMo8qLH9xgbrC9jSR7KNjaAzPC I7Pfa+b/PB2a9OpOtUvTKVa9LvXjtSjP/z6qVphCgdErncSHxHpw+ym5XMKN46ceT2OA s5rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740472; x=1759345272; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xlzJQOFlorrMw5CndfvG4jengOA2DFNt3pdatOiYndA=; b=fWyiIOW4TuS3kTDyOMnCJ5/DjdJLH69OIbvHCoWjlQMDBd5g8BdZ5yEJvWgfAOeTQ4 wuZUxEHeH88FMDEH2raWQlDt//DCQ7IEWUYAEvgwHiJioMt4bQhw1vkOwjWCtwsc6xn7 Tqbvs2pcCFGYeLKMxxAt8rqsDkG6glPhiHxvK1/3izHSgULK+M+aw2lxjdW22ke3x/D1 F3rH7ejV/lKJQPkuzZk1noeXaSoq+BbtEI8sVl7Ggbacec0ov+h/sQLAeb3E3Q2FaZ0d HUSjiQ2ibHHdq4kJnepU99PV9d5f0O5/sgNxZHwFzJbDviDe2hFDTfOmELapxg7Ova17 ShwQ== X-Gm-Message-State: AOJu0YyhC71Lm/5/heOBi+n+U4aSrLPTAB7WBdAwR57IwuVwOdFRYq8E TvxCWdQU5uTalZUQS9LP97D4PycCCRT7/890VQNorRPFC4Q1JAzBiAZtVvChgG4TLnZATFs1R8G hiCcW X-Gm-Gg: ASbGncsc1KJOUj1K30ocNZnAOEUz5WGH2NtFqKfkO4VilyUJwxgajKY22d5EW6Brghr oWjAD0dCdF/oTq1yXLQG/rD/nnWMI8QPnnN4JU6oE9Vfzxi9rMc9PF3yVyUyAZpdeC5GHRr6joa NcvDLTK91xQ/Z7b/1GUAsNTM7KtjO+uv7gVFsiP9DMCYrzno+a+vofghFPuVrIEcaCLjN8uVfGt zMYc0sqQamxv7ZsUD1DU3/0B8hhZxc+VMNxV+rShHdNbfnjmAePtLwJbzrnG/I8xBdeB9ikMOdc SJMeI9mhTmBoslmgYAIKvkiaFDt0LKua4mOiGw0ZGSOc83qmFsSwDlzHtFVt4aqRNcjbL8p+YLN 2nTzuRGzCdZyfpJd0LE31hyc3Vczd X-Google-Smtp-Source: AGHT+IF1mo+pVFpoGBzT0gOPLgJO4eZDbacPcxdrukY31f3QgjV+KjwpbRNffDDYYz/IkAZZ3BXQ+g== X-Received: by 2002:a17:90b:4c46:b0:32e:a10b:ce48 with SMTP id 98e67ed59e1d1-3342a260f90mr890419a91.12.1758740471680; Wed, 24 Sep 2025 12:01:11 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland Subject: [PULL 06/32] target/sparc: Loosen decode of STBAR for v8 Date: Wed, 24 Sep 2025 12:00:39 -0700 Message-ID: <20250924190106.7089-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::430; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x430.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741030006116600 Content-Type: text/plain; charset="utf-8" Solaris 8 appears to have a bug whereby it executes v9 MEMBAR instructions when booting a freshly installed image. According to the SPARC v8 architecture manual, whilst bits 13 and bits 12-0 of the "Read State Register Instructions" are notionally zero, they are marked as unused (i.e. ignored). Fixes: af25071c1d ("target/sparc: Move RDASR, STBAR, MEMBAR to decodetree") Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3097 Signed-off-by: Richard Henderson Reviewed-by: Mark Cave-Ayland Tested-by: Mark Cave-Ayland --- target/sparc/translate.c | 5 ++++- target/sparc/insns.decode | 13 ++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/target/sparc/translate.c b/target/sparc/translate.c index 336583beab..ece393fffc 100644 --- a/target/sparc/translate.c +++ b/target/sparc/translate.c @@ -2823,12 +2823,15 @@ static bool trans_Tcc_i_v9(DisasContext *dc, arg_Tc= c_i_v9 *a) return do_tcc(dc, a->cond, a->cc, a->rs1, true, a->i); } =20 -static bool trans_STBAR(DisasContext *dc, arg_STBAR *a) +static bool do_stbar(DisasContext *dc) { tcg_gen_mb(TCG_MO_ST_ST | TCG_BAR_SC); return advance_pc(dc); } =20 +TRANS(STBAR_v8, 32, do_stbar) +TRANS(STBAR_v9, 64, do_stbar) + static bool trans_MEMBAR(DisasContext *dc, arg_MEMBAR *a) { if (avail_32(dc)) { diff --git a/target/sparc/insns.decode b/target/sparc/insns.decode index 9e39d23273..1b1b85e9c2 100644 --- a/target/sparc/insns.decode +++ b/target/sparc/insns.decode @@ -88,7 +88,7 @@ CALL 01 i:s30 =20 { [ - STBAR 10 00000 101000 01111 0 0000000000000 + STBAR_v9 10 00000 101000 01111 0 0000000000000 MEMBAR 10 00000 101000 01111 1 000000 cmask:3 mmask:4 =20 RDCCR 10 rd:5 101000 00010 0 0000000000000 @@ -107,6 +107,17 @@ CALL 01 i:s30 RDSTICK_CMPR 10 rd:5 101000 11001 0 0000000000000 RDSTRAND_STATUS 10 rd:5 101000 11010 0 0000000000000 ] + + # The v8 manual, section B.30 STBAR instruction, says + # bits [12:0] are ignored, but bit 13 must be 0. + # However, section B.28 Read State Register Instruction has a + # comment that RDASR with rs1 =3D 15, rd =3D 0 is STBAR. Here, + # bit 13 is also ignored and rd !=3D 0 is merely reserved. + # + # Solaris 8 executes v9 MEMBAR instruction 0x8143e008 during boot. + # This confirms that bit 13 is ignored, as 0x8143c000 is STBAR. + STBAR_v8 10 ----- 101000 01111 - ------------- + # Before v8, all rs1 accepted; otherwise rs1=3D=3D0. RDY 10 rd:5 101000 rs1:5 0 0000000000000 } --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741170; cv=none; d=zohomail.com; s=zohoarc; b=N58EXwXH8iN02/Qt0tJqj9k/e+V4ZH+oRv6A/58yiQc/zNAXQkPLun7nnjgdFf074pYJF9OLT3m88bU//YerYRhL/T1eY2YgQ6NMw+vbs/Q1/h/XmdOmuZ4kjgiZZG5eaEtdmfLb1m6ilOljy+YlhSD6C2pkOM8hZ80FidMAFQ4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741170; h=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=QRAc5xsl1m+VhgQiShnpQM6Hj9dAAWKFHFsWJQupR0Q=; b=PqlWv6AS8N0syOfOJrrzc1itEVfVvmJx6vfT2mY8UzY410eJyv8C/uamFByKrUklvCKitJMlLEsmx5Ea03Q97eyMzur5L5Ik/Qm/rIrkHQ1HjPIlGDU8jMFl1ULq58wM0we43a1gjEmE+uk3Up3c6mao6DRFfxs7BOI+/o93nS8= 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 1758741170133461.3688667470158; Wed, 24 Sep 2025 12:12:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UnD-0007n9-IA; Wed, 24 Sep 2025 15:04:45 -0400 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 1v1Ulu-0006v0-4P for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:25 -0400 Received: from mail-pf1-x42e.google.com ([2607:f8b0:4864:20::42e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Uju-0007oY-IN for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:19 -0400 Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-77f7da24397so185652b3a.2 for ; Wed, 24 Sep 2025 12:01:15 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740473; x=1759345273; 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=QRAc5xsl1m+VhgQiShnpQM6Hj9dAAWKFHFsWJQupR0Q=; b=v1/bSwxCL4P4iXSu9edc8YRmYKzVbR+EbkeC8hvjjW7Z9JjjEaP2Gpjz+RZzYIRCsd 9CPGwD3OODSCEyvD16pMmGMlqj/M9ERNCBB3U+2SEpjDI9H+UbBT/U+tCIEGbb38h26V p13r9GDBlnvjm4Pho7LDVVpnI2I42UwFKP3otyjsgVRn1o0kLdGpfHRvNfOHaABkvarF z0TPwGyz/7/SrvgRzNaWVUhtyTZsj5GQXF9CLcKnVelNEmKclRFtvd3AtH25K7UtQ3C3 7AmZDUX784SHEBeqDC9ihQjt6EOs+RRUV5/qzCcuCIhaqTTVS7OZLeFV6qv1g24JsdgS Qf+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740473; x=1759345273; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QRAc5xsl1m+VhgQiShnpQM6Hj9dAAWKFHFsWJQupR0Q=; b=dP5mfTeZzJKI7L7/JQgCl0OJXYpKd4wR+ExtIggOFRLwQbIp0oSO4cdPcB3j1WydIi 4Dj8zClcdGJGFgGi5hUt76x7GdgQts10K6s6jDllT+WVsn9Tt3UhOg8NhZemU0mxstz8 BH90Y5wZIotVNNWFD0cAmuGy+RujHUrYqalEHdSpM4PZGgl+G0dcTx3RTA5BVEbWqaGM u7vYl1z20V7KeQwjQJN7S//xpNpQB2d4KocplExvRvshbZiCDIsTf77/fcsj5EW2ZpDm cTa2IPHZHvBnj5JGTxqix/eq9lma+eU2H88w3Jhu/CORzwXqGTPJkOizK+adR0+OX/wD ibeQ== X-Gm-Message-State: AOJu0YxvB22TN9h+k17hu9gVvNelASQn3RL47MWtyfi4DDcrmRZRZ6/+ sg1zoOOWbf2MP98JDBMjOHED0i426Q6zRjaEP1Yuq0eejydDlZHYajzc2k2hhjQXJ+CwG1gQP40 1h5QN X-Gm-Gg: ASbGncsNcUBzq7r1KK6/gi09V5vWHg3pF/sijUMF0UX+0AtbAPMNMABxN7PjyLTDOOx 30FV1y6IKRoFF570cCxdxFX8cxt9DBfLlY+UmyxhEQJgjAWGQJiRN+zfUE39eBuoD3I9qOerUAa Y2j39aOp4VBuP2c2dhT3eXqZpRAcC7D6tWNX79FiiA3MR+fCTNHGoGUwHyVCjlwqpUAbezdrLCQ t/rfORGtr85rubFli6zzcMLtaR520RZVho+E+V7KzUbktXk9FRMW/3LkONNQSQsQMq5pfkaLC1U QgFOIJR/ON9gA+J8mCjH70BxEwnAa3zVYxgFnjU4NgyyWBRVVq+uPm2AzSOn0Gf2f3qruOG4IcO H/qC2xdBWbTDhUKcLYeSt3LI3jj5hnbI6wAgyHXo= X-Google-Smtp-Source: AGHT+IESJOoC5kPn5/kpVKuA5LDdy4i5FEvEW9gZ723lmIA3QwKVU5kRGbe6+4kR5Z1n170PE47ZQA== X-Received: by 2002:a17:90b:1b4b:b0:32e:dd8c:dd18 with SMTP id 98e67ed59e1d1-3342a2f9055mr779194a91.17.1758740472354; Wed, 24 Sep 2025 12:01:12 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland Subject: [PULL 07/32] target/sparc: Loosen decode of RDY for v7 Date: Wed, 24 Sep 2025 12:00:40 -0700 Message-ID: <20250924190106.7089-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::42e; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42e.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741171757116600 Content-Type: text/plain; charset="utf-8" Bits [18:0] are not decoded with v7, and for v8 unused values of rs1 simply produce undefined results. Fixes: af25071c1d ("target/sparc: Move RDASR, STBAR, MEMBAR to decodetree") Signed-off-by: Richard Henderson Reviewed-by: Mark Cave-Ayland Tested-by: Mark Cave-Ayland --- target/sparc/translate.c | 14 ++------------ target/sparc/insns.decode | 12 ++++++++++-- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/target/sparc/translate.c b/target/sparc/translate.c index ece393fffc..cfdd9c1ce4 100644 --- a/target/sparc/translate.c +++ b/target/sparc/translate.c @@ -2863,18 +2863,8 @@ static TCGv do_rdy(DisasContext *dc, TCGv dst) return cpu_y; } =20 -static bool trans_RDY(DisasContext *dc, arg_RDY *a) -{ - /* - * TODO: Need a feature bit for sparcv8. In the meantime, treat all - * 32-bit cpus like sparcv7, which ignores the rs1 field. - * This matches after all other ASR, so Leon3 Asr17 is handled first. - */ - if (avail_64(dc) && a->rs1 !=3D 0) { - return false; - } - return do_rd_special(dc, true, a->rd, do_rdy); -} +TRANS(RDY_v7, 32, do_rd_special, true, a->rd, do_rdy) +TRANS(RDY_v9, 64, do_rd_special, true, a->rd, do_rdy) =20 static TCGv do_rd_leon3_config(DisasContext *dc, TCGv dst) { diff --git a/target/sparc/insns.decode b/target/sparc/insns.decode index 1b1b85e9c2..74848996ae 100644 --- a/target/sparc/insns.decode +++ b/target/sparc/insns.decode @@ -91,6 +91,7 @@ CALL 01 i:s30 STBAR_v9 10 00000 101000 01111 0 0000000000000 MEMBAR 10 00000 101000 01111 1 000000 cmask:3 mmask:4 =20 + RDY_v9 10 rd:5 101000 00000 0 0000000000000 RDCCR 10 rd:5 101000 00010 0 0000000000000 RDASI 10 rd:5 101000 00011 0 0000000000000 RDTICK 10 rd:5 101000 00100 0 0000000000000 @@ -118,8 +119,15 @@ CALL 01 i:s30 # This confirms that bit 13 is ignored, as 0x8143c000 is STBAR. STBAR_v8 10 ----- 101000 01111 - ------------- =20 - # Before v8, all rs1 accepted; otherwise rs1=3D=3D0. - RDY 10 rd:5 101000 rs1:5 0 0000000000000 + # For v7, bits [18:0] are ignored. + # For v8, bits [18:14], aka rs1, are repurposed and rs1 =3D 0 is RDY, + # and other values are RDASR. However, the v8 manual explicitly + # says that rs1 in 1..14 yield undefined results and do not cause + # an illegal instruction trap, and rs1 in 16..31 are available for + # implementation specific usage. + # Implement not causing an illegal instruction trap for v8 by + # continuing to interpret unused values per v7, i.e. as RDY. + RDY_v7 10 rd:5 101000 ----- - ------------- } =20 { --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741432; cv=none; d=zohomail.com; s=zohoarc; b=jKlBtVYQdm7V6MF3RkOVyX89imdjy96LSz9hOEjiME1MS6NbzPkKYSSxZmRYCKQwxBNFt0KTAUMXioFEhdQ5fZRHhJZMpPw/ckdj2zlPpzY3QMUPdMN87Pu06T+KTixb0PYC2K+ZB6OSY6ZdU81GFd3I54KBhDMQbQBY6U2itmA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741432; h=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=WLwlRRCUdDBJvJH1M9ZzZRAOVqgIKcGI1AnSosumpK4=; b=LsOu0IzHch4OqjW34pDEVuprGxSfACHkpL3co7+nTXydY2HxwSGYcxgjqrDlLpGmLkq86pb25r8e0XCPY3NZfyCnL/Ni5IXxTOv1f/G9avUN9NbWSK7UGE1fLpfamXo2LydXWcWPMsi6YYp+HKPWSzEjqhnUee5INSw5T3X4NnU= 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 1758741432554214.40514311763081; Wed, 24 Sep 2025 12:17:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UnA-0007e0-H6; Wed, 24 Sep 2025 15:04:41 -0400 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 1v1Ult-0006uy-Ss for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:25 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Ujt-0007oi-FM for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:17 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-3322e63602eso217751a91.0 for ; Wed, 24 Sep 2025 12:01:16 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740473; x=1759345273; 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=WLwlRRCUdDBJvJH1M9ZzZRAOVqgIKcGI1AnSosumpK4=; b=pQ8ZgucilcnrJWE0dzTxFsSw0+DHiayXO4hHB7rMzz/8PBh71o92eKhTbroIPegB38 ORjncaW8mtJQNKc5lkjtuk6C+Yewfm211plXJSZrXkq9PqtnVHwXcIOx+VQ/qkTUjpuO tUfT7ijFYjrddW0FOf/zLZPDPk+hwaohA6StXzjZ+LRxP+kQaYu+/vgh56J/3y+i1myF DnrH0oZtbaX2iJizYy6y+NDByJAnL378OXYZKtwdFL2CEz0KkXn4mv1aHooIpb1eaujZ +42B4OmWLDY8afuqXHRoSfFMbiTD7qlQo3qlTz7vlcoNay2fgQ8Tj7SWbM1mRWalXB5M fKNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740473; x=1759345273; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WLwlRRCUdDBJvJH1M9ZzZRAOVqgIKcGI1AnSosumpK4=; b=XGJg3E0KabyuMw1y/ZhFlU2aKCVbfd8Y67jhLhZgZ8w/yln4CxpjBV89iSL+2VjAkB gIL2B3YQBjj3D4HxDOu5N8yykpn8oDWvJ5ivWR+vD15XAPM+wUtDthk2WQUluWhtOF10 oyn3qNjQR992clxJxXV3ojmuhZyPyfgv7dIor5c8ShEJY9OQLkQGW1XL+SNBBvOB//cp vxoD8/RooM5lYkXZdzDHkM9MAxKuuIpoESgoeTPMdEqMmF44EehxJnWVaV1XjjIwfieS WZly9+775I/lg58dAdUAB3BX2cMTbAeHmgjpA0qCWnDYZbyqIXQryBXiaprkghrvQ2Uh Tk8Q== X-Gm-Message-State: AOJu0YxceXhGBqr2ybM1sKQI5NuEcgrPQgCuVY6rGpW6FiS1Oeek2SwS C/zfgxOfelEhHmhfdwAewaJZmQNBEkzkUN845yg6XYUI6ZgNw+EP3TfuL/HFRutl9pmElhNgWBm UJjEO X-Gm-Gg: ASbGnctR93jDc0CopNUAq0u6vP9nHbICeO12fehTj8fJ2t4J9Kf8H/MSDDwY7l8AfiD Uhuf4dtqqfRaNF4ivhjyO5W+j/JIKtw/ubLfV/HM4ojhPB91zGVtIe04R2Bmj1V5TOA+bRiayMl dAJidPvcRlMAueBzt35df0Vh5vfrjibuU1wtTg5jzCLawSk2nGcphe+F1hAUi1y5lSncK3X0Sly xOFLZyMUGsnnOpL5F3JOgP/0qeAlOPcj2KqPKLsE+2jPjs/HgmXHANarO2yX3wz6SQ/gXSVZAM/ a+eFcpm3RB+rn2VQ66+DFwUkhX0O9yDHDMLm9qB98WRUMNUxnQjMblWnyp92VGZTKvJomDPm5hM Vrt5VS3dWJ/MLnp0qWdsAwj767H8L X-Google-Smtp-Source: AGHT+IFO+0T0bqr3sD7VfFjJdInQqkyEoeEeh60pge12QzAmhluLFX9SQt0Z4LNdTT+UEUNcjMN01w== X-Received: by 2002:a17:90b:5627:b0:330:793a:4240 with SMTP id 98e67ed59e1d1-3342a2c5d9cmr591889a91.31.1758740473168; Wed, 24 Sep 2025 12:01:13 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland Subject: [PULL 08/32] target/sparc: Loosen decode of RDPSR for v7 Date: Wed, 24 Sep 2025 12:00:41 -0700 Message-ID: <20250924190106.7089-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741433281116600 Content-Type: text/plain; charset="utf-8" For v7, bits [18:0] are ignored. For v8, bits [18:14] are reserved and bits [13:0] are ignored. Fixes: 668bb9b755e ("target/sparc: Move RDPSR, RDHPR to decodetree") Reviewed-by: Mark Cave-Ayland Signed-off-by: Richard Henderson --- target/sparc/insns.decode | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/target/sparc/insns.decode b/target/sparc/insns.decode index 74848996ae..1c6403ad8a 100644 --- a/target/sparc/insns.decode +++ b/target/sparc/insns.decode @@ -158,14 +158,16 @@ CALL 01 i:s30 } =20 { - RDPSR 10 rd:5 101001 00000 0 0000000000000 - RDHPR_hpstate 10 rd:5 101001 00000 0 0000000000000 + [ + RDHPR_hpstate 10 rd:5 101001 00000 0 0000000000000 + RDHPR_htstate 10 rd:5 101001 00001 0 0000000000000 + RDHPR_hintp 10 rd:5 101001 00011 0 0000000000000 + RDHPR_htba 10 rd:5 101001 00101 0 0000000000000 + RDHPR_hver 10 rd:5 101001 00110 0 0000000000000 + RDHPR_hstick_cmpr 10 rd:5 101001 11111 0 0000000000000 + ] + RDPSR 10 rd:5 101001 ----- - ------------- } -RDHPR_htstate 10 rd:5 101001 00001 0 0000000000000 -RDHPR_hintp 10 rd:5 101001 00011 0 0000000000000 -RDHPR_htba 10 rd:5 101001 00101 0 0000000000000 -RDHPR_hver 10 rd:5 101001 00110 0 0000000000000 -RDHPR_hstick_cmpr 10 rd:5 101001 11111 0 0000000000000 =20 { WRPSR 10 00000 110001 ..... . ............. @n_r_ri --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741349; cv=none; d=zohomail.com; s=zohoarc; b=e68+y5GJmLU7zUkxNbXc6h+haTudidTslviQ+POovG+KqzT1eoiaVDx+ISghwH2KBOeczJZ0G8ko1trBJfeZECfy6Sq+aPfaSPkexMMZAF0w6H5do2SibtxB0pmDihADib/SXliz+ssYrc4LS0zYP3isXrOqyM7YCLAB6mn77Pw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741349; h=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=kCTrGX3KmloALN2paC3qrevC6P0gXZ2hKVt4HdoqLUQ=; b=KYzg1ZZ7aCCp01Utpm0mma8mVksU9LUjpCqeHKco85ri3EdVHnGNFMGJXZHvxpOfOkGqouDZkalVSzz1Fs03UQ9gj00brhvMUryEzFYl2w39B4tPXGMrZ59c3lZZRvvqOdfihL37ACQZqyxHS5bAcLIEUFSKHcrYJiX1hyrhYio= 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 1758741349014885.2659771506256; Wed, 24 Sep 2025 12:15:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1Uno-0008CF-QC; Wed, 24 Sep 2025 15:05:22 -0400 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 1v1Uly-0006vy-0l for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:29 -0400 Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Ujw-0007pH-JC for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:21 -0400 Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-77c1814ca1dso140254b3a.2 for ; Wed, 24 Sep 2025 12:01:17 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740474; x=1759345274; 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=kCTrGX3KmloALN2paC3qrevC6P0gXZ2hKVt4HdoqLUQ=; b=Fol2lc3b4xKgJRev8tbm4rwmyUvUfVr9rfiQ2P4Y22uZT3ZqLlx4p37d32uyMYw1PU nrnGcYnliR2RXJ/2NpZnmLHbNk+AeGGa1zgvromRDfSmzbaajvaoVlSggAG9TSh3HSr0 7gT2IrE6jXchqAtPWFnlVjOxqsLwXX50kSS/J1uN9jI/8O794+IAVLw5hIiTutQyxjwB r+j5iZzDxTw7K0TiEr4VfLfX8dXrjbEKU5ro5T8fz6vDSK5spIVTb5Elw7K3rofBRsQJ iINL8CVAPofRThehCRyNtCDpPA2XGKJmq+jkXDSsYyBjpprZAN2QY848vZ5jagbzWnOq saxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740474; x=1759345274; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kCTrGX3KmloALN2paC3qrevC6P0gXZ2hKVt4HdoqLUQ=; b=N5uCBvJajndXZEw9OXoTDELEkxNCWDENApCF+3w4r2Lgj7LfyVyVfSqSbmZnYTBF26 PdDCC9lKgQ3fSLdB1Rl9/Y3fOPYzcsXCpa61l92LKxet7w6I67Ur0/JbNxK4/vRfshDj iwfLS+BMsY6ye0UCnEwGuFOlOPYC9PshSIlJtThMw54qSiVdafMx3/o5zhWbG+FCQSAb wzhgg/FRLB85mz9VMaZvAxfB/WDSTAEaJbAoD4+RC0kQL1sfcgPHd0LnOcyyX3qCWAyZ t/FW5PVzppaZ9TD0IGZ+8FUSgoXsxhgR4B/XHmY2u/45wx3im/YH2pFsnBDEjZ4HtH7z 03EA== X-Gm-Message-State: AOJu0YxlutD7EzmwF0IGFAVm+YBLWsYTXXytYavktUE3zLS+R1Y/qT/t ll4hRb/Uy/5aZeTOOJoxHITKZFgv3C7WfA8CTy7T2sinHwWhm1GPEtfDasEbDj6KnWJ3u6gBDrL P/apM X-Gm-Gg: ASbGnctKAG8Wh7xkY3oE/ViAwQqYSf8zT7Xha9zDAhbbgSqIrYm6AicKTldNuuFvRPL SoXp0HJYPF1+mVBYY+G4s5X/ponQMPoGmfg954ssGNzOUpf82Q2vmx0Gdi1Y4OfZETGDSRWhTbq 7lzWLlODIyrbchXNY9muvXXd0PHBNcrWJDajCSHxW8FOjjRrUY68lmCKQhPsYBRynlIDspYQwkv bUEowweZGxTl5b29E69YKXqhu6s6IfOV84FJyTj+UWvNECWnGVr9aExNMuNVYptNMjXn/er1pE5 p08XiO0unkVVfmdBBz5mqZaW/RNUCzzKpwWQqYmJwup/csO9XwVp0eGcA3ZHXip1z6G3P5ATWQ/ 4Q3W58q26vr+jOEbbVVTDuSe1kS6y X-Google-Smtp-Source: AGHT+IEuXC1uuJ/x9a8YgxJ3iAQ4zKOBy+HLE3cv7oFbezhXupBrFAFEtiR2Lov02ZuQCD39w5hgQw== X-Received: by 2002:a17:90b:1f8c:b0:330:797a:f4ea with SMTP id 98e67ed59e1d1-3342a2e73d7mr766688a91.29.1758740473971; Wed, 24 Sep 2025 12:01:13 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland Subject: [PULL 09/32] target/sparc: Loosen decode of RDWIM for v7 Date: Wed, 24 Sep 2025 12:00:42 -0700 Message-ID: <20250924190106.7089-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::433; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x433.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741351158116600 Content-Type: text/plain; charset="utf-8" For v7, bits [18:0] are ignored. For v8, bits [18:14] are reserved and bits [13:0] are ignored. Fixes: 5d617bfba07 ("target/sparc: Move RDWIM, RDPR to decodetree") Reviewed-by: Mark Cave-Ayland Signed-off-by: Richard Henderson --- target/sparc/insns.decode | 40 ++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/target/sparc/insns.decode b/target/sparc/insns.decode index 1c6403ad8a..77b2f54fdf 100644 --- a/target/sparc/insns.decode +++ b/target/sparc/insns.decode @@ -180,26 +180,28 @@ RESTORED 10 00001 110001 00000 0 000000000= 0000 # UA2005 INVALW =20 { - RDWIM 10 rd:5 101010 00000 0 0000000000000 - RDPR_tpc 10 rd:5 101010 00000 0 0000000000000 + [ + RDPR_tpc 10 rd:5 101010 00000 0 0000000000000 + RDPR_tnpc 10 rd:5 101010 00001 0 0000000000000 + RDPR_tstate 10 rd:5 101010 00010 0 0000000000000 + RDPR_tt 10 rd:5 101010 00011 0 0000000000000 + RDPR_tick 10 rd:5 101010 00100 0 0000000000000 + RDPR_tba 10 rd:5 101010 00101 0 0000000000000 + RDPR_pstate 10 rd:5 101010 00110 0 0000000000000 + RDPR_tl 10 rd:5 101010 00111 0 0000000000000 + RDPR_pil 10 rd:5 101010 01000 0 0000000000000 + RDPR_cwp 10 rd:5 101010 01001 0 0000000000000 + RDPR_cansave 10 rd:5 101010 01010 0 0000000000000 + RDPR_canrestore 10 rd:5 101010 01011 0 0000000000000 + RDPR_cleanwin 10 rd:5 101010 01100 0 0000000000000 + RDPR_otherwin 10 rd:5 101010 01101 0 0000000000000 + RDPR_wstate 10 rd:5 101010 01110 0 0000000000000 + RDPR_gl 10 rd:5 101010 10000 0 0000000000000 + RDPR_strand_status 10 rd:5 101010 11010 0 0000000000000 + RDPR_ver 10 rd:5 101010 11111 0 0000000000000 + ] + RDWIM 10 rd:5 101010 ----- - ------------- } -RDPR_tnpc 10 rd:5 101010 00001 0 0000000000000 -RDPR_tstate 10 rd:5 101010 00010 0 0000000000000 -RDPR_tt 10 rd:5 101010 00011 0 0000000000000 -RDPR_tick 10 rd:5 101010 00100 0 0000000000000 -RDPR_tba 10 rd:5 101010 00101 0 0000000000000 -RDPR_pstate 10 rd:5 101010 00110 0 0000000000000 -RDPR_tl 10 rd:5 101010 00111 0 0000000000000 -RDPR_pil 10 rd:5 101010 01000 0 0000000000000 -RDPR_cwp 10 rd:5 101010 01001 0 0000000000000 -RDPR_cansave 10 rd:5 101010 01010 0 0000000000000 -RDPR_canrestore 10 rd:5 101010 01011 0 0000000000000 -RDPR_cleanwin 10 rd:5 101010 01100 0 0000000000000 -RDPR_otherwin 10 rd:5 101010 01101 0 0000000000000 -RDPR_wstate 10 rd:5 101010 01110 0 0000000000000 -RDPR_gl 10 rd:5 101010 10000 0 0000000000000 -RDPR_strand_status 10 rd:5 101010 11010 0 0000000000000 -RDPR_ver 10 rd:5 101010 11111 0 0000000000000 =20 { WRWIM 10 00000 110010 ..... . ............. @n_r_ri --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758740858; cv=none; d=zohomail.com; s=zohoarc; b=H1wKi64qMj/nm+280ON808LW6wXoj9QVlUQi6ILMvHhhGE1bMT+wKZr3QbywwEMfYodDTlri78/WB2omtxOgEhsvRgwX1zodwcGEWGa+nRbuR+3NDAnbWxOgGUE5jI6LyKzmW/4dCsRnUBrF7lS2MsRSXY21PmDNWeaufVHVujU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758740858; h=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=3y6GMBnkWH9fyHQshpdSniNoZ8n9TEP3JfhOL3KJlw4=; b=lvffY0Wgr+eLVHRm8DCt6275d/Jg4wGFbSdP73/+Wubi1JWX3uNBJ2wDUDV2/JcmPZHEV4B11mM7ovpAocMMUmpxIIKSgy/rEL2h1QS2xv63VK4dXwSuIze9aFj0L/PLkX3/Uo8ZZ2cWRDCMBj56BtAEcA/uKsGpGnsxYRdekwk= 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 1758740857980593.286644138932; Wed, 24 Sep 2025 12:07:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UnM-0007sv-HK; Wed, 24 Sep 2025 15:04:52 -0400 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 1v1Uly-0006w7-1Z for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:29 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Ujw-0007pa-KA for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:21 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-3306b83ebdaso155565a91.3 for ; Wed, 24 Sep 2025 12:01:17 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740475; x=1759345275; 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=3y6GMBnkWH9fyHQshpdSniNoZ8n9TEP3JfhOL3KJlw4=; b=B31lPl7eytz5ISm/tMNaVKVWkKCndSz8W/u1AGCMYRKpJFIAd1yNXfVbsLX96+PFMi cvWs5ZuLNJ7NWS+FBYGM1X+WJ36Bm04nWJaHlIU0tqu7H0lAFT6wNKTvZOS8AeOhTMap ey63EcNZKW5ef65DDPhZqhMMFY4vVEv2FNj/8CvkBfIB7xAL7+x9E4jQ/q5kcdNDnlpd 3QSTwz7SnV9zSb6IliHmvnDvsOUfbCNAnzLvwoauTSAiSn6V6u1Z9KUAMRk95JYdhqXr M5KegMjiYWfaGZdfIWxvLPqae8r+jHdB3Qu9g3v5qQ8OVXSKvikWKNIycLRroVWlcZq0 kYow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740475; x=1759345275; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3y6GMBnkWH9fyHQshpdSniNoZ8n9TEP3JfhOL3KJlw4=; b=esrQzEj3RyDvZFJ4pcKMzaJzKQpRsc1GOg2eaAr9JoJ/U4z+U/k9m9pChjnFRTjtx6 vBvgbSSAyBWevEN89pJEdPxXFyhAQqzsHyXp1MLmfBIk1CDaWqY0K4BKtcE9K5ATsqto zKx6hPp4ft/69yGtSahQQ6YYOPVhsbZthuCJu0v6UzcAZu6QS5qvCJ9X6Ho1RxjyjxjW EzLq8RKIf4gcO0u7SKXPgLKYG64rk1B67LoG0nKaiO5MGo4XzktgDqBWp+MURBmtgFvt q9C9hyKoyUvIMKV3ln+9e9zzwMhV0qlbUvjyOqVQc/nbEhEdnmF+xo/JLMDztmbBbbgo TNyA== X-Gm-Message-State: AOJu0YzDZaiA2kSwyNV4iB/RkHQjkCxUJACgqyZtY5MJzDu3m9wnM7kw mx1inAJyeTGd0urSBHEvEDj8gU4/4NolsLWApMfekDd+ZQ1LmqxHU+cCdStgcDFTqGCg6KDcaTU 5Asn8 X-Gm-Gg: ASbGnctVf3zjupp/QQGfkWsAcxRNnxufM+z9msz1Nv65k5OUki5Ddk0kMhymlbaTNJ5 wkeid33aaGKZtdphSpPQXsdOhfKvY7TEyf/9ncXAjas+RKk1JGwTQWs2M+CQ9lRYu/q+yEpkqBY b+ASFUqpwqqT8pRqzrVRihyifts40h8F3GMbt5LWdCz88/KEEPSQkmC22qR8xwFYArBS3kX8ges W7Ksqhgb+mn1uuZtcDeCXWqrtKjyeYNANtiHpTRCAFJIhC2PeBH0hmlE0KVDVGCB6f0Vc5BPcXB uJfnNtHK3fJ5k0Vu0puQuvYrbDIsNd0HDa4hFYYjQp9Lk4MsxwJk1TuVybiKrREIZniFdox4AgJ cmasZwDiwQyr5TqTs56htB/qvYP0B1m6jI6+bAFQ= X-Google-Smtp-Source: AGHT+IHq9+ns+icvb4uFyD5tprR6CZsAGGpCh+gUAqhFy8k2TPVufRumOKWzfnmPnA8kmFZLrrViGQ== X-Received: by 2002:a17:90b:380f:b0:329:e703:d00b with SMTP id 98e67ed59e1d1-3342a2f8adfmr733933a91.19.1758740474593; Wed, 24 Sep 2025 12:01:14 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland Subject: [PULL 10/32] target/sparc: Loosen decode of RDTBR for v7 Date: Wed, 24 Sep 2025 12:00:43 -0700 Message-ID: <20250924190106.7089-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758740858566116600 Content-Type: text/plain; charset="utf-8" For v7, bits [18:0] are ignored. For v8, bits [18:14] are reserved and bits [13:0] are ignored. Fixes: e8325dc02d0 ("target/sparc: Move RDTBR, FLUSHW to decodetree") Reviewed-by: Mark Cave-Ayland Signed-off-by: Richard Henderson --- target/sparc/insns.decode | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/sparc/insns.decode b/target/sparc/insns.decode index 77b2f54fdf..242ec42016 100644 --- a/target/sparc/insns.decode +++ b/target/sparc/insns.decode @@ -226,7 +226,7 @@ WRPR_strand_status 10 11010 110010 ..... . ...........= .. @n_r_ri =20 { FLUSHW 10 00000 101011 00000 0 0000000000000 - RDTBR 10 rd:5 101011 00000 0 0000000000000 + RDTBR 10 rd:5 101011 ----- - ------------- } =20 { --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741040; cv=none; d=zohomail.com; s=zohoarc; b=bYxdkN70C+nuaKcLM07h21WTesTX/Tzn+iVAj8USoTx1ZXV7rGfbiSWaJAYxOIfaZFGi1ZHzvKdL4upqvwrrYdH71gxPWp4jNvYNFCfbwytQUcGSikxHlNjEuwf7NqK84hQCmvHcAPmD73BrUWYxaMjpGziFTQ1lPtvPTUruoI0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741040; h=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=ZCvMLg3PXpeXqCZXKGOBJu95mWvD2ZHjZee8a5dbELg=; b=gGVXGOwOztLvuQKjMJqHOLg1pLUxhbcb7pOKdWzO+tLwe9zD08mVVPR68FOGH4/nrxpLGzjJMkvaF/U0/Z3gB/4C62NmhGX8ikMWvo8+98UPai45ps3Mj0wR+uX3UpRIQKOGnOGDLvgbjktQV5S11XdgPWauAn6J2pOvU/s54rA= 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 1758741040386844.1794920558269; Wed, 24 Sep 2025 12:10:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UpJ-00018e-09; Wed, 24 Sep 2025 15:06:56 -0400 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 1v1Uly-0006w2-17 for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:29 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0: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 1v1Ujv-0007pp-5G for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:20 -0400 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-77db1bcf4d3so145237b3a.1 for ; Wed, 24 Sep 2025 12:01:16 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740475; x=1759345275; 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=ZCvMLg3PXpeXqCZXKGOBJu95mWvD2ZHjZee8a5dbELg=; b=FIocC7IwHbK1ZeQpebZVk7XQJJNN7DZ5YzsK/PPPBYT5Ll86/t3nndBfqSpzHryLm8 /m6P4DZh79tnpcMZAec5yM4df0O9E5R6jOvujssc/DSQ23UfuoncrGodskrs179gE0y9 URjrpKUhOcpArLkzKlpOnLgIBGkYT1NswhJuWoqTAnQMf0Cul6/TYTh0/tpgHEXsWQEc J/WBQSY8gZqUyVhvOzM0BBDYFHdI+aITtuk5z7PbT60LT/kGUD3Tzwi7k+2J/CAkSy89 10VHjN2n+0RSFn2Oix0xLo8m43xkP72Meqoigp1C2Q5GBF8z3HrMGRitWOEypbn49KD7 VNIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740475; x=1759345275; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZCvMLg3PXpeXqCZXKGOBJu95mWvD2ZHjZee8a5dbELg=; b=AOOQB+M6whxj6+whjef/QQ2M4czPqkIlGbyMaLM/xxSQQOygovJ89wGIS+jh33YXfJ NudaSoKy74T7LitE3yb0MkRfBzbc/oI7kpM+NlC5qjslkjH6f6HMJNl+82VyEeDqeW2c gIVbpIz3Ky+HhJIM0P8IlvyaigjIzG8zF9TB4ARyt4EdyK9OYUuX4Tk8nWQMLqiChW1F yGwYVQlsfmbv+YuMlJ2Ooad+I7mUFGrCdCVqdwZe2regiigbKgcdOkGfK8E9GUf1TePM 80zPN77GxF5V7RKdXHg/1tMjlLoa7aWt1GPrxH2nxvKv8FD0Dm0q9DPJrcfn3EmztUSM dC5w== X-Gm-Message-State: AOJu0YzJw+vmfvtHpW/gZZocqaDtHUT4ND3tTsnwU33bNMi08UCve4DC aflCiQHQ1ckTELfHDB8I+NPo5kWh2+CxIlynyYc72M+AMeFgXb5JQtGGeU5jlYlmC5Q7pCa5h0+ t2Ygk X-Gm-Gg: ASbGncvJiz8xcxUmoirSvDeZlbbU4SEUxBd6TFRpT+kE/2bKfV2/YpgMT/4fGJl8xZT z1KJ6gAnbb4UNXQUQT6+ZCFDqDg9/RLNuVL+ZDs3mzlS0HgXqnIaq1S7HJjzUbmGoXNUjpcOW5I v/C5UGKn1eK0gr0j811vtvBPB0xZLHEckA/atEm3tn/88LsbPiKjPROriqQKODtAaW8oI+badmR 4vX8B4zo/s5p+0NXgAOEyAJ2W9oofwWkgrRtW9vWdvYuEz1mV1FNce3sxwpbYbdYy/j7r+JcMOz ScYQPWWzUeE2oIaainowcdUZd13M2C4/eqCsw6w5roqXo77OVokHSdqH6buCIBWgOMb5P23y3wo TGzTP0YNoLcTN5HHwNhk5ax9HBDJY X-Google-Smtp-Source: AGHT+IFR+dN1DApRGTduExcQrc7bmdjn9qSrmG4IXmd2SWoZ8xN/moDkMrO9XzZICtI9FeMXM5aHLg== X-Received: by 2002:a17:90b:2786:b0:327:e59d:2cc2 with SMTP id 98e67ed59e1d1-3342a24776cmr904658a91.10.1758740475395; Wed, 24 Sep 2025 12:01:15 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Mark Cave-Ayland Subject: [PULL 11/32] target/sparc: Relax decode of rs2_or_imm for v7 Date: Wed, 24 Sep 2025 12:00:44 -0700 Message-ID: <20250924190106.7089-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::432; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x432.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741042396116600 Content-Type: text/plain; charset="utf-8" For v7, bits [12:5] are ignored for !imm. For v8, those same bits are reserved, but are not trapped. Reviewed-by: Mark Cave-Ayland Signed-off-by: Richard Henderson --- target/sparc/translate.c | 56 ++++++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 19 deletions(-) diff --git a/target/sparc/translate.c b/target/sparc/translate.c index cfdd9c1ce4..810e2491a6 100644 --- a/target/sparc/translate.c +++ b/target/sparc/translate.c @@ -2526,6 +2526,32 @@ static int extract_qfpreg(DisasContext *dc, int x) # define avail_VIS4(C) false #endif =20 +/* + * We decoded bit 13 as imm, and bits [12:0] as rs2_or_imm. + * For v9, if !imm, then the unused bits [12:5] must be zero. + * For v7 and v8, the unused bits are ignored; clear them here. + */ +static bool check_rs2(DisasContext *dc, int *rs2) +{ + if (unlikely(*rs2 & ~0x1f)) { + if (avail_64(dc)) { + return false; + } + *rs2 &=3D 0x1f; + } + return true; +} + +static bool check_r_r_ri(DisasContext *dc, arg_r_r_ri *a) +{ + return a->imm || check_rs2(dc, &a->rs2_or_imm); +} + +static bool check_r_r_ri_cc(DisasContext *dc, arg_r_r_ri_cc *a) +{ + return a->imm || check_rs2(dc, &a->rs2_or_imm); +} + /* Default case for non jump instructions. */ static bool advance_pc(DisasContext *dc) { @@ -3249,8 +3275,7 @@ static bool do_wr_special(DisasContext *dc, arg_r_r_r= i *a, bool priv, { TCGv src; =20 - /* For simplicity, we under-decoded the rs2 form. */ - if (!a->imm && (a->rs2_or_imm & ~0x1f)) { + if (!check_r_r_ri(dc, a)) { return false; } if (!priv) { @@ -3693,8 +3718,7 @@ static bool do_arith_int(DisasContext *dc, arg_r_r_ri= _cc *a, { TCGv dst, src1; =20 - /* For simplicity, we under-decoded the rs2 form. */ - if (!a->imm && a->rs2_or_imm & ~0x1f) { + if (!check_r_r_ri_cc(dc, a)) { return false; } =20 @@ -3778,11 +3802,11 @@ static bool trans_OR(DisasContext *dc, arg_r_r_ri_c= c *a) { /* OR with %g0 is the canonical alias for MOV. */ if (!a->cc && a->rs1 =3D=3D 0) { + if (!check_r_r_ri_cc(dc, a)) { + return false; + } if (a->imm || a->rs2_or_imm =3D=3D 0) { gen_store_gpr(dc, a->rd, tcg_constant_tl(a->rs2_or_imm)); - } else if (a->rs2_or_imm & ~0x1f) { - /* For simplicity, we under-decoded the rs2 form. */ - return false; } else { gen_store_gpr(dc, a->rd, cpu_regs[a->rs2_or_imm]); } @@ -3799,8 +3823,7 @@ static bool trans_UDIV(DisasContext *dc, arg_r_r_ri *= a) if (!avail_DIV(dc)) { return false; } - /* For simplicity, we under-decoded the rs2 form. */ - if (!a->imm && a->rs2_or_imm & ~0x1f) { + if (!check_r_r_ri(dc, a)) { return false; } =20 @@ -3851,8 +3874,7 @@ static bool trans_UDIVX(DisasContext *dc, arg_r_r_ri = *a) if (!avail_64(dc)) { return false; } - /* For simplicity, we under-decoded the rs2 form. */ - if (!a->imm && a->rs2_or_imm & ~0x1f) { + if (!check_r_r_ri(dc, a)) { return false; } =20 @@ -3889,8 +3911,7 @@ static bool trans_SDIVX(DisasContext *dc, arg_r_r_ri = *a) if (!avail_64(dc)) { return false; } - /* For simplicity, we under-decoded the rs2 form. */ - if (!a->imm && a->rs2_or_imm & ~0x1f) { + if (!check_r_r_ri(dc, a)) { return false; } =20 @@ -4186,8 +4207,7 @@ TRANS(SRA_i, ALL, do_shift_i, a, false, false) =20 static TCGv gen_rs2_or_imm(DisasContext *dc, bool imm, int rs2_or_imm) { - /* For simplicity, we under-decoded the rs2 form. */ - if (!imm && rs2_or_imm & ~0x1f) { + if (!imm && !check_rs2(dc, &rs2_or_imm)) { return NULL; } if (imm || rs2_or_imm =3D=3D 0) { @@ -4250,8 +4270,7 @@ static bool do_add_special(DisasContext *dc, arg_r_r_= ri *a, { TCGv src1, sum; =20 - /* For simplicity, we under-decoded the rs2 form. */ - if (!a->imm && a->rs2_or_imm & ~0x1f) { + if (!check_r_r_ri(dc, a)) { return false; } =20 @@ -4369,8 +4388,7 @@ static TCGv gen_ldst_addr(DisasContext *dc, int rs1, = bool imm, int rs2_or_imm) { TCGv addr, tmp =3D NULL; =20 - /* For simplicity, we under-decoded the rs2 form. */ - if (!imm && rs2_or_imm & ~0x1f) { + if (!imm && !check_rs2(dc, &rs2_or_imm)) { return NULL; } =20 --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741009; cv=none; d=zohomail.com; s=zohoarc; b=CVQSTyhgMmzVMRJ6j7pPG4Yl63/BE3tklIzqrulxlgNejGsiLEONruZhU6zJ9mjbkm+9p5YB7Xxv2D+QhZvabaacSJejDerPSkOQ65RrQB2WH9OzQiAJOA6joTA6z4GH8KQb7bTRROTD30wxOAcvzVOReIDDlOVmrgkjnfR8aLQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741009; 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=Fs/q0rs/kOkmjXcrgH6awTg2fJnB2s2tZwNblJ3ZTbY=; b=XJETb/CTM4nwrXg9wFq4FNqb+TofpQUDa5n8tyOIScKCCVxg63FXVqQrNK2lgd6ivJFHcIQAog+i08++Xvt8Ilw1XXCUJUZGnTkabuS28C+cATPPz6Ya+ojvvG1PfYBJrotUwJVkMSJLE0KZTCwgTrYYRqzHoH3DhmRUNSqE0Js= 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 1758741009841357.4463381972696; Wed, 24 Sep 2025 12:10:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UnP-0007y8-GF; Wed, 24 Sep 2025 15:04:55 -0400 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 1v1Uly-0006w8-1h for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:29 -0400 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Ujw-0007qW-SK for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:23 -0400 Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-77f32d99a97so180704b3a.1 for ; Wed, 24 Sep 2025 12:01:18 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740476; x=1759345276; 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=Fs/q0rs/kOkmjXcrgH6awTg2fJnB2s2tZwNblJ3ZTbY=; b=ptZnEFLZ1+g84jvNoGUkwJSW78ElKDy6EcCF8Yz3ptfI+Bs6iqlC738j19WbSMkN52 IU8wRGtrlJjNRuM9aOVya4rVreSiaiVd7GymH7bgTe6NRjYtRHKMbZLLrfSXEW8IXNXV TaDAzRCJfNhT7OTBOkDsCOFD65aAE+VvOXhTgcXwr5OC2hK0U379RK/wfpeKDNoMoq97 ZJ8UwnldSutojhakUu7x7SHAY6lBh5j44uj14zunIgLt2Bp/gmSjVZRul6UjGtuShWHO +DfgxlCYBV4BK6DYHsm3H4hy6adnflrGtb7+lll2xGEo1MY1PJ3wGJg04kXMmwSva1FF /IQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740476; x=1759345276; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Fs/q0rs/kOkmjXcrgH6awTg2fJnB2s2tZwNblJ3ZTbY=; b=iMJ3n4GzeqKnJfQjkkRYnWWM6Ed7bbPs2fn8ygvMy/MSdnyk2zASBD87YifqRiEU3f T9aUgWRLATfT2I9V8ui3I49FCXsexJo2jqn29DT9nobuAn1PYdF09Vs+IFSfGwr30COH 5uLIY0z77Ckt0Ozle4Vo9jWKZyJkTYqjX2exSzUf3c4CQxc2LoH9jGIYQqXZ5KnjZ5M6 9rm+I7+VMgSCqF/PStKzywYsts7Q52pqIl+y6EKLTP9DLQD1/Fuh1iQnN0Jld9btwqfM s4rh+pKKu19+150bk+RgBruoY6sFW0puP6JjMcCigtgvOQ7tLHkAVjV0GOqs/QIhFAx1 /b0Q== X-Gm-Message-State: AOJu0Yw3J+Ii8OGaYq9FEv9G8ozXdS7l6biIUx585JXrp+PLmLLlsNiQ KNBt0RouDLxJVaJwWvMkA9tB2ge8ww804E3jyHLFyM6cu3/IyT9NtCkAzZAggm7eIt0LhIPaxtd hMCEv X-Gm-Gg: ASbGnct9Xr8KvaA2tNWX+eXcd2QeHjKGxTcWpoHzreTnsMsnO+ubGPNuSsePrSP1c1N rYrB1yMCUIhXZuQI8PQBsDTIFFmDIPI+n+Nv7MwiZN3Y8XPv6db9+VklVi0pLsEl/uhrncXit+y jnOzBA98dt64TqWn5ML6gmUhCHnKDsWHr0xpDncXS4ewTYETGyqqV0jAkS6I8t+ib0Z76Ro0EG6 kR08BkvqlEN375lQ23qVqUWMQdNjFldj+yNeauOBnvMIG0XaBv3FrwFGZj2rkkx66ote968Q4ZG kP5mQrPodAt7ThXBgUkuNJNYRTqGvTI1fpFFafwv3aEf22hyrAfAoq1XSx1v47ckKql5K2aEy7i 3X4CXq1uS+JYO8dp9Y2DbOO1XemQZ X-Google-Smtp-Source: AGHT+IGM2AmeyYdx7c8vUPHYNt+SfvlVO3qYOkFbVSYvNx5qHTvhCTMraa+6zRNZ7B1yFMrVfMr9pg== X-Received: by 2002:a17:90b:4d0a:b0:32e:a54a:be53 with SMTP id 98e67ed59e1d1-3342a2608eamr688377a91.16.1758740476313; Wed, 24 Sep 2025 12:01:16 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Peter Maydell , qemu-stable@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PULL 12/32] hw/pci-host/dino: Don't call pci_register_root_bus() in init Date: Wed, 24 Sep 2025 12:00:45 -0700 Message-ID: <20250924190106.7089-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@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 client-ip=2607:f8b0:4864:20::430; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x430.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741011931116600 From: Peter Maydell In the dino PCI host bridge device, we call pci_register_root_bus() in the device's instance_init. This is a problem for two reasons * the PCI bridge is then available to the rest of the simulation (e.g. via pci_qdev_find_device()), even though it hasn't yet been realized * we do not attempt to unregister in an instance_deinit, which means that if you go through an instance_init -> deinit lifecycle the freed memory for the host-bridge device is left on the pci_host_bridges list ASAN reports the resulting use-after-free: =3D=3D1771223=3D=3DERROR: AddressSanitizer: heap-use-after-free on address = 0x527000018f80 at pc 0x5b4b9d3369b5 bp 0x7ffd01929980 sp 0x7ffd01929978 WRITE of size 8 at 0x527000018f80 thread T0 #0 0x5b4b9d3369b4 in pci_host_bus_register /mnt/nvmedisk/linaro/qemu-fr= om-laptop/qemu/build/hppa-asan/../../hw/pci/pci.c:608:5 #1 0x5b4b9d321566 in pci_root_bus_internal_init /mnt/nvmedisk/linaro/qe= mu-from-laptop/qemu/build/hppa-asan/../../hw/pci/pci.c:677:5 #2 0x5b4b9d3215e0 in pci_root_bus_new /mnt/nvmedisk/linaro/qemu-from-la= ptop/qemu/build/hppa-asan/../../hw/pci/pci.c:706:5 #3 0x5b4b9d321fe5 in pci_register_root_bus /mnt/nvmedisk/linaro/qemu-fr= om-laptop/qemu/build/hppa-asan/../../hw/pci/pci.c:751:11 #4 0x5b4b9d390521 in dino_pcihost_init /mnt/nvmedisk/linaro/qemu-from-l= aptop/qemu/build/hppa-asan/../../hw/pci-host/dino.c:473:16 0x527000018f80 is located 1664 bytes inside of 12384-byte region [0x5270000= 18900,0x52700001b960) freed by thread T0 here: #0 0x5b4b9cab185a in free (/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/b= uild/hppa-asan/qemu-system-hppa+0x17ad85a) (BuildId: ca496bb2e4fc750ebd289b= 448bad8d99c0ecd140) #1 0x5b4b9e3ee723 in object_finalize /mnt/nvmedisk/linaro/qemu-from-lap= top/qemu/build/hppa-asan/../../qom/object.c:734:9 #2 0x5b4b9e3e69db in object_unref /mnt/nvmedisk/linaro/qemu-from-laptop= /qemu/build/hppa-asan/../../qom/object.c:1232:9 #3 0x5b4b9ea6173c in qmp_device_list_properties /mnt/nvmedisk/linaro/qe= mu-from-laptop/qemu/build/hppa-asan/../../qom/qom-qmp-cmds.c:237:5 #4 0x5b4b9ec4e0f3 in qmp_marshal_device_list_properties /mnt/nvmedisk/l= inaro/qemu-from-laptop/qemu/build/hppa-asan/qapi/qapi-commands-qdev.c:65:14 previously allocated by thread T0 here: #0 0x5b4b9cab1af3 in malloc (/mnt/nvmedisk/linaro/qemu-from-laptop/qemu= /build/hppa-asan/qemu-system-hppa+0x17adaf3) (BuildId: ca496bb2e4fc750ebd28= 9b448bad8d99c0ecd140) #1 0x799d8270eb09 in g_malloc (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0= x62b09) (BuildId: 1eb6131419edb83b2178b682829a6913cf682d75) #2 0x5b4b9e3e75fc in object_new_with_type /mnt/nvmedisk/linaro/qemu-fro= m-laptop/qemu/build/hppa-asan/../../qom/object.c:767:15 #3 0x5b4b9e3e7409 in object_new_with_class /mnt/nvmedisk/linaro/qemu-fr= om-laptop/qemu/build/hppa-asan/../../qom/object.c:782:12 #4 0x5b4b9ea609a5 in qmp_device_list_properties /mnt/nvmedisk/linaro/qe= mu-from-laptop/qemu/build/hppa-asan/../../qom/qom-qmp-cmds.c:206:11 where we allocated one instance of the dino device, put it on the list, freed it, and then trying to allocate a second instance touches the freed memory on the pci_host_bridges list. Fix this by deferring all the setup of memory regions and registering the PCI bridge to the device's realize method. This brings it into line with almost all other PCI host bridges, which call pci_register_root_bus() in realize. Cc: qemu-stable@nongnu.org Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3118 Fixes: 63901b6cc4d8b4 ("dino: move PCI bus initialisation to dino_pcihost_i= nit()") Signed-off-by: Peter Maydell Reviewed-by: Alex Benn=C3=A9e Tested-by: Alex Benn=C3=A9e Signed-off-by: Richard Henderson Message-ID: <20250918114259.1802337-2-peter.maydell@linaro.org> --- hw/pci-host/dino.c | 90 +++++++++++++++++++++------------------------- 1 file changed, 41 insertions(+), 49 deletions(-) diff --git a/hw/pci-host/dino.c b/hw/pci-host/dino.c index 11b353be2e..924053499c 100644 --- a/hw/pci-host/dino.c +++ b/hw/pci-host/dino.c @@ -413,6 +413,47 @@ static void dino_pcihost_reset(DeviceState *dev) static void dino_pcihost_realize(DeviceState *dev, Error **errp) { DinoState *s =3D DINO_PCI_HOST_BRIDGE(dev); + PCIHostState *phb =3D PCI_HOST_BRIDGE(dev); + + /* Dino PCI access from main memory. */ + memory_region_init_io(&s->this_mem, OBJECT(s), &dino_chip_ops, + s, "dino", 4096); + + /* Dino PCI config. */ + memory_region_init_io(&phb->conf_mem, OBJECT(phb), + &dino_config_addr_ops, DEVICE(s), + "pci-conf-idx", 4); + memory_region_init_io(&phb->data_mem, OBJECT(phb), + &dino_config_data_ops, DEVICE(s), + "pci-conf-data", 4); + memory_region_add_subregion(&s->this_mem, DINO_PCI_CONFIG_ADDR, + &phb->conf_mem); + memory_region_add_subregion(&s->this_mem, DINO_CONFIG_DATA, + &phb->data_mem); + + /* Dino PCI bus memory. */ + memory_region_init(&s->pci_mem, OBJECT(s), "pci-memory", 4 * GiB); + + phb->bus =3D pci_register_root_bus(DEVICE(s), "pci", + dino_set_irq, dino_pci_map_irq, s, + &s->pci_mem, get_system_io(), + PCI_DEVFN(0, 0), 32, TYPE_PCI_BUS); + + /* Set up windows into PCI bus memory. */ + for (int i =3D 1; i < 31; i++) { + uint32_t addr =3D 0xf0000000 + i * DINO_MEM_CHUNK_SIZE; + char *name =3D g_strdup_printf("PCI Outbound Window %d", i); + memory_region_init_alias(&s->pci_mem_alias[i], OBJECT(s), + name, &s->pci_mem, addr, + DINO_MEM_CHUNK_SIZE); + g_free(name); + } + + pci_setup_iommu(phb->bus, &dino_iommu_ops, s); + + sysbus_init_mmio(SYS_BUS_DEVICE(dev), &s->this_mem); + + qdev_init_gpio_in(dev, dino_set_irq, DINO_IRQS); =20 /* Set up PCI view of memory: Bus master address space. */ memory_region_init(&s->bm, OBJECT(s), "bm-dino", 4 * GiB); @@ -444,54 +485,6 @@ static void dino_pcihost_unrealize(DeviceState *dev) address_space_destroy(&s->bm_as); } =20 -static void dino_pcihost_init(Object *obj) -{ - DinoState *s =3D DINO_PCI_HOST_BRIDGE(obj); - PCIHostState *phb =3D PCI_HOST_BRIDGE(obj); - SysBusDevice *sbd =3D SYS_BUS_DEVICE(obj); - int i; - - /* Dino PCI access from main memory. */ - memory_region_init_io(&s->this_mem, OBJECT(s), &dino_chip_ops, - s, "dino", 4096); - - /* Dino PCI config. */ - memory_region_init_io(&phb->conf_mem, OBJECT(phb), - &dino_config_addr_ops, DEVICE(s), - "pci-conf-idx", 4); - memory_region_init_io(&phb->data_mem, OBJECT(phb), - &dino_config_data_ops, DEVICE(s), - "pci-conf-data", 4); - memory_region_add_subregion(&s->this_mem, DINO_PCI_CONFIG_ADDR, - &phb->conf_mem); - memory_region_add_subregion(&s->this_mem, DINO_CONFIG_DATA, - &phb->data_mem); - - /* Dino PCI bus memory. */ - memory_region_init(&s->pci_mem, OBJECT(s), "pci-memory", 4 * GiB); - - phb->bus =3D pci_register_root_bus(DEVICE(s), "pci", - dino_set_irq, dino_pci_map_irq, s, - &s->pci_mem, get_system_io(), - PCI_DEVFN(0, 0), 32, TYPE_PCI_BUS); - - /* Set up windows into PCI bus memory. */ - for (i =3D 1; i < 31; i++) { - uint32_t addr =3D 0xf0000000 + i * DINO_MEM_CHUNK_SIZE; - char *name =3D g_strdup_printf("PCI Outbound Window %d", i); - memory_region_init_alias(&s->pci_mem_alias[i], OBJECT(s), - name, &s->pci_mem, addr, - DINO_MEM_CHUNK_SIZE); - g_free(name); - } - - pci_setup_iommu(phb->bus, &dino_iommu_ops, s); - - sysbus_init_mmio(sbd, &s->this_mem); - - qdev_init_gpio_in(DEVICE(obj), dino_set_irq, DINO_IRQS); -} - static const Property dino_pcihost_properties[] =3D { DEFINE_PROP_LINK("memory-as", DinoState, memory_as, TYPE_MEMORY_REGION, MemoryRegion *), @@ -511,7 +504,6 @@ static void dino_pcihost_class_init(ObjectClass *klass,= const void *data) static const TypeInfo dino_pcihost_info =3D { .name =3D TYPE_DINO_PCI_HOST_BRIDGE, .parent =3D TYPE_PCI_HOST_BRIDGE, - .instance_init =3D dino_pcihost_init, .instance_size =3D sizeof(DinoState), .class_init =3D dino_pcihost_class_init, }; --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741239; cv=none; d=zohomail.com; s=zohoarc; b=lXIaCi5jvrKp26/+U7eEf8cr3djQ3Rh0WItFDggtIwU6R9UY0gP30JezhyxNRiIB58zXNhUZKgfbog2MvHj3mRvPPUpdKOifhk5/fzOPuWzHKomydF1dqYhDI5CTJqcC3CbU4kDlFt/jlIRZF4i240GUSYTFZRrJ7M5TtFlMlq4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741239; 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=R6J4KmIAWnxeyp1vUu6jNVKgoHne93MLkw2ueVRdbRs=; b=O5WD7awilcz0PjTJTkxhHjrA3KroLXrfW3y1P018XQiDPJkLBedTkxmR+eKcOcHS6mAL6QeJljeyeoodtzyK4HWDujqv+LX9QUwODGvNRuFe3rHGjfaqcNiijfM0una7AWslGx5xWjcACeSdT2NuiH4onHqtwW9HwjMdIrI7CPQ= 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 1758741239436453.8200532506713; Wed, 24 Sep 2025 12:13:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1Uob-0000JD-NO; Wed, 24 Sep 2025 15:06:11 -0400 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 1v1Ulz-0006wL-Tj for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:30 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Ujz-0007qn-AO for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:24 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-3306d93e562so167200a91.1 for ; Wed, 24 Sep 2025 12:01:20 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740477; x=1759345277; 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=R6J4KmIAWnxeyp1vUu6jNVKgoHne93MLkw2ueVRdbRs=; b=jN4EiVg1kPR3JGTsRMi+Dmyi2XZiIiuS8paStFpMApXqEl9MTel2AI11v9ffQm2WXj 75TzVPTvqWloZQSn91BnxRWIK+R7Uw7wOWU7uCjQG+pdLZJ4TCRLebMQCBGsor7WsNqn XdTW36M1Xfn50ITIr+gjNxr3kRfVRqA3REgCGlJdcRVmRiM0+EqYJxeu0I1IIllYbbxK x8jy26oDqlJmEl2luZ3pUScZvQADBOcdYR99+vqxTRW/yjfOcvEtrBukFQi/RQUhHTyU 5SYYabmuZ71dG7T8/DwirsKl5DmMYZprrTFZYCcDQAAaNL6kyyLvjX3I/ZkWETLIqfDt mvDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740477; x=1759345277; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=R6J4KmIAWnxeyp1vUu6jNVKgoHne93MLkw2ueVRdbRs=; b=i09JVGU96mzo7mcMhuToWdsox1JbYlAOB52ebgzCPv9t858dtW8/PCu8UjJQsyWwCE MgFcJJl/ICRaYuZtpeqGHWXDvLXrVwaR1cCRNpWF5QRpeBodzJypE/sEvbEzKcrF0Ov1 QTDvTXXue6WbUB3YLwnhQpBVuTIRKi06XdzCuftIdEW0p3LDZs84UA6d8fhlNNgR2/Vk tVWf6IzGhC0l+h+X91kBQgjUnKKrDPwCuC1GxVKzsy39/u9VoM/qyUUKi+hlgIy87Jvd ANqYjC8pQt5pikowSyVfZh02ab4pkDL8pMmfas88zojsJYOVJ7iBmPoXR/4m/CoAA2bg TA3g== X-Gm-Message-State: AOJu0YzR6EAW62p/zpru75xTz0ShVvggE5XxhCTSEzYiidGG8GS2/9tK gn5+efw/ugp1DPZaMuSYKYqf97lFNRSMwGsUj57RJkbWkUge1vwfcdKY14E1rzy2k2eS2CYgR4C vZqZb X-Gm-Gg: ASbGncv+eWk18Vrc8btraq+8auwZ4aSmyZWedvA5wFLCRZcnlM6TuuqxIo1NzpYZuV6 HXJ7CwedmzREXe54QxEkcBipD3mVN5K/7a/8NSK51tjETx4hRIs73x63EwabxHTVSpeu8kGorTV hpEFQk3NmECbc3pm6QlhUh/l+rwWn+uyeXJR0NmyxYL6TVt4OlkrtRyL0xDDW/pkHYIG9EkVTC6 jIL+IJ6ZkPG9ObuQ39QhfaxFEzJAWFey37xJfLON1GGue77Es3Vx8WBcsV3nBCXxduUGH+pAIrF 3wxvqdE8Db4KIVBi5xQ9pINwLlkoxCSyYmuRV0ZZkEJp5VSlHfgF8qDVgtemW1ILigoaQvpnXZE SEenZObekWq3nusyu0vYd6Ku67Lco X-Google-Smtp-Source: AGHT+IFOlwEzkt4yrxK4rPCqXhdvz2+yfom4v9aYk5pFbmfeiOTGTDDGxNLlfBlICi19bTyHfrZ00A== X-Received: by 2002:a17:90a:dfcd:b0:332:fb46:9a34 with SMTP id 98e67ed59e1d1-3342a2c2a76mr890136a91.29.1758740476996; Wed, 24 Sep 2025 12:01:16 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Peter Maydell , qemu-stable@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PULL 13/32] hw/pci-host/astro: Don't call pci_regsiter_root_bus() in init Date: Wed, 24 Sep 2025 12:00:46 -0700 Message-ID: <20250924190106.7089-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@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 client-ip=2607:f8b0:4864:20::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741240885116600 From: Peter Maydell In the astro PCI host bridge device, we call pci_register_root_bus() in the device's instance_init. This is a problem for two reasons * the PCI bridge is then available to the rest of the simulation (e.g. via pci_qdev_find_device()), even though it hasn't yet been realized * we do not attempt to unregister in an instance_deinit, which means that if you go through an instance_init -> deinit lifecycle the freed memory for the host-bridge device is left on the pci_host_bridges list ASAN reports the resulting use-after-free: =3D=3D1776584=3D=3DERROR: AddressSanitizer: heap-use-after-free on address = 0x51f00000cb00 at pc 0x5b2d460a89b5 bp 0x7ffef7617f50 sp 0x7ffef7617f48 WRITE of size 8 at 0x51f00000cb00 thread T0 #0 0x5b2d460a89b4 in pci_host_bus_register /mnt/nvmedisk/linaro/qemu-fr= om-laptop/qemu/build/hppa-asan/../../hw/pci/pci.c:608:5 #1 0x5b2d46093566 in pci_root_bus_internal_init /mnt/nvmedisk/linaro/qe= mu-from-laptop/qemu/build/hppa-asan/../../hw/pci/pci.c:677:5 #2 0x5b2d460935e0 in pci_root_bus_new /mnt/nvmedisk/linaro/qemu-from-la= ptop/qemu/build/hppa-asan/../../hw/pci/pci.c:706:5 #3 0x5b2d46093fe5 in pci_register_root_bus /mnt/nvmedisk/linaro/qemu-fr= om-laptop/qemu/build/hppa-asan/../../hw/pci/pci.c:751:11 #4 0x5b2d46fe2335 in elroy_pcihost_init /mnt/nvmedisk/linaro/qemu-from-= laptop/qemu/build/hppa-asan/../../hw/pci-host/astro.c:455:16 0x51f00000cb00 is located 1664 bytes inside of 3456-byte region [0x51f00000= c480,0x51f00000d200) freed by thread T0 here: #0 0x5b2d4582385a in free (/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/b= uild/hppa-asan/qemu-system-hppa+0x17ad85a) (BuildId: 692b49eedc6fb0ef618bbb= 6784a09311b3b7f1e8) #1 0x5b2d47160723 in object_finalize /mnt/nvmedisk/linaro/qemu-from-lap= top/qemu/build/hppa-asan/../../qom/object.c:734:9 #2 0x5b2d471589db in object_unref /mnt/nvmedisk/linaro/qemu-from-laptop= /qemu/build/hppa-asan/../../qom/object.c:1232:9 #3 0x5b2d477d373c in qmp_device_list_properties /mnt/nvmedisk/linaro/qe= mu-from-laptop/qemu/build/hppa-asan/../../qom/qom-qmp-cmds.c:237:5 previously allocated by thread T0 here: #0 0x5b2d45823af3 in malloc (/mnt/nvmedisk/linaro/qemu-from-laptop/qemu= /build/hppa-asan/qemu-system-hppa+0x17adaf3) (BuildId: 692b49eedc6fb0ef618b= bb6784a09311b3b7f1e8) #1 0x79728fa08b09 in g_malloc (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0= x62b09) (BuildId: 1eb6131419edb83b2178b682829a6913cf682d75) #2 0x5b2d471595fc in object_new_with_type /mnt/nvmedisk/linaro/qemu-fro= m-laptop/qemu/build/hppa-asan/../../qom/object.c:767:15 #3 0x5b2d47159409 in object_new_with_class /mnt/nvmedisk/linaro/qemu-fr= om-laptop/qemu/build/hppa-asan/../../qom/object.c:782:12 #4 0x5b2d477d29a5 in qmp_device_list_properties /mnt/nvmedisk/linaro/qe= mu-from-laptop/qemu/build/hppa-asan/../../qom/qom-qmp-cmds.c:206:11 Cc: qemu-stable@nongnu.org Fixes: e029bb00a79be ("hw/pci-host: Add Astro system bus adapter found on P= A-RISC machines") Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3118 Signed-off-by: Peter Maydell Reviewed-by: Alex Benn=C3=A9e Tested-by: Alex Benn=C3=A9e Signed-off-by: Richard Henderson Message-ID: <20250918114259.1802337-3-peter.maydell@linaro.org> --- hw/pci-host/astro.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/hw/pci-host/astro.c b/hw/pci-host/astro.c index 859e308c57..1024ede7b6 100644 --- a/hw/pci-host/astro.c +++ b/hw/pci-host/astro.c @@ -424,22 +424,23 @@ static void elroy_reset(DeviceState *dev) } } =20 -static void elroy_pcihost_init(Object *obj) +static void elroy_pcihost_realize(DeviceState *dev, Error **errp) { - ElroyState *s =3D ELROY_PCI_HOST_BRIDGE(obj); - PCIHostState *phb =3D PCI_HOST_BRIDGE(obj); - SysBusDevice *sbd =3D SYS_BUS_DEVICE(obj); + ElroyState *s =3D ELROY_PCI_HOST_BRIDGE(dev); + PCIHostState *phb =3D PCI_HOST_BRIDGE(dev); + SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); + Object *obj =3D OBJECT(s); =20 /* Elroy config access from CPU. */ - memory_region_init_io(&s->this_mem, OBJECT(s), &elroy_chip_ops, + memory_region_init_io(&s->this_mem, obj, &elroy_chip_ops, s, "elroy", 0x2000); =20 /* Elroy PCI config. */ - memory_region_init_io(&phb->conf_mem, OBJECT(phb), - &elroy_config_addr_ops, DEVICE(s), + memory_region_init_io(&phb->conf_mem, obj, + &elroy_config_addr_ops, dev, "pci-conf-idx", 8); - memory_region_init_io(&phb->data_mem, OBJECT(phb), - &elroy_config_data_ops, DEVICE(s), + memory_region_init_io(&phb->data_mem, obj, + &elroy_config_data_ops, dev, "pci-conf-data", 8); memory_region_add_subregion(&s->this_mem, 0x40, &phb->conf_mem); @@ -447,8 +448,8 @@ static void elroy_pcihost_init(Object *obj) &phb->data_mem); =20 /* Elroy PCI bus memory. */ - memory_region_init(&s->pci_mmio, OBJECT(s), "pci-mmio", UINT64_MAX); - memory_region_init_io(&s->pci_io, OBJECT(s), &unassigned_io_ops, obj, + memory_region_init(&s->pci_mmio, obj, "pci-mmio", UINT64_MAX); + memory_region_init_io(&s->pci_io, obj, &unassigned_io_ops, obj, "pci-isa-mmio", ((uint32_t) IOS_DIST_BASE_SIZE) / ROPES_PER_IO= C); =20 @@ -459,7 +460,7 @@ static void elroy_pcihost_init(Object *obj) =20 sysbus_init_mmio(sbd, &s->this_mem); =20 - qdev_init_gpio_in(DEVICE(obj), elroy_set_irq, ELROY_IRQS); + qdev_init_gpio_in(dev, elroy_set_irq, ELROY_IRQS); } =20 static const VMStateDescription vmstate_elroy =3D { @@ -487,6 +488,7 @@ static void elroy_pcihost_class_init(ObjectClass *klass= , const void *data) DeviceClass *dc =3D DEVICE_CLASS(klass); =20 device_class_set_legacy_reset(dc, elroy_reset); + dc->realize =3D elroy_pcihost_realize; dc->vmsd =3D &vmstate_elroy; dc->user_creatable =3D false; } @@ -494,7 +496,6 @@ static void elroy_pcihost_class_init(ObjectClass *klass= , const void *data) static const TypeInfo elroy_pcihost_info =3D { .name =3D TYPE_ELROY_PCI_HOST_BRIDGE, .parent =3D TYPE_PCI_HOST_BRIDGE, - .instance_init =3D elroy_pcihost_init, .instance_size =3D sizeof(ElroyState), .class_init =3D elroy_pcihost_class_init, }; --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741170; cv=none; d=zohomail.com; s=zohoarc; b=d/lMr77WSE7gLTuzsfAAZzaKQL17/ADXTx3H/8iG77v5MilacpToxIEmQwmwi1qBPvW5XHe7KSiRMa3tpdwkTsIXUkpAiTx8AaiOGbsj78ywIMqJENuevd/TkbAU5rWrV3SsmTEp+8g+2KEOTQ0vwq0GR4GQbkE84xl1ZvvcpMo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741170; h=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=4zu8R6LKwQ6lOrIKQecK3A2J+NyHWCkSHewciWwmNMc=; b=VUN6RsiB3puyvMB8eMFKOXAQcofKuummKsaARZZ9BcXWjhcN9Poa/+VBsEmV08D4NFBhyiJ7xcDodmtCc+h23pPXDeYf77BorGy/SBGCqaxy0kq3OVUNIKmUf7HnmtLqCYL0HSDdlbPX7BcZGuIzY4EbfBRK/Bo4rdRA1arlNG8= 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 1758741170050569.8054618471687; Wed, 24 Sep 2025 12:12:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1Upd-0001XX-HE; Wed, 24 Sep 2025 15:07:13 -0400 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 1v1Um0-0006ww-Es for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:32 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Ujz-0007r3-Iv for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:26 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-33292adb180so155767a91.3 for ; Wed, 24 Sep 2025 12:01:19 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740478; x=1759345278; 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=4zu8R6LKwQ6lOrIKQecK3A2J+NyHWCkSHewciWwmNMc=; b=qfuD3M7YRcOAqhnHWaki/MG6LGUd8PgNQLnupz9ryFonll9H+J7Vl8emGDUhm5zINq oJTSXlhnBmbFBvguhkE++7PpsvNmdl33nLxUGwPuFvcUK2G44hpcumvwgS7X/tSwMMDR 09YAAS6rrNVpeIKRrurTnKq7kCPlRtZAOqzq1nSK6MitCvBHvYz1/bV/b50R+N2CEmQd jX4gnWSgevWsHFkKmL6zip+YHyS555nrhsnWw768dryLZ7kPc8bi6+pZCaUaSsHkQ5UH AJaichmyL7q1DHbX0BMpRrsuWUy6z0isKP4HP+qJi/SYie5kT+aQkJzxApSjQrEupqf/ wt0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740478; x=1759345278; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4zu8R6LKwQ6lOrIKQecK3A2J+NyHWCkSHewciWwmNMc=; b=TjzuUWh0iSoYm8VT9U2xIbdSnDoVsnEh13idaMkZw+bfqPSBO3DXq9+fxhXlFWUsLt 372JhBBJEADwfxq+DrW9FjYBvvswZLVkMjec2AD3Cu/gXgH7Hd3okejd9Z6cn50J1IzB cXbGstpSiUSrvVwbX56oAMA72I6uW+qHCwAZIB/sQiIapwCN/VDm5H/7TM9PBbzFvCIz vXMKRjnpDUCAM+Ez0XKktUCAB0d7kd2o2jzlmaossXkgTc1KR1W0fhPZZUbxGPAxAlhi EhUXWpFQ1HEjMXTblVvh5baxMPZCd1mgFToC2x3yurS9G06tuUnqq0zvPH7n5T/oinw/ nR8A== X-Gm-Message-State: AOJu0YyhZgvXHfFvvGt5lH2YYHPMXoPbeaRWAJ2zsU+xjqQRQEq0DO35 ZzHyR+LdeeyfOTZapjhDoWzW5RxZi0CtR80CWiB4tmsT5RENPKJgTdsCEObyZ5qNA+vhx7jAiSX Ug/TF X-Gm-Gg: ASbGncuYp+yP5tOT+Mg4U/CCXfty7j7RzMNDWDpTxMfh32AVUSLetuJshDyVjOLIjqy /oGWIHof5SqzcXd36FVYFThGPx8TUv/IQS5m6F8sYbLQgU2qGKUNJr9vyNMYUyGJL0oTQIpDa8v xaEUA4ytzS9E+7ElLd4FlPKLceAHgdV9BtXeHQ2KvQ9Zs0bk8B87+rUwARFcuOPwT4vH8p8h6kW SxkftrNeXpD9l56mAAMioCqkwe1g9X4pO+H/bNA9tK5tFe2so/H3PZSBiUD62U5iplDiBjj3+BO 1Is4jaxT6+F5ZR7tF307sUyflG6QWSWZmofphHWiGTfojMEIRAyc4lEqvVjeZ68f+4IAQSdLwjn sKqV0rx9ImPySTVJjxS1KWTyL5LSdQDMMQCE47CA= X-Google-Smtp-Source: AGHT+IEadd3X811FAaXgH/d96fYSTO/P7z296cG6vhNihw2ageBcE7u+w2Nf7YAvLJC/x+ynTwTf1Q== X-Received: by 2002:a17:90b:380f:b0:32e:32e4:9789 with SMTP id 98e67ed59e1d1-3342a257486mr797233a91.3.1758740477679; Wed, 24 Sep 2025 12:01:17 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: WANG Rui Subject: [PULL 14/32] tcg/optimize: Fix folding of vector bitsel Date: Wed, 24 Sep 2025 12:00:47 -0700 Message-ID: <20250924190106.7089-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741171858116600 Content-Type: text/plain; charset="utf-8" From: WANG Rui It looks like a typo. When the false value (C) is the constant -1, the correct fold should be: R =3D B | ~A Reproducer (LoongArch64 assembly): .text .globl _start _start: vldi $vr1, 3073 vldi $vr2, 1023 vbitsel.v $vr0, $vr2, $vr1, $vr2 vpickve2gr.d $a1, $vr0, 1 xori $a0, $a1, 1 li.w $a7, 93 syscall 0 Fixes: e58b977238e3 ("tcg/optimize: Optimize bitsel_vec") Link: https://github.com/llvm/llvm-project/issues/159610 Signed-off-by: WANG Rui Reviewed-by: Richard Henderson Signed-off-by: Richard Henderson Message-ID: <20250919124901.2756538-1-wangrui@loongson.cn> --- tcg/optimize.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tcg/optimize.c b/tcg/optimize.c index 3638ab9fea..f69702b26e 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -1568,9 +1568,10 @@ static bool fold_bitsel_vec(OptContext *ctx, TCGOp *= op) return fold_and(ctx, op); } if (fv =3D=3D -1 && TCG_TARGET_HAS_orc_vec) { + TCGArg ta =3D op->args[2]; op->opc =3D INDEX_op_orc_vec; op->args[2] =3D op->args[1]; - op->args[1] =3D op->args[3]; + op->args[1] =3D ta; return fold_orc(ctx, op); } } --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758740849; cv=none; d=zohomail.com; s=zohoarc; b=hrxciUoTXFEYLaBDiCUohwjg05D8vMS9rGNI5/jJlpCUvp3Kts0DDDV9WmdyyjVCbKe4d3M+eL/nhWEwZ+pxnhvyANB5kCqpYOv67MraBhNXclYmEXq6k2hrZD/5UGKIr8X2tVEqumA86x3xnCDVp2K3pWhTJ4kPtPUmSFCVkwg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758740849; 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=ZygRgWqMIPynqxmUOZPgP9Z18/5uGvzS6u9rDKliUcs=; b=S3DUyN8/JEE2wo3mDbAm99gRIx4BK5oX82npLvgOqDLpvIFcdQi2RBwkTOCnOH4Fl/9l4T0CO8t5oJpvb65a61ZIFtQgzPEqaizCICNU6UQiHWOoiW8nn5ka72J+mim8KGowgr/wZi2KFlwsC58mSB/jAuMs44DmjEnrpPDUc2c= 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 1758740849700978.220931387372; Wed, 24 Sep 2025 12:07:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UnQ-0007y9-PS; Wed, 24 Sep 2025 15:04:56 -0400 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 1v1Uly-0006wO-DE for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:29 -0400 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Uk0-0007rp-8q for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:25 -0400 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-33255011eafso165932a91.1 for ; Wed, 24 Sep 2025 12:01:21 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740478; x=1759345278; 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=ZygRgWqMIPynqxmUOZPgP9Z18/5uGvzS6u9rDKliUcs=; b=PmJgD8CV60AlD+Iu5AHuWy/NjGF1kNrFb/QI8K2ilywIhFDXDy740g8Ib6otHQySaR 3JDca05BGctri3HIpEJzqLxUFhdjeEGnCMak1TL/rFGS+ZV0XzypzZNWP0fFwdRmdVzl h604r3o4jYDXuIdT4QRsBJfq9JIAis0UrLaC6ylXZC9ZyO1CMfvI66B5ysPuvstoO3fc zi0D3aW5L59o1ZN+xZEHvJiGQZ5dCTekCNwYYrGuTyYZOZQvCSijCaVs2XJVzhdxlA2L k1065w++qBY1MxeLNhlw9R/1OB1R3ryMndsbvNIkGTKbsx4FnN9lfMnxA/w+ZiIblDg4 o4vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740479; x=1759345279; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZygRgWqMIPynqxmUOZPgP9Z18/5uGvzS6u9rDKliUcs=; b=Lw5isMS11B4GUAJAB4Jk5+/biNdTR8lDPaRdal8OL9qxyIy9JciyXLYdSwCO5/07T9 TkHE3JZQVG2U/pJnK2J1pTu5rdFXwsgY+jp6KrOR9lJaIrD5e5pd2ftetR96UdrIL4FX 6eeC4iHp0c+Pa6mhXX/QfAPiryncz4t8P3nIi4veF89SQlvu4bQ1oydCMHSySn1knjLQ c/U0QQKGby+N2OUEtoFRWSVHj0myUPJNzeqqTZnT9ELNYmCc9riMLYivP3AeearrYKCk WJYPqSr2EATLFDsWKijWbVn6/xeTIN2aUxBdhz/PcEUJlnVyqR/Lq0hln/o6qrIM1Zpv 2KHA== X-Gm-Message-State: AOJu0Yx8MIC/5SexxFTlY0EsB/TCvQ3bqMCw0N+47hL3fH5nPo6DPSHK pGPr+Dvb/dWpD3vicrpXw44kkxXAvO8ws6nXu63XpiZnEosBSLp2prDg3Lxz21no0b8m8remv4U WxhI2 X-Gm-Gg: ASbGncteVZV568z55QqyHV7asfMoH/7eFLcqBVduFiQJs3wlBpyxfdYfNLT4thdbI9R rreVoOf9BKnM7ZNViLq+Qp2ntOnkrvecN7rSPyUF1CtHC7hDBqIheLQJYadoTc4dokdmWklprTi WNiXy0IpaYTaqFxDyJ9QAWQTdvKzBT2Xd9E4POS4P9zVsWXDJTDfpdfLfCvztfE7NS8Ifldj7Yg jVaM47vGrHKh//EN/e99i1gK1IKI7MswlTfEI8P5NATmYO/bHAq8l7plt+xx0EFI/GkTTNUJWQY uTGbce+Wa07NVtScRNR+GsaKp78gGpOcCMyWHYH0AcDO7yLpyXczqv1aMlO+4f+OF9a45SuIm7I IsVsco7pmOJmhxxtsIVsVgb9jG8Us X-Google-Smtp-Source: AGHT+IGJSk6JugIZmf81T8xS6gTEYBr2nYVEv7YfpW2cCRQIWgK5qDaDY51X48hZC1d0wI8V0ybyWg== X-Received: by 2002:a17:90b:164a:b0:330:6f16:c4e0 with SMTP id 98e67ed59e1d1-3342a22ca94mr1000484a91.12.1758740478516; Wed, 24 Sep 2025 12:01:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL 15/32] include/hw/core/cpu: Introduce MMUIdxMap Date: Wed, 24 Sep 2025 12:00:48 -0700 Message-ID: <20250924190106.7089-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@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 client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758740851566116600 Use a typedef instead of uint16_t directly when describing sets of mmu indexes. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Signed-off-by: Richard Henderson --- include/exec/cputlb.h | 32 ++++++++++++++++---------------- include/hw/core/cpu.h | 6 +++--- accel/tcg/cputlb.c | 30 +++++++++++++++--------------- 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/include/exec/cputlb.h b/include/exec/cputlb.h index 03ed7e2165..9bec0e7890 100644 --- a/include/exec/cputlb.h +++ b/include/exec/cputlb.h @@ -150,7 +150,7 @@ void tlb_flush_all_cpus_synced(CPUState *src_cpu); * MMU indexes. */ void tlb_flush_page_by_mmuidx(CPUState *cpu, vaddr addr, - uint16_t idxmap); + MMUIdxMap idxmap); =20 /** * tlb_flush_page_by_mmuidx_all_cpus_synced: @@ -165,7 +165,7 @@ void tlb_flush_page_by_mmuidx(CPUState *cpu, vaddr addr, * translations using the flushed TLBs. */ void tlb_flush_page_by_mmuidx_all_cpus_synced(CPUState *cpu, vaddr addr, - uint16_t idxmap); + MMUIdxMap idxmap); =20 /** * tlb_flush_by_mmuidx: @@ -176,7 +176,7 @@ void tlb_flush_page_by_mmuidx_all_cpus_synced(CPUState = *cpu, vaddr addr, * Flush all entries from the TLB of the specified CPU, for the specified * MMU indexes. */ -void tlb_flush_by_mmuidx(CPUState *cpu, uint16_t idxmap); +void tlb_flush_by_mmuidx(CPUState *cpu, MMUIdxMap idxmap); =20 /** * tlb_flush_by_mmuidx_all_cpus_synced: @@ -189,7 +189,7 @@ void tlb_flush_by_mmuidx(CPUState *cpu, uint16_t idxmap= ); * When this function returns, no CPUs will subsequently perform * translations using the flushed TLBs. */ -void tlb_flush_by_mmuidx_all_cpus_synced(CPUState *cpu, uint16_t idxmap); +void tlb_flush_by_mmuidx_all_cpus_synced(CPUState *cpu, MMUIdxMap idxmap); =20 /** * tlb_flush_page_bits_by_mmuidx @@ -201,11 +201,11 @@ void tlb_flush_by_mmuidx_all_cpus_synced(CPUState *cp= u, uint16_t idxmap); * Similar to tlb_flush_page_mask, but with a bitmap of indexes. */ void tlb_flush_page_bits_by_mmuidx(CPUState *cpu, vaddr addr, - uint16_t idxmap, unsigned bits); + MMUIdxMap idxmap, unsigned bits); =20 /* Similarly, with broadcast and syncing. */ void tlb_flush_page_bits_by_mmuidx_all_cpus_synced(CPUState *cpu, vaddr ad= dr, - uint16_t idxmap, + MMUIdxMap idxmap, unsigned bits); =20 /** @@ -220,14 +220,14 @@ void tlb_flush_page_bits_by_mmuidx_all_cpus_synced(CP= UState *cpu, vaddr addr, * comparing only the low @bits worth of each virtual page. */ void tlb_flush_range_by_mmuidx(CPUState *cpu, vaddr addr, - vaddr len, uint16_t idxmap, + vaddr len, MMUIdxMap idxmap, unsigned bits); =20 /* Similarly, with broadcast and syncing. */ void tlb_flush_range_by_mmuidx_all_cpus_synced(CPUState *cpu, vaddr addr, vaddr len, - uint16_t idxmap, + MMUIdxMap idxmap, unsigned bits); #else static inline void tlb_flush_page(CPUState *cpu, vaddr addr) @@ -243,42 +243,42 @@ static inline void tlb_flush_all_cpus_synced(CPUState= *src_cpu) { } static inline void tlb_flush_page_by_mmuidx(CPUState *cpu, - vaddr addr, uint16_t idxmap) + vaddr addr, MMUIdxMap idxmap) { } =20 -static inline void tlb_flush_by_mmuidx(CPUState *cpu, uint16_t idxmap) +static inline void tlb_flush_by_mmuidx(CPUState *cpu, MMUIdxMap idxmap) { } static inline void tlb_flush_page_by_mmuidx_all_cpus_synced(CPUState *cpu, vaddr addr, - uint16_t idxma= p) + MMUIdxMap idxm= ap) { } static inline void tlb_flush_by_mmuidx_all_cpus_synced(CPUState *cpu, - uint16_t idxmap) + MMUIdxMap idxmap) { } static inline void tlb_flush_page_bits_by_mmuidx(CPUState *cpu, vaddr addr, - uint16_t idxmap, + MMUIdxMap idxmap, unsigned bits) { } static inline void tlb_flush_page_bits_by_mmuidx_all_cpus_synced(CPUState *cpu, vaddr addr, - uint16_t idxmap, unsigned bi= ts) + MMUIdxMap idxmap, unsigned b= its) { } static inline void tlb_flush_range_by_mmuidx(CPUState *cpu, vaddr addr, - vaddr len, uint16_t idxmap, + vaddr len, MMUIdxMap idxmap, unsigned bits) { } static inline void tlb_flush_range_by_mmuidx_all_cpus_synced(CPUState *cpu, vaddr addr, vaddr len, - uint16_t idxm= ap, + MMUIdxMap idx= map, unsigned bits) { } diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h index fb788ca110..8dd83f7457 100644 --- a/include/hw/core/cpu.h +++ b/include/hw/core/cpu.h @@ -198,10 +198,10 @@ struct CPUClass { }; =20 /* - * Fix the number of mmu modes to 16, which is also the maximum - * supported by the softmmu tlb api. + * Fix the number of mmu modes to 16. */ #define NB_MMU_MODES 16 +typedef uint16_t MMUIdxMap; =20 /* Use a fully associative victim tlb of 8 entries. */ #define CPU_VTLB_SIZE 8 @@ -306,7 +306,7 @@ typedef struct CPUTLBCommon { * mmu_idx N since the last time that mmu_idx was flushed. * Protected by tlb_c.lock. */ - uint16_t dirty; + MMUIdxMap dirty; /* * Statistics. These are not lock protected, but are read and * written atomically. This allows the monitor to print a snapshot diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index 87e14bde4f..d324f33339 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -370,8 +370,8 @@ static void flush_all_helper(CPUState *src, run_on_cpu_= func fn, =20 static void tlb_flush_by_mmuidx_async_work(CPUState *cpu, run_on_cpu_data = data) { - uint16_t asked =3D data.host_int; - uint16_t all_dirty, work, to_clean; + MMUIdxMap asked =3D data.host_int; + MMUIdxMap all_dirty, work, to_clean; int64_t now =3D get_clock_realtime(); =20 assert_cpu_is_self(cpu); @@ -408,7 +408,7 @@ static void tlb_flush_by_mmuidx_async_work(CPUState *cp= u, run_on_cpu_data data) } } =20 -void tlb_flush_by_mmuidx(CPUState *cpu, uint16_t idxmap) +void tlb_flush_by_mmuidx(CPUState *cpu, MMUIdxMap idxmap) { tlb_debug("mmu_idx: 0x%" PRIx16 "\n", idxmap); =20 @@ -422,7 +422,7 @@ void tlb_flush(CPUState *cpu) tlb_flush_by_mmuidx(cpu, ALL_MMUIDX_BITS); } =20 -void tlb_flush_by_mmuidx_all_cpus_synced(CPUState *src_cpu, uint16_t idxma= p) +void tlb_flush_by_mmuidx_all_cpus_synced(CPUState *src_cpu, MMUIdxMap idxm= ap) { const run_on_cpu_func fn =3D tlb_flush_by_mmuidx_async_work; =20 @@ -531,7 +531,7 @@ static void tlb_flush_page_locked(CPUState *cpu, int mi= dx, vaddr page) */ static void tlb_flush_page_by_mmuidx_async_0(CPUState *cpu, vaddr addr, - uint16_t idxmap) + MMUIdxMap idxmap) { int mmu_idx; =20 @@ -570,14 +570,14 @@ static void tlb_flush_page_by_mmuidx_async_1(CPUState= *cpu, { vaddr addr_and_idxmap =3D data.target_ptr; vaddr addr =3D addr_and_idxmap & TARGET_PAGE_MASK; - uint16_t idxmap =3D addr_and_idxmap & ~TARGET_PAGE_MASK; + MMUIdxMap idxmap =3D addr_and_idxmap & ~TARGET_PAGE_MASK; =20 tlb_flush_page_by_mmuidx_async_0(cpu, addr, idxmap); } =20 typedef struct { vaddr addr; - uint16_t idxmap; + MMUIdxMap idxmap; } TLBFlushPageByMMUIdxData; =20 /** @@ -599,7 +599,7 @@ static void tlb_flush_page_by_mmuidx_async_2(CPUState *= cpu, g_free(d); } =20 -void tlb_flush_page_by_mmuidx(CPUState *cpu, vaddr addr, uint16_t idxmap) +void tlb_flush_page_by_mmuidx(CPUState *cpu, vaddr addr, MMUIdxMap idxmap) { tlb_debug("addr: %016" VADDR_PRIx " mmu_idx:%" PRIx16 "\n", addr, idxm= ap); =20 @@ -618,7 +618,7 @@ void tlb_flush_page(CPUState *cpu, vaddr addr) =20 void tlb_flush_page_by_mmuidx_all_cpus_synced(CPUState *src_cpu, vaddr addr, - uint16_t idxmap) + MMUIdxMap idxmap) { tlb_debug("addr: %016" VADDR_PRIx " mmu_idx:%"PRIx16"\n", addr, idxmap= ); =20 @@ -715,8 +715,8 @@ static void tlb_flush_range_locked(CPUState *cpu, int m= idx, typedef struct { vaddr addr; vaddr len; - uint16_t idxmap; - uint16_t bits; + MMUIdxMap idxmap; + unsigned bits; } TLBFlushRangeData; =20 static void tlb_flush_range_by_mmuidx_async_0(CPUState *cpu, @@ -766,7 +766,7 @@ static void tlb_flush_range_by_mmuidx_async_1(CPUState = *cpu, } =20 void tlb_flush_range_by_mmuidx(CPUState *cpu, vaddr addr, - vaddr len, uint16_t idxmap, + vaddr len, MMUIdxMap idxmap, unsigned bits) { TLBFlushRangeData d; @@ -797,7 +797,7 @@ void tlb_flush_range_by_mmuidx(CPUState *cpu, vaddr add= r, } =20 void tlb_flush_page_bits_by_mmuidx(CPUState *cpu, vaddr addr, - uint16_t idxmap, unsigned bits) + MMUIdxMap idxmap, unsigned bits) { tlb_flush_range_by_mmuidx(cpu, addr, TARGET_PAGE_SIZE, idxmap, bits); } @@ -805,7 +805,7 @@ void tlb_flush_page_bits_by_mmuidx(CPUState *cpu, vaddr= addr, void tlb_flush_range_by_mmuidx_all_cpus_synced(CPUState *src_cpu, vaddr addr, vaddr len, - uint16_t idxmap, + MMUIdxMap idxmap, unsigned bits) { TLBFlushRangeData d, *p; @@ -847,7 +847,7 @@ void tlb_flush_range_by_mmuidx_all_cpus_synced(CPUState= *src_cpu, =20 void tlb_flush_page_bits_by_mmuidx_all_cpus_synced(CPUState *src_cpu, vaddr addr, - uint16_t idxmap, + MMUIdxMap idxmap, unsigned bits) { tlb_flush_range_by_mmuidx_all_cpus_synced(src_cpu, addr, TARGET_PAGE_S= IZE, --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758740715; cv=none; d=zohomail.com; s=zohoarc; b=aiPCauPIr7sBDvwiDRNLot8148llKt5cuxv+GtSSpsw1zKkwWTAA3mgrd3gIi1tnmhrnoXBjMDaMbx7D24Y2BYxzSBXD5WKoIdrYJzMZttPUepLMlMCj8aA8eafbDJBdRSh29D5/ad55zxCT4IMANpOc7UOQcNchmFBhCBeU88s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758740715; 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=cdg7wNUUpw9jfLHUtwMuanp6SWiKBj06yvk0f2EBI74=; b=jzpR/20QgoIbDvUHd+n4w6A0crE1v+bNeLeq+Rotcb/qmCctPM9Ll3y9frx6VqS/guFcSsBEPj6VMnQZ/B3HJr1HTIqJWIhBXCD6a0j98qrp8HCGJtHWD/1KOLF8Yuc85XIoyGHBcHHOJ5IC9MjVw5ORxBNhH2KpGNM0KLXPsjg= 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 1758740715661320.67038958273054; Wed, 24 Sep 2025 12:05:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UmH-00076g-Le; Wed, 24 Sep 2025 15:03:45 -0400 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 1v1UkL-0006Iu-UZ for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:01:51 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Uk8-0007sN-9D for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:01:41 -0400 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-b551350adfaso121698a12.3 for ; Wed, 24 Sep 2025 12:01:23 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740479; x=1759345279; 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=cdg7wNUUpw9jfLHUtwMuanp6SWiKBj06yvk0f2EBI74=; b=clcxOAFDSnfY8UysJBbUKwJIvFOjLdZAvF8KNjAwPbNiHGBl1CblIDtIHrcHZxDwLS wFKh4BxfIK6b7QP/Rhcwt+/lcpwsqYeOicxQHbgQ+1Y8BHQau7VP/KdM8hPHhbRDHaA5 8Q1m0ZoMEr3QRbtF8ftKzAtaZmqX4YSlsE6wBIH44ZTbPAWeCxKY0gaMHFxz2jXTSDic 7+X6uflsqlNpoEvQT/TRBcaQISu5laLoQjSv0Xky1lRutAsitYhZp7yQUFI5PwgfuWSs /J6xWPzsr0Xa03YoSY6I1snvrEkkfh/5r2Iuymjvcw0Y3OdWx7TV2alvTsjvvXtg5BSV 0kgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740479; x=1759345279; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cdg7wNUUpw9jfLHUtwMuanp6SWiKBj06yvk0f2EBI74=; b=krCpgGXDSBp2M8mZNyrao+rhnBL4NFdrBIergQxsZzvMJfVHKVzMlA4K9W/GFI1PJP 1C87r1rP1+KsFtIt5UJ3qdPaFKLpBKGuIjWAS83a2NWb4EDbNDG0A8guArFrZVCnGoPk f8t/8n7+hk2MiG1xx6nF+sODyKTYe6s+bbOsxQZ0JCR8rteYeJwyUNjQ0Ok4TcvxOWBQ uaauKXQ7+4mogjEFzPMOlqdoo0a5cY9U4lKCz+k75DZnose8hMzZeioSSHzk1Ww6CgFd oDC72itonEOQgLUKNcL7sZimdVgVywuy1gtIgh+RxUCbpmKSNpRfCG99rv6XytDbpxp/ myAg== X-Gm-Message-State: AOJu0Yw4gYYguVF36Cutqz2gvhju37oicLr8KQFK3aw5Z+3sCMlO8BHo C7uPEDuah+6PPUoAsoyK9QEMJ9C8YcN8PBiO66NuU5LVGcneti2pKorjompe7lrQmZQ/Hfio+KW 4Q29/ X-Gm-Gg: ASbGnctpHe4yE+y5Lu/TjTLXrrnmofY2EDGeNf79mxVng6veeZUNfzIUUxwPVV1Y0t2 U5nTDLrsG5JunhzDHvHYxrsCbaAtX8dSo7yfq98DXcGIxid6VhrWtkRYbK7voVyz1acrNYD6Kp+ VLSCuPCGL8DyocasXMOIu8x85pJ+1wsZ6wcYqy8uJAWXP6qzr2STX2tqsIPqxE+oO3xdyBUEaPX Wnx8M1rjbH8qJZtNd+wjGUthkXbdT8K4U7K5iA6vVpoTC7wg0kHxkSTZW+P1XKhb1ozSOavCrWY p5Ep6Ge1jslhiUbT1zl5D/isCxlf0Zss/LmhnwfWhYn01/y42uaLh+XAFHo5tggFegOH6pBY+e1 TOJ0yBirn7eyDxYAdaEd0pv241CmClGNTLcqzHWk= X-Google-Smtp-Source: AGHT+IGPJOBKXHhdSC6F46KhxNMS3wtFITmsfilIWgPRQweX/n0iXUP6dFuHzyy9NzzaMN8LLC8FQg== X-Received: by 2002:a17:903:228e:b0:275:b1cf:6ddc with SMTP id d9443c01a7336-27ed49b86c6mr9810495ad.5.1758740479457; Wed, 24 Sep 2025 12:01:19 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL 16/32] include/hw/core/cpu: Introduce cpu_tlb_fast Date: Wed, 24 Sep 2025 12:00:49 -0700 Message-ID: <20250924190106.7089-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@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 client-ip=2607:f8b0:4864:20::534; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x534.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758740716863116600 Encapsulate access to cpu->neg.tlb.f[] in a function. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Signed-off-by: Richard Henderson --- include/hw/core/cpu.h | 7 +++++++ accel/tcg/cputlb.c | 16 ++++++++-------- tcg/aarch64/tcg-target.c.inc | 2 +- tcg/arm/tcg-target.c.inc | 2 +- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h index 8dd83f7457..22a78c9ee1 100644 --- a/include/hw/core/cpu.h +++ b/include/hw/core/cpu.h @@ -602,6 +602,13 @@ static inline CPUArchState *cpu_env(CPUState *cpu) return (CPUArchState *)(cpu + 1); } =20 +#ifdef CONFIG_TCG +static inline CPUTLBDescFast *cpu_tlb_fast(CPUState *cpu, int mmu_idx) +{ + return &cpu->neg.tlb.f[mmu_idx]; +} +#endif + typedef QTAILQ_HEAD(CPUTailQ, CPUState) CPUTailQ; extern CPUTailQ cpus_queue; =20 diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c index d324f33339..2a6aa01c57 100644 --- a/accel/tcg/cputlb.c +++ b/accel/tcg/cputlb.c @@ -129,7 +129,7 @@ static inline uint64_t tlb_addr_write(const CPUTLBEntry= *entry) static inline uintptr_t tlb_index(CPUState *cpu, uintptr_t mmu_idx, vaddr addr) { - uintptr_t size_mask =3D cpu->neg.tlb.f[mmu_idx].mask >> CPU_TLB_ENTRY_= BITS; + uintptr_t size_mask =3D cpu_tlb_fast(cpu, mmu_idx)->mask >> CPU_TLB_EN= TRY_BITS; =20 return (addr >> TARGET_PAGE_BITS) & size_mask; } @@ -138,7 +138,7 @@ static inline uintptr_t tlb_index(CPUState *cpu, uintpt= r_t mmu_idx, static inline CPUTLBEntry *tlb_entry(CPUState *cpu, uintptr_t mmu_idx, vaddr addr) { - return &cpu->neg.tlb.f[mmu_idx].table[tlb_index(cpu, mmu_idx, addr)]; + return &cpu_tlb_fast(cpu, mmu_idx)->table[tlb_index(cpu, mmu_idx, addr= )]; } =20 static void tlb_window_reset(CPUTLBDesc *desc, int64_t ns, @@ -292,7 +292,7 @@ static void tlb_flush_one_mmuidx_locked(CPUState *cpu, = int mmu_idx, int64_t now) { CPUTLBDesc *desc =3D &cpu->neg.tlb.d[mmu_idx]; - CPUTLBDescFast *fast =3D &cpu->neg.tlb.f[mmu_idx]; + CPUTLBDescFast *fast =3D cpu_tlb_fast(cpu, mmu_idx); =20 tlb_mmu_resize_locked(desc, fast, now); tlb_mmu_flush_locked(desc, fast); @@ -331,7 +331,7 @@ void tlb_init(CPUState *cpu) cpu->neg.tlb.c.dirty =3D 0; =20 for (i =3D 0; i < NB_MMU_MODES; i++) { - tlb_mmu_init(&cpu->neg.tlb.d[i], &cpu->neg.tlb.f[i], now); + tlb_mmu_init(&cpu->neg.tlb.d[i], cpu_tlb_fast(cpu, i), now); } } =20 @@ -342,7 +342,7 @@ void tlb_destroy(CPUState *cpu) qemu_spin_destroy(&cpu->neg.tlb.c.lock); for (i =3D 0; i < NB_MMU_MODES; i++) { CPUTLBDesc *desc =3D &cpu->neg.tlb.d[i]; - CPUTLBDescFast *fast =3D &cpu->neg.tlb.f[i]; + CPUTLBDescFast *fast =3D cpu_tlb_fast(cpu, i); =20 g_free(fast->table); g_free(desc->fulltlb); @@ -667,7 +667,7 @@ static void tlb_flush_range_locked(CPUState *cpu, int m= idx, unsigned bits) { CPUTLBDesc *d =3D &cpu->neg.tlb.d[midx]; - CPUTLBDescFast *f =3D &cpu->neg.tlb.f[midx]; + CPUTLBDescFast *f =3D cpu_tlb_fast(cpu, midx); vaddr mask =3D MAKE_64BIT_MASK(0, bits); =20 /* @@ -923,7 +923,7 @@ void tlb_reset_dirty(CPUState *cpu, uintptr_t start, ui= ntptr_t length) qemu_spin_lock(&cpu->neg.tlb.c.lock); for (mmu_idx =3D 0; mmu_idx < NB_MMU_MODES; mmu_idx++) { CPUTLBDesc *desc =3D &cpu->neg.tlb.d[mmu_idx]; - CPUTLBDescFast *fast =3D &cpu->neg.tlb.f[mmu_idx]; + CPUTLBDescFast *fast =3D cpu_tlb_fast(cpu, mmu_idx); unsigned int n =3D tlb_n_entries(fast); unsigned int i; =20 @@ -1316,7 +1316,7 @@ static bool victim_tlb_hit(CPUState *cpu, size_t mmu_= idx, size_t index, =20 if (cmp =3D=3D page) { /* Found entry in victim tlb, swap tlb and iotlb. */ - CPUTLBEntry tmptlb, *tlb =3D &cpu->neg.tlb.f[mmu_idx].table[in= dex]; + CPUTLBEntry tmptlb, *tlb =3D &cpu_tlb_fast(cpu, mmu_idx)->tabl= e[index]; =20 qemu_spin_lock(&cpu->neg.tlb.c.lock); copy_tlb_helper_locked(&tmptlb, tlb); diff --git a/tcg/aarch64/tcg-target.c.inc b/tcg/aarch64/tcg-target.c.inc index 3b088b7bd9..caf79c742d 100644 --- a/tcg/aarch64/tcg-target.c.inc +++ b/tcg/aarch64/tcg-target.c.inc @@ -1668,7 +1668,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext= *s, HostAddress *h, ldst->oi =3D oi; ldst->addr_reg =3D addr_reg; =20 - /* Load cpu->neg.tlb.f[mmu_idx].{mask,table} into {tmp0,tmp1}. */ + /* Load CPUTLBDescFast.{mask,table} into {tmp0,tmp1}. */ QEMU_BUILD_BUG_ON(offsetof(CPUTLBDescFast, mask) !=3D 0); QEMU_BUILD_BUG_ON(offsetof(CPUTLBDescFast, table) !=3D 8); tcg_out_insn(s, 3314, LDP, TCG_REG_TMP0, TCG_REG_TMP1, TCG_AREG0, diff --git a/tcg/arm/tcg-target.c.inc b/tcg/arm/tcg-target.c.inc index 338c57b061..87ca66bb02 100644 --- a/tcg/arm/tcg-target.c.inc +++ b/tcg/arm/tcg-target.c.inc @@ -1421,7 +1421,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext= *s, HostAddress *h, ldst->oi =3D oi; ldst->addr_reg =3D addr; =20 - /* Load cpu->neg.tlb.f[mmu_idx].{mask,table} into {r0,r1}. */ + /* Load CPUTLBDescFast.{mask,table} into {r0,r1}. */ QEMU_BUILD_BUG_ON(offsetof(CPUTLBDescFast, mask) !=3D 0); QEMU_BUILD_BUG_ON(offsetof(CPUTLBDescFast, table) !=3D 4); tcg_out_ldrd_8(s, COND_AL, TCG_REG_R0, TCG_AREG0, fast_off); --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741064; cv=none; d=zohomail.com; s=zohoarc; b=k7kY5D684W8TQPB3l3KxYu1AxSlsOAC+V1LAEFTde4iNjW7p+em25odfEJU7+M+v3coNeUXLQ8ygQdXOUPQN0dXNF4TanAhvkST826bp3Tc3w2FIN+Lv5d2Wn8YxkP3PnqGMArJA7jh356cxYsTnCfpeaWyA92aaazAIbLzi9kc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741064; 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=HJiaoiqB2SYQYYaP+V4AKhL/433rJSvOrhZgOKxZ4EQ=; b=D2kgG+3CPzY7ixzLLOoi6YXYPEjgLz5Y/l5BMsFyb1qIBhnFQhuoYRxE9RP88qetigVFNNLJL8mzMqAycOBA2Ugj4KdHUJng9BftA/FQ9bcHwqPZBdTwpaveFa4KdXlrpGVYgOhR2u81aHuEpCyyBWuOlrlcIt+8ZoUTerYsRrw= 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 1758741064465994.9938919252479; Wed, 24 Sep 2025 12:11:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UqF-00029K-9s; Wed, 24 Sep 2025 15:07:52 -0400 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 1v1UmC-00070X-Ki for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:42 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1UkA-0007sg-KR for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:36 -0400 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-32eb76b9039so184112a91.1 for ; Wed, 24 Sep 2025 12:01:22 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740480; x=1759345280; 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=HJiaoiqB2SYQYYaP+V4AKhL/433rJSvOrhZgOKxZ4EQ=; b=bANoZF1Z8ktlPzVNcA7mUPUOPzAIE94D6J/eRFbG+qVHXPJ+tDzlRFXiEpUK6lVdnW mthc/I2y242OO3HY79xVfWAcMIaGJHjahdcZy+tQgKPds0+s+hNsv66KNkZTpru5MrGU z+Z+dbeBdM6hZ32bk8ctNuUbRbxsaFKc7yJVR3VI6ANRP4snTQfcv+TEc++txneA6wyg lQhBRcHtgOrcPKLF9HCFdBxKxymIKmgdh63HLXZ7jk5GkRMxkNbjefD7Pxgp4qLX6b53 oXR792O8Wte497K3ALct5AeyGQOtr/DLjp9h3Ft3llL9YP10oHbNjP7sdleBCFtrNFUC Zbnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740480; x=1759345280; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HJiaoiqB2SYQYYaP+V4AKhL/433rJSvOrhZgOKxZ4EQ=; b=udeeM25jV55A+rCWXdrF7pf9kdgZzjJZ9FyGQpogjEUMaUhgGPLmHzUqVF6JghtHlp 1nmxYqNsdMJb0SwNM7y/TP9KmkhpTZ4euBIeHpNj7qf4ix1oRyV2izcVxMxKbg5u9zZm dqE23meN0C+wbUsFuY+8VuyrZSHpIV+S2dVFisKv/D6cRv6LB3+/ZAPty4Fmj8joPqcm Mlj1wBOFrhyui4CdnScAX4mF2P14ZqDc32w1J4vATr9E0mHehZ+Ebz7RxR44tsOJA/zl 9Am/KExxGB3DCTyzKBHjNNGvTVAP3yq6TVr++IgCy0QbjcZrCCtjsPjmncHXB9Lvagxv sXtQ== X-Gm-Message-State: AOJu0YzueOOcUGSE1GNrd0NG4yXAGvuwn6xA6uvx3P73hbEKLg+ZrjE+ YH/gGQoNThPwdWnbp+9xJbPVpa8uao2XA4/BFh8G5s1pHaHT521kID8pXliP5EzA15CLbfv3cHL RqFcX X-Gm-Gg: ASbGncvsjrGmFuUQCDi+rpF+qGrcUYAldxYTXlLLt+uWXbXRWYL/4cG8W8IHGWGxrlj xSt3GJum0D18ZRqlf4tvp65+YVWSs7hHysqL39PxvorCDcG0QD3LnRpXP/0BjjqdXExP9nEXSYS F3UZkrrXlQ86kVYzBls+L1IycieBNTN+VoYLXPFpBlF38JPyyGslfKI9Qno0JflF5EdlEp8cxcc 1r+mg86RCKrSA838WEGk8UbKXB9y7tOH0tfzxpSmEeM2E0ift5T5maIolrTEArlsVC+JNoNREBV LR6P58aAeP66c3u2hvFbGBsKiYPGxG7FmsJGbeRkiCNUHjF3bft22r9ku0GJy8WzYdJU7feGKOm vCnt2ctzSpncgDkr82o7Y3IBZy2J2 X-Google-Smtp-Source: AGHT+IGOtfGLm1AAQEYSWx2W3wEU/zbxLQIBDr16Vp2u1hDDlJMG/ThWuOBtHSZwv+HCqOTNz7/Itg== X-Received: by 2002:a17:90b:3911:b0:330:6d5e:f174 with SMTP id 98e67ed59e1d1-3342a2b1263mr782271a91.20.1758740480141; Wed, 24 Sep 2025 12:01:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL 17/32] include/hw/core/cpu: Invert the indexing into CPUTLBDescFast Date: Wed, 24 Sep 2025 12:00:50 -0700 Message-ID: <20250924190106.7089-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@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 client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741066555116600 This array is within CPUNegativeOffsetState, which means the last element of the array has an offset from env with the smallest magnitude. This can be encoded into fewer bits when generating TCG fast path memory references. When we changed the NB_MMU_MODES to be a global constant, rather than a per-target value, we pessimized the code generated for targets which use only a few mmu indexes. By inverting the array index, we counteract that. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Signed-off-by: Richard Henderson --- include/hw/core/cpu.h | 11 ++++++++++- tcg/tcg.c | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h index 22a78c9ee1..c9f40c2539 100644 --- a/include/hw/core/cpu.h +++ b/include/hw/core/cpu.h @@ -603,9 +603,18 @@ static inline CPUArchState *cpu_env(CPUState *cpu) } =20 #ifdef CONFIG_TCG +/* + * Invert the index order of the CPUTLBDescFast array so that lower + * mmu_idx have offsets from env with smaller magnitude. + */ +static inline int mmuidx_to_fast_index(int mmu_idx) +{ + return NB_MMU_MODES - 1 - mmu_idx; +} + static inline CPUTLBDescFast *cpu_tlb_fast(CPUState *cpu, int mmu_idx) { - return &cpu->neg.tlb.f[mmu_idx]; + return &cpu->neg.tlb.f[mmuidx_to_fast_index(mmu_idx)]; } #endif =20 diff --git a/tcg/tcg.c b/tcg/tcg.c index afac55a203..294762c283 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -425,7 +425,8 @@ static uintptr_t G_GNUC_UNUSED get_jmp_target_addr(TCGC= ontext *s, int which) static int __attribute__((unused)) tlb_mask_table_ofs(TCGContext *s, int which) { - return (offsetof(CPUNegativeOffsetState, tlb.f[which]) - + int fi =3D mmuidx_to_fast_index(which); + return (offsetof(CPUNegativeOffsetState, tlb.f[fi]) - sizeof(CPUNegativeOffsetState)); } =20 --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741344; cv=none; d=zohomail.com; s=zohoarc; b=da9YhnpLGoKHzPP0IvlsH7l+TQYzVp02ob8H11yAhZTas26FiI0WJeB4KM+jXodCVp5mWrhjcNpWMSn7g/t01ShZVaDquDI/e6d7zfuSA+wPjossAy3REfF/IaUv+/t5Kgmj9DZ16DvJVefFytIpSTwsMtK4Tl5hwXwBysPfjDE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741344; h=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=UkNyZZYFhHeil9ygYrAE1UXkAwT1+GtqIOD2Xj8zAVs=; b=BwhImajf3mFG6tYtPMkS92UZLvBBMyORkoAeAbNrJfHN7flVuaH9fU9pa+ZIpYythbqfOH5QB0JpAT3Ts6QMw+7WX2RaLiJy2Mg1RITYzvIPzKQ95vF9yoTWGzxEUvJH2hZdqde9REHBj9BU67P/0O4XuyXPeQ/N3B0MQtqrWUI= 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 1758741344486867.6105843831514; Wed, 24 Sep 2025 12:15:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UpQ-0001Ek-Ln; Wed, 24 Sep 2025 15:07:07 -0400 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 1v1Um5-0006zK-AV for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:39 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Uk3-0007t3-GT for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:30 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-323266cdf64so179735a91.0 for ; Wed, 24 Sep 2025 12:01:23 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740481; x=1759345281; 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=UkNyZZYFhHeil9ygYrAE1UXkAwT1+GtqIOD2Xj8zAVs=; b=xfnaMd3GCxto7S+RXW5e8h/hiVZboKUHj1LOSvPxBih0xNPBOEVY7B1TdZ/4MCUZf4 GHRLrrbV+QoABilPxVmRLuOX6L8IIVgAOWGgQSnUOC64mhUzSNKEwomKA1iP5PK4T9dc T6cTUYxN6TKGKRee5YJjrxbg3Y0py982RzbVfS1HDcBeIJrNAWRELMaasRnFdVt58QB8 npJTgKqeNSUq2KvQ/Honpqi+YTFp6nju1+lY+4bwh0up4e6haRKnycKOi8QN6Te/v9rs ZXX+He0uDO0Ro6lVbDMlc+HUwXh8PP1jIDonhyy+mpmgyV4Aw3dL5bLV3buZ1dJAjZdU u1fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740481; x=1759345281; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UkNyZZYFhHeil9ygYrAE1UXkAwT1+GtqIOD2Xj8zAVs=; b=sbrHiNa0T4L7mB1th9wFTGI2JhFjNGvr6I1F8Rs3fwqvmZG8T+N0CATmcs6mN3mCw0 RkDaMsaY2Wh8a25M44MfAkapsmp6/tMHfvTcf+W7OYFr3IeitLiHb/yOrfzR7p184GqF Mc1r8GntnIbMsJzpnXjmW6c1knNkAYOM30aRdJqjx02kUUCektdUb0G9x05EKHGEenKl jncF2Y9v6nmh1axlcMtNxG87GHwqG5rQlqomX7pQDvMA9krYFX+OLVK5EHQUXBRL+T6w qaUvKsHkbccnHfxpXerlN1VIT4p0vOQ+nP/DR0HEWoKiAV3wIcvVMa/O75Bjmi8MsdE2 Wzzg== X-Gm-Message-State: AOJu0Yx2DcNi+4Z3ZcF8lWxPpvdI5Di5N87OchxJPH+BLw3kKm+0ZJvh 27hH7V5ox5s52enpKKX7zzbpF+CTMBdlJldiP3rwrIBcwO2WFS7joatuwVSWZxpJgzcdvHiuEMn gs+/j X-Gm-Gg: ASbGncuz1gGDEDNfimoEH9mX0p4mFuFL9u22BdPqfW+d1781y0qqGfIqev0o/uE4qCR vOlExwkCv8kaqjUjLCLJmg8hpbPOSJ+Iwj5DBwLOk6luU4jA4RagSiwTLxteJKcOB4oGqWkRE0d aQcnvWF9LOI2xsRLpJ9lfoMQdFHY1Y6hDo0iddSe7sK0iadkW8DxRoljv/MqvwEwfSD2242rxAL Lu1HyLLtDdG2lSVZ60l5E6ZvUHejGxwCffWEn13r4vbTRQ7aXabtBM97L7JmAyaiVlTpe4jpnUA CRpXp6B/5KrLk280wwDFMjDCCN4dkOru+UtaiuvkmacjvKjuxm1XcpzqS1qYxic9wSt5WQhcO7U Gxblsm6fEsFl3byYFrMo9TJ9HGOCb X-Google-Smtp-Source: AGHT+IEwTKwIF0DYcR58coJaWifqQY7QeFWtGS1L5IVqv4V/HjE0YH+dMYvEWsZ3CyBC6HhnEHKu8w== X-Received: by 2002:a17:90b:17ca:b0:32e:b36b:3711 with SMTP id 98e67ed59e1d1-3342a30c997mr674793a91.28.1758740480926; Wed, 24 Sep 2025 12:01:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Pierrick Bouvier Subject: [PULL 18/32] target/hppa: Adjust mmu indexes to begin with 0 Date: Wed, 24 Sep 2025 12:00:51 -0700 Message-ID: <20250924190106.7089-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741346329116600 Content-Type: text/plain; charset="utf-8" This is a logical reversion of 2ad04500543, though there have been additions to the set of mmu indexes since then. The impetus to that original patch, "9-15 will use shorter assembler instructions when run on a x86-64 host" is now handled generically. Reviewed-by: Pierrick Bouvier Signed-off-by: Richard Henderson --- target/hppa/cpu.h | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h index 11d59d11ca..672ab3750c 100644 --- a/target/hppa/cpu.h +++ b/target/hppa/cpu.h @@ -29,21 +29,21 @@ #include "qemu/interval-tree.h" #include "hw/registerfields.h" =20 -#define MMU_ABS_W_IDX 6 -#define MMU_ABS_IDX 7 -#define MMU_KERNEL_IDX 8 -#define MMU_KERNEL_P_IDX 9 -#define MMU_PL1_IDX 10 -#define MMU_PL1_P_IDX 11 -#define MMU_PL2_IDX 12 -#define MMU_PL2_P_IDX 13 -#define MMU_USER_IDX 14 -#define MMU_USER_P_IDX 15 +#define MMU_KERNEL_IDX 0 +#define MMU_KERNEL_P_IDX 1 +#define MMU_PL1_IDX 2 +#define MMU_PL1_P_IDX 3 +#define MMU_PL2_IDX 4 +#define MMU_PL2_P_IDX 5 +#define MMU_USER_IDX 6 +#define MMU_USER_P_IDX 7 +#define MMU_ABS_IDX 8 +#define MMU_ABS_W_IDX 9 =20 -#define MMU_IDX_MMU_DISABLED(MIDX) ((MIDX) < MMU_KERNEL_IDX) -#define MMU_IDX_TO_PRIV(MIDX) (((MIDX) - MMU_KERNEL_IDX) / 2) -#define MMU_IDX_TO_P(MIDX) (((MIDX) - MMU_KERNEL_IDX) & 1) -#define PRIV_P_TO_MMU_IDX(PRIV, P) ((PRIV) * 2 + !!(P) + MMU_KERNEL_IDX) +#define MMU_IDX_MMU_DISABLED(MIDX) ((MIDX) >=3D MMU_ABS_IDX) +#define MMU_IDX_TO_PRIV(MIDX) ((MIDX) / 2) +#define MMU_IDX_TO_P(MIDX) ((MIDX) & 1) +#define PRIV_P_TO_MMU_IDX(PRIV, P) ((PRIV) * 2 + !!(P)) =20 #define PRIV_KERNEL 0 #define PRIV_USER 3 --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758740747; cv=none; d=zohomail.com; s=zohoarc; b=EDfqcwTz1zX75CDeB+aTWiEE2ftGzi/ceyZPys8j5Z3Tr/XUqWRRJBnAzLDgY7ESbKwlqrZqeNWpCLXrZtaxEfSNVo2D9ohpF7bImbni1CzWd0KwJL+lmW/GEpTuguiCsYCATVw1KYU/wB5OdsoDgM3qHajiRbdsaEql+6/1TXk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758740747; 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=vltAWZSqvesV3ZE5+hWwklFe75NLCLedOuJYJPed2R8=; b=hvHOY9tX4bcEUZpWiqYBBSmIPj5S9BEE3rOgMNVQ9SwPvEVuXkLKBpkKWKwAVeaUJioq77klnPoP7tumZpaMmApVSuskE0VSKMg0/8k17eObvdGKZ2LoXM7FZqLTH0WBn78lNR0iXkofOV3rDD8IJJaBDpk8nJrdwuVU570oF4A= 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 1758740747156770.4736332381946; Wed, 24 Sep 2025 12:05:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UnN-0007sx-I3; Wed, 24 Sep 2025 15:04:53 -0400 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 1v1Uly-0006wF-1f for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:29 -0400 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Ujz-0007tI-Mo for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:24 -0400 Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-77f38a9de0bso214652b3a.0 for ; Wed, 24 Sep 2025 12:01:23 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740482; x=1759345282; 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=vltAWZSqvesV3ZE5+hWwklFe75NLCLedOuJYJPed2R8=; b=lfXryQ9VdT5e4OKfvlubYGLuSFZ8B+OfrKHthWqFRH3deg3HHBOCcLoLIuWwX7/pgN 8OhVM0UuCzqW0KbNXeJxg0rj4Bumq26VMCuAPievbIF8JiCsa+HbyXLyQMfJc4lz0c1V piVWLJZT1sFQW5RYbP4h3Q5etKOtX26ATItxTMZhZn0fB4rSOeHdizYDROOTop38Ss0x 5P5eCZk786NYJBfIW9gg7kEJrziX7uru9DarRB8i+izbnyvEg1GvyRBzbW2F5lwU1QKZ cZNxh/jFK/TmDiwYdSJmlSB9Os8RG18BhybOYXm1RBSck424yMliNxsiKrTBAK8Qnwhb cmCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740482; x=1759345282; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vltAWZSqvesV3ZE5+hWwklFe75NLCLedOuJYJPed2R8=; b=PiKUJw7JlMYJwKy5lEjG0jr39d9V/NOlGbckynkK7hLA04IM8IX9ZRGatTApDpt6H1 8iryvCyvNP4OPhIDlJHJYolAM5PAo7q8cBR/e6IYz5scRch8msBzM4jc9TBdI0IA1RtF NAODjpGtCNWSU2okC/zd7VCHhCqOSoXJux+uHk6FSl3cwo5pkJfFoSsECJKoQCXHN09A hdp81Zub/aBVejGhX8yyQt8DqxPTrxm6+TW0Ms/sisCwO93g/whc+U7oAezkYb82hJuX hvBb6XbBqV5Or9f7RJzyu9JjCHkZEcWZGzDexztymeYLeOF/qw3nVmVbLSfpzCZTsa41 aCCQ== X-Gm-Message-State: AOJu0YwW06yFt2EPOPAWnrL1CQHXDsgr6qtA8fiEQ5UEc/zY12jTGQs+ /l4tggClYg/SpcX4lzKQSAw+8hQHnNszPPcpRcd0MRJx/QR2OgQUNXnkGV9k9mSr0CfyxyQn5NM gY2M3 X-Gm-Gg: ASbGnctKhDGZvRctYuKX5zipqmEbGBZqpPpC+xAwrtWIsuNuMQQOe3DHnKR0bYl8K+v iu4JEQboWrTD3QMw0isqZ9o3Y1w3q0NDoM+UJPLptj/eTrcebmoOCzikv4BZCUwvpvc7zeatGO1 Uwev584BVUzH2YHDM4vAH2kMwQZl88NW03Y0FqZeAflyprUjo761ae0u7hlqgFTNgN7CpKpbKQh iFPK/4LsdPWlI7VxhztPyLvOhagbh5qdrGtdcJN2L934OSZUsASTQOQnayVIQZ01OBeGOXWE6Rj c7NIBIM0Zbux1TijGcTcytoeAxaEUuLo818QSqhewQImfhL+PbsNPO+ZP6EzRTYSp6HdE5wpyOh Ec/6eCrWpN++E78HMYNUfaT9Truon X-Google-Smtp-Source: AGHT+IEXqN87d40gqw1SuokRexTIT2BhOh/CnniN/YmapQOj3QM8LvDaxhgJVYLGTzafwAQ1uxI0ug== X-Received: by 2002:a17:90b:4d0a:b0:32e:a54a:be53 with SMTP id 98e67ed59e1d1-3342a2608eamr688704a91.16.1758740481810; Wed, 24 Sep 2025 12:01:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, =?UTF-8?q?=E6=9D=8E=E5=A8=81=E5=A8=81?= , Anton Johansson Subject: [PULL 19/32] accel/tcg: Properly unlink a TB linked to itself Date: Wed, 24 Sep 2025 12:00:52 -0700 Message-ID: <20250924190106.7089-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@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 client-ip=2607:f8b0:4864:20::430; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x430.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758740749027116600 When we remove dest from orig's links, we lose the link that we rely on later to reset links. This can lead to failure to release from spinlock with self-modifying code. Cc: qemu-stable@nongnu.org Reported-by: =E6=9D=8E=E5=A8=81=E5=A8=81 Signed-off-by: Richard Henderson Reviewed-by: Anton Johansson Tested-by: Anton Johansson --- accel/tcg/tb-maint.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/accel/tcg/tb-maint.c b/accel/tcg/tb-maint.c index 0048316f99..e6d45c9c12 100644 --- a/accel/tcg/tb-maint.c +++ b/accel/tcg/tb-maint.c @@ -836,6 +836,14 @@ static inline void tb_remove_from_jmp_list(Translation= Block *orig, int n_orig) * We first acquired the lock, and since the destination pointer match= es, * we know for sure that @orig is in the jmp list. */ + if (dest =3D=3D orig) { + /* + * In the case of a TB that links to itself, removing the entry + * from the list means that it won't be present later during + * tb_jmp_unlink -- unlink now. + */ + tb_reset_jump(orig, n_orig); + } pprev =3D &dest->jmp_list_head; TB_FOR_EACH_JMP(dest, tb, n) { if (tb =3D=3D orig && n =3D=3D n_orig) { --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758740969; cv=none; d=zohomail.com; s=zohoarc; b=nrt/PMrT33N9TiIPXjn6U9jyRyXADmGsRAuUowXlLHXQa+P6sC1PvCSx4sbEXVyI1OLpFRvOmT9SB4IWfxfeEWQeGQBMEjeY/YIVXsRF41XelO+PtbRz2ncvQlYyMlFFXS/OYWv93UFz5FnixyjbV53QOJ2AN4XPo1/NtkXk4u0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758740969; h=Content-Transfer-Encoding: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:Cc; bh=qa2sDKUiUC20wAaM6+SQbaSw+0i5rndYlOzgzIF1jc8=; b=iB3ncgf0Ocel3fOtsFyN+Ql6tSDARV422EY1mo8GCe1av5q4jJ6Io4BpLTK5v3hvM+ZhUGskBHLQ2PJMcJy/UsOa0S+C33nAf/ACZQw6E/MbMb0M57bZGHRE/PKk9KWyNNo2knVc4/0QdrSA5aXdBFrIuLjwg9/ozk7YR2q6X8c= 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 1758740969124398.94705497470125; Wed, 24 Sep 2025 12:09:29 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UqY-0002Tv-4m; Wed, 24 Sep 2025 15:08:10 -0400 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 1v1UmC-00071m-Bn for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:42 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Uk8-0007tc-Bu for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:35 -0400 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-26e68904f0eso1685065ad.0 for ; Wed, 24 Sep 2025 12:01:24 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740482; x=1759345282; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=qa2sDKUiUC20wAaM6+SQbaSw+0i5rndYlOzgzIF1jc8=; b=dOtNuENRZkrA9wWPs/jsFj35bVO5sHSOFlCytRTPlKjQ45Segep0rVPqhYeN2mmk6O KyT1FyZmKWOFhrmYWqJWlziq55Efs2eD2eQ9ABTf8znNfQUQmTAQZhRnircp29i3lrcb TaeguLjMurOiHfnvfJRvLoUsjv6Gq9e7/IcY3iAqCTfwQ4IsE5No4lXTcF9FzOtgnmN+ BDbh4BD8opXCueJhmpQUIkM9mTv1j17IIoo7394US5KaEXSxioAssIJq3nxVp4/99m4N 4PM1h/nUkgiCz7kye0U5EKcOVs0KOAIRdYUoLnOf1s8jUq2W87R+PemDx3/Mep/qqJDo LtmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740482; x=1759345282; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qa2sDKUiUC20wAaM6+SQbaSw+0i5rndYlOzgzIF1jc8=; b=ssfRgXuyJyO1vt5Ujn9CceBgyvDJgXALVsdGmWDT4sK6O8QDFtAHCqsjCSNiWK5J6M bmCebwVuY4QSGZUglMagL0ACHo3gzVcwRzGULYgNS5gq7J0nwR9sMCOKtfSpfpzCtr0h AeVi6b7ubGXNoAwV77+Z7TxcjCwcDRPLSGzcfggoDqA/vl8UJ7hEafEU6WC+7+eP2pBR opZi3Gyqk0Op2AzU96ZpaGoOLzWMjB5vuJIzG49szNY5AqcMWJJbSIDXjDWxLuFocvzl quvA8nCo3emBtrQBBTtRKfdgEvWkW0GJJk3blo7emyJJ7NdUCnJ/9VAPOMjjBI6ZO/7X Kycw== X-Gm-Message-State: AOJu0Yy0NoPCj6cXK6HiXoLujeabUbPeB9zsbTFcpkwS0YVyNvn4IJUO 2qYw3wa/nll22L0WOgWmxambtwaKjdwzkNJPUM75tvnzG+u7MelMtm8XmBvzgcIwLUSnfFTBIdn BS5Zh X-Gm-Gg: ASbGncu4M0d44jz28JJZRUrS65a840zpNhZZ5QbN5SdlbvbD2tr/uWX6dT5C5en9uAa qvdL3ozfdxVxE4Eviw/7jmMy23vH64QuZtZfodYSh5ULXzW1vvWmvwKRZWqgFxMyXH/whsdOEvb hoG4X9nOXOt7vtoh7vbfi7hRVSJlzD0M/KsbCSalHfxMr3Ht5huc+aX8rC2n3TMLevcmPpRiYiK tsNUncTeuqvEBoBKPuglCoFyhttoXmobMNFQpxD1WybnSlydA21XFKXjFHc2IzqS/tbpGuh8NAW n8Htuj1X2wj3fMSmBPf6mJmfKyj8v8lVS8Kk1nE3D47+gRGkx+svVWe2sw3MYFh8kqwxAMABn1G EMwGfldtEkcwM+xLIJ6FnGKQCcU65 X-Google-Smtp-Source: AGHT+IFWga0YPa43HWu3lzRfrpX8ucM3rGOA6o9I2YrWLYeUlTEaEyMd9qPyYK0EA1gcDg9m0/nZ0w== X-Received: by 2002:a17:902:cf42:b0:267:95ad:8cb8 with SMTP id d9443c01a7336-27ed4a96047mr7033055ad.44.1758740482418; Wed, 24 Sep 2025 12:01:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 20/32] tests/tcg/multiarch: Add tb-link test Date: Wed, 24 Sep 2025 12:00:53 -0700 Message-ID: <20250924190106.7089-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62f; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62f.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758740972069116600 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- tests/tcg/multiarch/tb-link.c | 67 +++++++++++++++++++++++++++++ tests/tcg/multiarch/Makefile.target | 2 + 2 files changed, 69 insertions(+) create mode 100644 tests/tcg/multiarch/tb-link.c diff --git a/tests/tcg/multiarch/tb-link.c b/tests/tcg/multiarch/tb-link.c new file mode 100644 index 0000000000..4e40306fa1 --- /dev/null +++ b/tests/tcg/multiarch/tb-link.c @@ -0,0 +1,67 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Verify that a single TB spin-loop is properly invalidated, + * releasing the thread from the spin-loop. + */ + +#include +#include +#include +#include +#include +#include +#include + + +#ifdef __x86_64__ +#define READY 0x000047c6 /* movb $0,0(%rdi) */ +#define LOOP 0xfceb9090 /* 1: nop*2; jmp 1b */ +#define RETURN 0x909090c3 /* ret; nop*3 */ +#define NOP 0x90909090 /* nop*4 */ +#elif defined(__aarch64__) +#define READY 0x3900001f /* strb wzr,[x0] */ +#define LOOP 0x14000000 /* b . */ +#define RETURN 0xd65f03c0 /* ret */ +#define NOP 0xd503201f /* nop */ +#elif defined(__riscv) +#define READY 0x00050023 /* sb zero, (a0) */ +#define LOOP 0x0000006f /* jal zero, #0 */ +#define RETURN 0x00008067 /* jalr zero, ra, 0 */ +#define NOP 0x00000013 /* nop */ +#endif + + +int main() +{ +#ifdef READY + int tmp; + pthread_t thread_id; + bool hold =3D true; + uint32_t *buf; + + buf =3D mmap(NULL, 3 * sizeof(uint32_t), + PROT_READ | PROT_WRITE | PROT_EXEC, + MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + assert(buf !=3D MAP_FAILED); + + buf[0] =3D READY; + buf[1] =3D LOOP; + buf[2] =3D RETURN; + + alarm(2); + + tmp =3D pthread_create(&thread_id, NULL, (void *(*)(void *))buf, &hold= ); + assert(tmp =3D=3D 0); + + while (hold) { + sched_yield(); + } + + buf[1] =3D NOP; + __builtin___clear_cache(&buf[1], &buf[2]); + + tmp =3D pthread_join(thread_id, NULL); + assert(tmp =3D=3D 0); +#endif + return 0; +} diff --git a/tests/tcg/multiarch/Makefile.target b/tests/tcg/multiarch/Make= file.target index 8dc65d7a06..f5b4d2b813 100644 --- a/tests/tcg/multiarch/Makefile.target +++ b/tests/tcg/multiarch/Makefile.target @@ -46,6 +46,8 @@ vma-pthread: LDFLAGS+=3D-pthread sigreturn-sigmask: CFLAGS+=3D-pthread sigreturn-sigmask: LDFLAGS+=3D-pthread =20 +tb-link: LDFLAGS+=3D-lpthread + # GCC versions 12/13/14/15 at least incorrectly complain about # "'SHA1Transform' reading 64 bytes from a region of size 0"; see the gcc = bug # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D106709 --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758740957; cv=none; d=zohomail.com; s=zohoarc; b=jKmSTk9HqZTOJPyB4E8swv9KC+s8txfDXc8CDih+ynJtPrRWuE8/tQrunXnovUA98NE7/tXwB1Y1FQu4TEyw6FsImlpDGTXkbnxIDXRTvqfNKTrkWUoguYUOF86vX04fQjmjDEU5Kf2OYMsFUFrgfO8SGRyfbMdpBDA+2pfm+lM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758740957; h=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=tkajwB0LkhYnqCNRGrXzrsBCk6tFlVZCMEBA7S1wExk=; b=Fzu9zUt/uAscznuGGfNaQ8pcCSzT8EjT5KN+WmHGNKpWWVYBd7eMyR/FpITgzuIHaeX2cuYE+vWcZePHUJzSRqWYCTB7x5RI2h0GshfR8eL4ic1AGkV7tXf+P1qNIh1Svp6yDT+AGhT5A1wAr+UCa93zcglXq2bDTbbNsomGHVI= 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 1758740957314551.8738001049014; Wed, 24 Sep 2025 12:09:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1Unw-0008J8-6M; Wed, 24 Sep 2025 15:05:32 -0400 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 1v1Um5-0006zJ-Ax for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:39 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Uk5-0007tv-3P for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:31 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-32ed19ce5a3so153756a91.0 for ; Wed, 24 Sep 2025 12:01:25 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740483; x=1759345283; 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=tkajwB0LkhYnqCNRGrXzrsBCk6tFlVZCMEBA7S1wExk=; b=nuksV6gUF5UJWZALSavgAY9kMIgNCjJkz0azfPVhFIaI6o11dgTA5ozkYevXDjOSv3 H9Y6kRFIE+A/lhXYEarN0UBs+Lb69pxnemFcLXguJaJy1Q4mxgyjAQ1RGjKL9GRyaupi +XuXMYDVJHHFwk5eLnBb68Kgp4zOglMRBahhID8d3iIk70zuk17X8dGMuieNGDx8rRlA 8vdJqwlVWdm86qilGZ4kXpiJDNi/os1KJEJv6Zk114utMiV6VguC6XAv4xYmA291S8xi b7whE0BdpywvMeiF+f3PFC6njFonhqipZSGzNO5Bx5Z1/DzXHhZqnoh6AkA/CC/cVjBl BkKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740483; x=1759345283; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tkajwB0LkhYnqCNRGrXzrsBCk6tFlVZCMEBA7S1wExk=; b=mhzinlesDZKub//MYnY4XchuyOUlzvZOvVFX0rjx5P7cvIpBMaZWzS3sGnBnGSfV7A 0ZQI7NIk7ADz7jPiMkTFXYccKBXVEbPjT8xNEqfZD+3kdIsO9vS+RsalHOFC5P2fLbCM exguUp1VBxcUtI1KBso78c+fYw7AeoI+E6xB/HsXh/a3kIVBbwCMJexk+21ieAI4rn90 fDnAbAIOa8mRvSZfbGk+VGaeje/V/Tu9xqccrrGVoeJU7NFr14W78EfAznqn0TTOwYVq S1TFj0QK1YFd372FZbFM3tivPsAGyjzeGCy2x5DJHl78m21LuRpnFXWsL13EjFfIx1tV l4ow== X-Gm-Message-State: AOJu0YwBQRRRSK2GyfILikHp3/5xEtSGLiLh1WS1Ycnj65jyRxFdVQ2M LkTmsFoQjzZrvIVUpTEUfN64tLmYlwHNTap+lzE+OOgGA1JmmSLiq61u6jS8Nm99LW4a64SQ2+M dPYjw X-Gm-Gg: ASbGncv2OJeAfIDPKQrRVsbR/1BvF5fiwysfIf6vh2OIoBwMLtmMtYLrTJO9/20Dh3b EbIE85NFOwRqipMf092iLHvBBohX9AAGOp78QxO8zSpsEq0BTX6aefK26WtQmctRkxyb1WxSPvz OJWVSAOjT3po6aG6HLhovpghwkILgCs3G/Ni9zImcp+1rbudu/SPlPHl+Yy+Yiev+zsL8EO9EXS XntXdvXte6YSYHu9iPKdqVA0d2o+ASvxNrOKP1KFue3wzDgbzJPgi5q5/iUcWX7/CUEOMZrk8dX CQ+UZLEf0WFG0umAWL6oY5T5wufhrqZ2eeOOcOELt9kTLBnEzGG9P3dfq3Lc2yjwh1iKmC7fEdB obLaoPqfudhEyNhdb5g5hAGZp4Zyn X-Google-Smtp-Source: AGHT+IETfMFzeQdyrBH5ZIcbhuyKYUE22ENd0nkA2ZNP3+PnTgCDd78rYOjrki1/0iALISoyIeAPsA== X-Received: by 2002:a17:90b:3a81:b0:32b:d79e:58a6 with SMTP id 98e67ed59e1d1-3342a2cadc3mr632748a91.25.1758740483184; Wed, 24 Sep 2025 12:01:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Pierrick Bouvier Subject: [PULL 21/32] gdbstub: Remove tb_flush uses Date: Wed, 24 Sep 2025 12:00:54 -0700 Message-ID: <20250924190106.7089-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758740959919116600 Content-Type: text/plain; charset="utf-8" This hasn't been needed since d828b92b8a6 ("accel/tcg: Introduce CF_BP_PAGE"). Reviewed-by: Pierrick Bouvier Signed-off-by: Richard Henderson --- gdbstub/system.c | 5 ----- gdbstub/user.c | 3 --- 2 files changed, 8 deletions(-) diff --git a/gdbstub/system.c b/gdbstub/system.c index 5be0d3c58c..5221c579d9 100644 --- a/gdbstub/system.c +++ b/gdbstub/system.c @@ -18,13 +18,11 @@ #include "gdbstub/syscalls.h" #include "gdbstub/commands.h" #include "exec/hwaddr.h" -#include "exec/tb-flush.h" #include "accel/accel-ops.h" #include "accel/accel-cpu-ops.h" #include "system/cpus.h" #include "system/runstate.h" #include "system/replay.h" -#include "system/tcg.h" #include "hw/core/cpu.h" #include "hw/cpu/cluster.h" #include "hw/boards.h" @@ -174,9 +172,6 @@ static void gdb_vm_state_change(void *opaque, bool runn= ing, RunState state) } else { trace_gdbstub_hit_break(); } - if (tcg_enabled()) { - tb_flush(cpu); - } ret =3D GDB_SIGNAL_TRAP; break; case RUN_STATE_PAUSED: diff --git a/gdbstub/user.c b/gdbstub/user.c index 67403e5a25..2e14ded3f0 100644 --- a/gdbstub/user.c +++ b/gdbstub/user.c @@ -15,7 +15,6 @@ #include "qemu/sockets.h" #include "qapi/error.h" #include "exec/hwaddr.h" -#include "exec/tb-flush.h" #include "exec/gdbstub.h" #include "gdbstub/commands.h" #include "gdbstub/syscalls.h" @@ -220,7 +219,6 @@ int gdb_handlesig(CPUState *cpu, int sig, const char *r= eason, void *siginfo, =20 /* disable single step if it was enabled */ cpu_single_step(cpu, 0); - tb_flush(cpu); =20 if (sig !=3D 0) { gdb_set_stop_cpu(cpu); @@ -539,7 +537,6 @@ static void disable_gdbstub(CPUState *thread_cpu) /* no cpu_watchpoint_remove_all for user-mode */ cpu_single_step(cpu, 0); } - tb_flush(thread_cpu); } =20 void gdbserver_fork_end(CPUState *cpu, pid_t pid) --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741263; cv=none; d=zohomail.com; s=zohoarc; b=KIzd/0rrma4tz5k4myVTb7hQ39v1iaSYIMP+DC6TUEz6Rd63oMsPKsj5MWWtxHRgBUDJ61FGb4I8mQIkpsfl8TAwravZDjteIE952BzZca1Sd4BZ0L796CBvy2BkYMAEwbGTgbVmFskCeO5MtMpJntbvImrDFcerDQSqrNYmTpg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741263; 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=ZamIB9qOqLDXfHWztLFTsDY1Wf4aDJfUVKiJDrru8TA=; b=MtvfVLi4AW0hULLHHlRFII1siQUwCr6veX0u0kI6QhBpWGxfmjzqbVzvSemhr8HF6TGCgwAz8sUwkKeTJKhmTqTq/lcnakeScGH97ybk5f6VlrGIVo+0vw4Xr7u93AOcH9tFl6xTcszMmZDTCQlmUxtn8+8biz0hX2K4aMt/aJ0= 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 1758741263631627.9378779696465; Wed, 24 Sep 2025 12:14:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UqH-00029I-Nx; Wed, 24 Sep 2025 15:07:54 -0400 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 1v1UmC-00070W-Kl for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:42 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Uk8-0007uO-9C for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:35 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-32ec291a325so157954a91.1 for ; Wed, 24 Sep 2025 12:01:26 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740485; x=1759345285; 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=ZamIB9qOqLDXfHWztLFTsDY1Wf4aDJfUVKiJDrru8TA=; b=aH/PiVsipMaHhj+o+ok+FePadXftrIY0Ih9XsrlPfQFsvQRJpStqv0WrdTZVeAhq+/ Vg9YV4DBqW2CIqRgGRZ/T6UC2MhcXPWcGxCex/qQuYr5meYzuAfEGRA2d7xYACu/xRLw ClA0ZjD/DC2ymRoAtoSol2nxwHuSiPk9Q3wlzwfCSnLZAd6ZeNskxM+22dwsUUlm/lGY z1ltw9usa5xo17/udqlRydtizqvK12wQ/wdiQyydMjshR4SFfkKYDDoFv62qmKnFmFqp dBjetFAbHSPURt4AjGdXIF/5KgJjHKhnqWgA/AQ3P2CRinJ0S4u18rz1/sFC7DEDLUnL QFCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740485; x=1759345285; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZamIB9qOqLDXfHWztLFTsDY1Wf4aDJfUVKiJDrru8TA=; b=HBBwd6ibCKk1qAmSqixznTo14h/9NedaUwTPOgaggZHMKMYNt8vpH0dw1HW+sFd7aQ jvnThvat7tdfqF2hjH/t2RaawXbRg81hLZ8QIuVrxd2mrP7tbk6E2aA2gdmtv8QL/Gbk zkvA3nFZcr8qouzJ76dkNVjNvk8emJNl/uPIPeHt0tCeQTWRAExrLIoMAL0UmHJd6j3w YQJD+URuph44hMRewFmS0f6C/lmFCCLjk8m3XsJy/n8H24uP6l3fJ0+9Tf982DUjaj9Q erLkilCvWtBN/elfxe4vAG7xsRI5BjJrfp3CLCYBvSGX2KpA6k+hdrD92erxK6+p8IFJ Cpww== X-Gm-Message-State: AOJu0YwJ/R0LnYcQxxHIB12FAHwFsn+wLhiLmBJlzyUzop5Svu7bIjw1 EmREd0RvNzF/EDLaZzzHualcKE100fEDaYIOcLEUgTzgMayvFiQtBkj6nhXMBUof8GC++FM2MXf vE5Z4 X-Gm-Gg: ASbGncscQZD2anjSkGoi8Ptlp1NiJrlHNZivmrI5xLgIGyziiFmFEN96AvYLlLiJmVi pih1xA5mZujgdzdJLabmw2h2FtOHvvMtRqag1Hz9RUS/QBq8M6aikHhvZFOjhmKFdaUTvxQYqqj dQGOJsLwewbHmEKr0KUlzCViYHS/X1BM5F7AggkGTTFSsNMFHDhCWoc+cSflJ6E1o+eERVvACNP cRaPUF0P98QRvk63hkzAbOHesILtMkH7cW6uyRXPvXk/uUd7vH/Chqhl9YKpEVgOqm9IupjAdVW KLnFiypiqjlNfJnB5ZAL0E/0/8Oq6av5lhPW1ElHFq32GBzds8fEtpLZuuio7Z0FqcesMv5XhQr r4kZgRXhfEC2pmaLIIyNuZtGPLSc0 X-Google-Smtp-Source: AGHT+IFv45f/OnNP+Iysqh/993rV03KXDoq/W52sw5GObjCaPNWjtMIXmX5qcAT4xz0gXbn7D2a18g== X-Received: by 2002:a17:90b:4d88:b0:32e:38bc:f5a9 with SMTP id 98e67ed59e1d1-3342a260f75mr720522a91.9.1758740483853; Wed, 24 Sep 2025 12:01:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 22/32] target/alpha: Simplify call_pal implementation Date: Wed, 24 Sep 2025 12:00:55 -0700 Message-ID: <20250924190106.7089-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@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 client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741265038116600 Since 288a5fe980f, we don't link translation blocks directly to palcode entry points. If we load palbr from env instead of encoding the constant, we avoid all need for tb_flush(). Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- target/alpha/helper.h | 1 - linux-user/alpha/cpu_loop.c | 5 ----- target/alpha/sys_helper.c | 6 ------ target/alpha/translate.c | 21 ++++++--------------- 4 files changed, 6 insertions(+), 27 deletions(-) diff --git a/target/alpha/helper.h b/target/alpha/helper.h index d60f208703..788d2fbf28 100644 --- a/target/alpha/helper.h +++ b/target/alpha/helper.h @@ -90,7 +90,6 @@ DEF_HELPER_FLAGS_2(ieee_input_s, TCG_CALL_NO_WG, void, en= v, i64) #if !defined (CONFIG_USER_ONLY) DEF_HELPER_FLAGS_1(tbia, TCG_CALL_NO_RWG, void, env) DEF_HELPER_FLAGS_2(tbis, TCG_CALL_NO_RWG, void, env, i64) -DEF_HELPER_FLAGS_1(tb_flush, TCG_CALL_NO_RWG, void, env) =20 DEF_HELPER_1(halt, void, i64) =20 diff --git a/linux-user/alpha/cpu_loop.c b/linux-user/alpha/cpu_loop.c index bb8346b509..f93597c400 100644 --- a/linux-user/alpha/cpu_loop.c +++ b/linux-user/alpha/cpu_loop.c @@ -94,11 +94,6 @@ void cpu_loop(CPUAlphaState *env) break; case 0x86: /* IMB */ - /* ??? We can probably elide the code using page_unprotect - that is checking for self-modifying code. Instead we - could simply call tb_flush here. Until we work out the - changes required to turn off the extra write protection, - this can be a no-op. */ break; case 0x9E: /* RDUNIQUE */ diff --git a/target/alpha/sys_helper.c b/target/alpha/sys_helper.c index 51e3254428..87e37605c1 100644 --- a/target/alpha/sys_helper.c +++ b/target/alpha/sys_helper.c @@ -20,7 +20,6 @@ #include "qemu/osdep.h" #include "cpu.h" #include "exec/cputlb.h" -#include "exec/tb-flush.h" #include "exec/helper-proto.h" #include "system/runstate.h" #include "system/system.h" @@ -38,11 +37,6 @@ void helper_tbis(CPUAlphaState *env, uint64_t p) tlb_flush_page(env_cpu(env), p); } =20 -void helper_tb_flush(CPUAlphaState *env) -{ - tb_flush(env_cpu(env)); -} - void helper_halt(uint64_t restart) { if (restart) { diff --git a/target/alpha/translate.c b/target/alpha/translate.c index cebab0318c..f11b382438 100644 --- a/target/alpha/translate.c +++ b/target/alpha/translate.c @@ -48,8 +48,6 @@ struct DisasContext { =20 #ifdef CONFIG_USER_ONLY MemOp unalign; -#else - uint64_t palbr; #endif uint32_t tbflags; int mem_idx; @@ -1155,7 +1153,6 @@ static DisasJumpType gen_call_pal(DisasContext *ctx, = int palcode) #else { TCGv tmp =3D tcg_temp_new(); - uint64_t entry; =20 gen_pc_disp(ctx, tmp, 0); if (ctx->tbflags & ENV_FLAG_PAL_MODE) { @@ -1165,12 +1162,11 @@ static DisasJumpType gen_call_pal(DisasContext *ctx= , int palcode) } tcg_gen_st_i64(tmp, tcg_env, offsetof(CPUAlphaState, exc_addr)); =20 - entry =3D ctx->palbr; - entry +=3D (palcode & 0x80 - ? 0x2000 + (palcode - 0x80) * 64 - : 0x1000 + palcode * 64); - - tcg_gen_movi_i64(cpu_pc, entry); + tcg_gen_ld_i64(cpu_pc, tcg_env, offsetof(CPUAlphaState, palbr)); + tcg_gen_addi_i64(cpu_pc, cpu_pc, + palcode & 0x80 + ? 0x2000 + (palcode - 0x80) * 64 + : 0x1000 + palcode * 64); return DISAS_PC_UPDATED; } #endif @@ -1292,11 +1288,7 @@ static DisasJumpType gen_mtpr(DisasContext *ctx, TCG= v vb, int regno) case 7: /* PALBR */ tcg_gen_st_i64(vb, tcg_env, offsetof(CPUAlphaState, palbr)); - /* Changing the PAL base register implies un-chaining all of the T= Bs - that ended with a CALL_PAL. Since the base register usually on= ly - changes during boot, flushing everything works well. */ - gen_helper_tb_flush(tcg_env); - return DISAS_PC_STALE; + break; =20 case 32 ... 39: /* Accessing the "non-shadow" general registers. */ @@ -2874,7 +2866,6 @@ static void alpha_tr_init_disas_context(DisasContextB= ase *dcbase, CPUState *cpu) ctx->ir =3D cpu_std_ir; ctx->unalign =3D (ctx->tbflags & TB_FLAG_UNALIGN ? MO_UNALN : MO_ALIGN= ); #else - ctx->palbr =3D env->palbr; ctx->ir =3D (ctx->tbflags & ENV_FLAG_PAL_MODE ? cpu_pal_ir : cpu_std_i= r); #endif =20 --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741028; cv=none; d=zohomail.com; s=zohoarc; b=Qopb7u/szgc5kXvPNcjkS8XEcP8kjO29TeyLq5cUy4LovC7ik8U5bwzAl9IitZI9Cej4XvIv60Xp3yzBPvVIBxjdGkSA2NSIYqRErscm9bsmPKDE/0VWTRUV2TiOtUdZnfn88HZJChfcywO5bWGWIeo1WdOQLMLgsrarxnYtKVI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741028; h=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=hhvyGjhjUkCNEHZh1gnQZUsirw8YiHVeIFO9VlHtSAY=; b=ThjbCjFlSMMavlaLtoNYwpyNiGTAclZzEqoyMKr8R/hxn00v37TEPIWSuCerqUlWSxh6rVQ38WwXL87JSCZhuWvm3QvGRKBw5bOTYterEeK+WhGGT/c4Ly0suPmeHJ4yqoUxGmhWvYJ1mtmoX54gLdCqNb4Fvi7Kr/s77VvWMdc= 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 1758741028515836.989801611821; Wed, 24 Sep 2025 12:10:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1Uqm-0002wC-Uu; Wed, 24 Sep 2025 15:08:26 -0400 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 1v1UmB-00070v-N1 for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:42 -0400 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1UkB-0007uR-9M for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:36 -0400 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-3304a57d842so129072a91.3 for ; Wed, 24 Sep 2025 12:01:29 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740485; x=1759345285; 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=hhvyGjhjUkCNEHZh1gnQZUsirw8YiHVeIFO9VlHtSAY=; b=ZHq/XuD3WWxnR6ABsumUMdILeKingyufwZt2140jjoph+C/s56dcf+EWujQWiW7HrT GZ0uzxJD4Q7SdJXIcoycji593KrT5jxJTnURNToRkXPyCcPhF0PzgzFFHDzrRunF+yvh KwxPMjY/lgM/RzvtflHUt4NSBYolZT8QYcabpgj10WzKDPNVzK+1V0cjxQq9RHrm4NLd dOJmWyTXLvRI6Me8lTOeXNy4wUWzIlB5ayU0fIvXsgXPmtXiogI4ioVklG0dP8vCcKTQ vK/x7Rz1YB9+senWkb56ICaFb2/yWIEEVBUNCxys2NmnspP55a4CK7t84Wru6mQD21WQ VEJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740485; x=1759345285; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hhvyGjhjUkCNEHZh1gnQZUsirw8YiHVeIFO9VlHtSAY=; b=garDq0ktxN8xvs+dWfWQngbb8PHHvBHC4qrlcsxbjiiJnMgBhnTFbJDIgMsPuDltnO zXMtuZJKxnk0hWTJWnXE67zXC5Oduz+2uOLser5pnG4LxhGJ4wlZX01FTnAW8fNoB4Wt Ln3a3sehe8Vw/yajBlwY8USTUQwmSPjqrqlM0ePdQNB2oYw721GRKn8HX563Do1wf7HJ 515Pnx6z9PqcTvm5PjiA6MlA92HDCO/cku7xIma2W3jDcRSOzwlqUbladKpdzGmmG04F TZi9kxmKctOC49US9lCmq43FUwN0lnzOJ2aWd6IRHSSoNUF0TX5yYnskb5Br8TDErJOw oGQw== X-Gm-Message-State: AOJu0YzBdXosjH/2Q+gfUgPZtOvKN8Ta5NWdFnl0gkY58VYYCVUPK6Mp 2Wm0y0q7RupIaOdxYqU+q/oypyBjWKXMgF1xrMIl7WAY1ApjO+klVn1ypJy3NRe3TRiil2Bnnmi e2Ob/ X-Gm-Gg: ASbGncsjySJA41f3fgsW9apPTK5v/UkqB/OMlk7OgGogwasD1uzs8AJuHojXnTyoci+ qy3s5Ad+l+6iTp474gxfAEHC6gvzxpIz5mAI9K1uQkLHM4hcqc4DKepKYtWz+wRFH8lj3QlAlY3 NDBADDIvA+pxMP6Vhv2YKGAPTzx5IwAQNJliT57YNokCaRDZCBweYAnH8EMaw2ALNhSg+b48fiQ sp9YaMOiRab6erWx0h89V5h0UOwc0AHFVV1/yFfMP53KNoXY/yeLyAG5savcpGn1KKOD5GJM3Z+ prC9pKnCVc18sO5CFgPnzKD6lcqkeFBc1q/1V+bA5BKFJ1yGEojXm3r20cwRieSn0/YSVPzyDI0 NVoG/Ob2hiwmqcGytCfd+ao/Yo2Iy X-Google-Smtp-Source: AGHT+IEcz36kYNF6iolo9Zk5zAr0PB+ICTYJJpytomdFKyVytRF0RvmWxyVXxWCTEjCliVIYYKzYxA== X-Received: by 2002:a17:90a:d886:b0:32f:469:954c with SMTP id 98e67ed59e1d1-3342a2f9276mr637787a91.34.1758740484847; Wed, 24 Sep 2025 12:01:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Pierrick Bouvier Subject: [PULL 23/32] target/riscv: Record misa_ext in TCGTBCPUState.cs_base Date: Wed, 24 Sep 2025 12:00:56 -0700 Message-ID: <20250924190106.7089-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741030028116600 Content-Type: text/plain; charset="utf-8" The tb_flush within write_misa was incorrect. It assumed that we could adjust the ISA of the current processor and discard all TB and all would be well. But MISA is per vcpu, so globally flushing TB does not mean that the TB matches the MISA of any given vcpu. By recording misa in the tb state, we ensure that the code generated matches the vcpu. Reviewed-by: Pierrick Bouvier Signed-off-by: Richard Henderson --- target/riscv/csr.c | 3 --- target/riscv/tcg/tcg-cpu.c | 3 ++- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 8842e07a73..3c8989f522 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -25,7 +25,6 @@ #include "pmu.h" #include "time_helper.h" #include "exec/cputlb.h" -#include "exec/tb-flush.h" #include "exec/icount.h" #include "accel/tcg/getpc.h" #include "qemu/guest-random.h" @@ -2173,8 +2172,6 @@ static RISCVException write_misa(CPURISCVState *env, = int csrno, env->mstatus &=3D ~MSTATUS_FS; } =20 - /* flush translation cache */ - tb_flush(env_cpu(env)); env->xl =3D riscv_cpu_mxl(env); return RISCV_EXCP_NONE; } diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 78fb279184..143ab079d4 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -191,7 +191,8 @@ static TCGTBCPUState riscv_get_tb_cpu_state(CPUState *c= s) =20 return (TCGTBCPUState){ .pc =3D env->xl =3D=3D MXL_RV32 ? env->pc & UINT32_MAX : env->pc, - .flags =3D flags + .flags =3D flags, + .cs_base =3D env->misa_ext, }; } =20 --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758740704; cv=none; d=zohomail.com; s=zohoarc; b=MtJxYPRxQ8DcunSglB/PsEwZsEI0UhkP2uo2QEovbhNZmNTRrGrx0xKl83tDM6xRT/5MyUo0IZ9SEtURGo8n7ik+G2/mlovlGT+GEJP3GrD9fTshAJVuv9vTHg8XxfeA7FKJi+y4UOcMC10//OixmT+vcX0VM7kzwB6UnAHM/2s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758740704; 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=ZpRgmvlnblTavvJMOahhBlpUf6JZRFziBBrDwUTk1LI=; b=Y7W0DM3+mDk15tNngiujqamGIVuxegALuQJV1At+w+t987xRf1PzkNerEVQCs958rEeygTg3c6hm14xgfg5WhazZ0zY4zH1fnNu88QVB7q43XPXVPzEBJPIM+/QuF1Jwf1zF8uPiP7SgWLRt+as8eg0nkOaNK1w9KcdS4iqKLrk= 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 1758740704182144.9720757023781; Wed, 24 Sep 2025 12:05:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UmJ-00076S-OL; Wed, 24 Sep 2025 15:03:47 -0400 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 1v1UkM-0006It-Sc for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:01:51 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Uk8-0007uh-9u for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:01:40 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-32b8919e7c7so217183a91.2 for ; Wed, 24 Sep 2025 12:01:26 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740486; x=1759345286; 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=ZpRgmvlnblTavvJMOahhBlpUf6JZRFziBBrDwUTk1LI=; b=gAqw6SAh7BX8nwj7RN23804TGUy819W5Nkke2lyFDMezHhRmD58cv7YH9WVPPuMrZY yq7jv2Mk/IP8inShJuKDR2fbdeqCVwaGheZeJ9/7Um2GSxzwuUR9IKO59MonSFqLIr8l C82BS8tvBe0J7cgKm1NT1MZpkTy9R/T29cO4XttsEPIxlStg6o7HXVo/D1NGHPhSEbEH OSE8YZi6tojGZuvB4XUQkySLU9exQlFCoGKx0xMfSBsPNL3ZoodsOzG57i+Ykjnq8roV TQlFRUGoC/LQwHEGkFSGUbgW3ynQBa7wwPb5soH1Nlxs/XLjfk9d0j2YwLxIXQ4kdP8y OY9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740486; x=1759345286; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZpRgmvlnblTavvJMOahhBlpUf6JZRFziBBrDwUTk1LI=; b=stDCm8NXSLjnUiElumkcawagK82BkK1TRNrhM2A7URRvNjTVpgAR1Bfzu58hRA1eu1 QpKf9R0dY4cIRNmyIR/Wd/iEwHPiAhzJP40ggOLakm7K9m2bdOdLzGK5sO8VRD64xDlK iwxbY7ryqj2N7CAuX079Hw37DdJ8ayMvSf32GZCakZKFzyowRwlLns2DbpzctxHvFzN5 EcD5qT+E3lKoUAMlzyAqzXFO338qSmi+M1tNloovvfYk9VLwRMAobyGxCvLFUEmsq/Cd XAhnh4EWswZ7b9aU95ia3W7T6sy9MvsOhifHF2GTAEpQ4Oslw5we6anEIxNsjtfozzq8 IY3Q== X-Gm-Message-State: AOJu0YxKPlK+vVYqU/U4lOcdXezX7q9SXT+UNkPvglYNGGID7Uc6pDLV SPR4uBa3fC3oiAc1zlVU2sWv4g6ieIHVaHbaanlVYakGLQct9eJ+1Ea9ZlHNDqmVyfcHnKkbLzl pk3XU X-Gm-Gg: ASbGncsKxq92hUbw1JwZyi0EJlCls3WZvrRQs7zuVOYhq+Ybq1PCLmXbnANaFgV4uJl Wkf6/BNGZIT7M2zBrRKeoT8N1Y7pHuu613vYg3uDSUAjya500nPfhG6Rct8H+n2xco48Y/WgTNx XSIEMOloQUuswpbyYMv0C9S8XEGUfv9hs3UxE3yKa+TfO48GIoEOZS38r2mmFNrjFUHsV7Izgcd M3fYB2K/YBJf+QUuE+CrI+9I0DBhW/faD2V5268ZkY59Mrq62KxZv88UkWX8TJka5yZu7SFnMeS lZmFeG7g4pr4OILLNhiqTdGodo1SKJZJKANs5f+nZTRzV5JWO+CblQiHh/2xYq4DyVvI3ty+2Te yPhuWPpqCVp+Zju6k9vqjWdFp0kCb X-Google-Smtp-Source: AGHT+IH8sxUckrrfyl9T1HrjKLvPasB2M/1HRh3b5ADeOx5OJzP5yMHyDkYjhjy4151sjdIubwwtdw== X-Received: by 2002:a17:90b:384d:b0:32e:64ca:e84a with SMTP id 98e67ed59e1d1-3342a2436b8mr987319a91.12.1758740485494; Wed, 24 Sep 2025 12:01:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Harsh Prateek Bora Subject: [PULL 24/32] hw/ppc/spapr: Use tb_invalidate_phys_range in h_page_init Date: Wed, 24 Sep 2025 12:00:57 -0700 Message-ID: <20250924190106.7089-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@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 client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758740706364116600 We only need invalidate tbs from a single page, not flush all translations. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Harsh Prateek Bora Signed-off-by: Richard Henderson --- hw/ppc/spapr_hcall.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c index c594d4b916..8c1e0a4817 100644 --- a/hw/ppc/spapr_hcall.c +++ b/hw/ppc/spapr_hcall.c @@ -8,7 +8,7 @@ #include "qemu/main-loop.h" #include "qemu/module.h" #include "qemu/error-report.h" -#include "exec/tb-flush.h" +#include "exec/translation-block.h" #include "exec/target_page.h" #include "helper_regs.h" #include "hw/ppc/ppc.h" @@ -301,7 +301,7 @@ static target_ulong h_page_init(PowerPCCPU *cpu, SpaprM= achineState *spapr, if (kvm_enabled()) { kvmppc_icbi_range(cpu, pdst, len); } else if (tcg_enabled()) { - tb_flush(CPU(cpu)); + tb_invalidate_phys_range(CPU(cpu), dst, dst + len - 1); } else { g_assert_not_reached(); } --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741247; cv=none; d=zohomail.com; s=zohoarc; b=V0hVUPMdrTjLOOoZw1MPRyTWEHOkB4MVIcPZEPgLkk4jnVYuReSGnkZRtyu4eQEwgZRzSdc3dv0zxaaHcChhvX2rYGItlPi7L7g/1hapl5Ra/n6+Kejp7iKjziWAvD4BbbdlLFBPF1mB1uxHOkf7Rc8MwILIkeaMy9dIuF26D1w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741247; h=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=V9QzifhX/pUAPgBGpctKmSSQO8vSWa/Oizh0/a1q/CE=; b=J78JxXwY7iHNvHT/krKvg3KPmcpLqeAafEf9XOMOGco3Fm/hSOztoRz/bvG86rXNqJVF7B26+AtWRgbvN8IM49BSanjp/i94gI0HfQlBA9HdyL19XqEbLY5ViXfDKML52dAzNK+YjLa/R79H39KOj2WG0xp5kHeL+HM17rWm27A= 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 1758741247494386.2487138118065; Wed, 24 Sep 2025 12:14:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1Upf-0001j9-DF; Wed, 24 Sep 2025 15:07:16 -0400 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 1v1UmC-000729-QK for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:42 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1UkC-0007uv-PG for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:40 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-3306eb96da1so156714a91.1 for ; Wed, 24 Sep 2025 12:01:27 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740486; x=1759345286; 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=V9QzifhX/pUAPgBGpctKmSSQO8vSWa/Oizh0/a1q/CE=; b=KjLf20wWZBXcAJyc6lEp3iiTuJc1WHVFsA8WYvan5lEk3YD7soGtP2cHkYTnVJOgrO 7Wwti6GLvTfxJWHMDjuzfzz68PgpZAgTQngKyi6LFFSrh5YbO+A9XZwSRmwxrfxZ256h lNd3u31vakHV8nIsACyGQ+fuvjl0wrNN7AEt+gLlTkS2to7ETToEa450pHO5VHG2MZ0v E/0Xtf7yKViheK84LQzUvJlgQoU19PdSQeX8cYXwa1Fn6XcMN0xF4Zbslh3CWptStqUl uJQZ60Z3N/C3XZmNIAr4tL4k8ypOx6h1NHelPSP/H3TBS1vteeyRsudMGS/EqxOyMRY/ Lvsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740486; x=1759345286; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=V9QzifhX/pUAPgBGpctKmSSQO8vSWa/Oizh0/a1q/CE=; b=cipVs/ml77TACCivquL4xI/GQr8Tq6fFVS2TrO8tHz0rd+Icszeosxas8+VScSvDCB iaZaFd1QlsuY5NvMu40MFz7J5y/PSEgXkQy3cHLlrhXUHvCftgXS111kIiAJmDYmn7f4 7bbDM1VtdsuHcrxHh9mQj68G9FI7t44SEXIkSFtGaW4kQaTFQnop83bLCsRNwx9MyatI yFsmnNASBksPncrX+IcWhvcaMg7/MBbaSSQt4/jviTX/q/s7wu09MpiGVVjmQx33CyQb FjTnNsfKnv5licAzhcTO6Lx13yVYAYT4j77AzLgREKx8jrsBwwITkvP+jI9xaQohKr9Z DodA== X-Gm-Message-State: AOJu0Yzfvid+KnSJhMRKhnckzfL82oyXfU8jJK0AxHUdH91dSWPnHPxy kwfRvthGwOQGPyNINAlibPs8Y+MysitfUmusbyDh3ONdZxvtZhuIoZF94O43WLmpRx6/hPVW1Xt FIzJ1 X-Gm-Gg: ASbGnctjYuGXzOCaO9faOPkDBBMXPVpLheRtBjeBfYgBYgjVYWObh0A3C4SaAzVMBSo ID+Udn9Bp+ga/WTn7C5EGIL9NkHlV0AxZPp4qR2l2wlfJqxwrs7DOaJ/QoyLIjAxO7mVemuU+B0 IwH/gqoQPAhYoM+UlqQsimX/AOle5Ma6AswPWnNdJIBfYXboYLwzrHXXW1Ai2qBxG7cg6XdTz2+ 2xOTV/o3c6hoXfov2uGWmOK7ZX+ri8ZcGm/sD4TRhhVDMD9cZemBmIk1jBeZHFoW1PMz5gGElFH AN+Ww74Vir89/FD11UrFXn746vq2kA2s/IkTblGguDhFdNCj8OCTTjBZxcN54PayPE1TtPEV09I ph2g782mmLnVZFIjUiSyh9fbWKLQl X-Google-Smtp-Source: AGHT+IEan9kSLI3NN/2Xjwpg0Gwr18PuJXmaRpPcmK5pGi0sPSTsQZlXw9tXm/+Luzehke1f7PdbFA== X-Received: by 2002:a17:90b:3890:b0:32e:3c57:8a9d with SMTP id 98e67ed59e1d1-3342a30ed08mr680096a91.30.1758740486251; Wed, 24 Sep 2025 12:01:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: Pierrick Bouvier Subject: [PULL 25/32] accel/tcg: Split out tb_flush__exclusive_or_serial Date: Wed, 24 Sep 2025 12:00:58 -0700 Message-ID: <20250924190106.7089-26-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741248729116600 Content-Type: text/plain; charset="utf-8" Expose a routine to be called when no cpus are running. Simplify the do_tb_flush run_on_cpu callback, because that is explicitly called with start_exclusive; there is no need for the mmap_lock as well. Reviewed-by: Pierrick Bouvier Signed-off-by: Richard Henderson --- include/exec/tb-flush.h | 15 +++++++++++++++ accel/tcg/tb-maint.c | 39 +++++++++++++++++++++++++-------------- 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/include/exec/tb-flush.h b/include/exec/tb-flush.h index 142c240d94..090ffc8818 100644 --- a/include/exec/tb-flush.h +++ b/include/exec/tb-flush.h @@ -8,6 +8,21 @@ #ifndef _TB_FLUSH_H_ #define _TB_FLUSH_H_ =20 +/** + * tb_flush__exclusive_or_serial() + * + * Used to flush all the translation blocks in the system. Mostly this is + * used to empty the code generation buffer after it is full. Sometimes it + * is used when it is simpler to flush everything than work out which + * individual translations are now invalid. + * + * Must be called from an exclusive or serial context, e.g. start_exclusiv= e, + * vm_stop, or when there is only one vcpu. Note that start_exclusive can= not + * be called from within the cpu run loop, so this cannot be called from + * within target code. + */ +void tb_flush__exclusive_or_serial(void); + /** * tb_flush() - flush all translation blocks * @cs: CPUState (must be valid, but treated as anonymous pointer) diff --git a/accel/tcg/tb-maint.c b/accel/tcg/tb-maint.c index e6d45c9c12..b4566a81d7 100644 --- a/accel/tcg/tb-maint.c +++ b/accel/tcg/tb-maint.c @@ -36,6 +36,9 @@ #include "internal-common.h" #ifdef CONFIG_USER_ONLY #include "user/page-protection.h" +#define runstate_is_running() true +#else +#include "system/runstate.h" #endif =20 =20 @@ -88,7 +91,10 @@ static IntervalTreeRoot tb_root; =20 static void tb_remove_all(void) { - assert_memory_lock(); + /* + * Only called from tb_flush__exclusive_or_serial, where we have alrea= dy + * asserted that we're in an exclusive state. + */ memset(&tb_root, 0, sizeof(tb_root)); } =20 @@ -756,17 +762,19 @@ static void tb_remove(TranslationBlock *tb) } #endif /* CONFIG_USER_ONLY */ =20 -/* flush all the translation blocks */ -static void do_tb_flush(CPUState *cpu, run_on_cpu_data tb_flush_count) +/* + * Flush all the translation blocks. + * Must be called from a context in which no cpus are running, + * e.g. start_exclusive() or vm_stop(). + */ +void tb_flush__exclusive_or_serial(void) { - bool did_flush =3D false; + CPUState *cpu; =20 - mmap_lock(); - /* If it is already been done on request of another CPU, just retry. */ - if (tb_ctx.tb_flush_count !=3D tb_flush_count.host_int) { - goto done; - } - did_flush =3D true; + assert(tcg_enabled()); + /* Note that cpu_in_serial_context checks cpu_in_exclusive_context. */ + assert(!runstate_is_running() || + (current_cpu && cpu_in_serial_context(current_cpu))); =20 CPU_FOREACH(cpu) { tcg_flush_jmp_cache(cpu); @@ -778,11 +786,14 @@ static void do_tb_flush(CPUState *cpu, run_on_cpu_dat= a tb_flush_count) tcg_region_reset_all(); /* XXX: flush processor icache at this point if cache flush is expensi= ve */ qatomic_inc(&tb_ctx.tb_flush_count); + qemu_plugin_flush_cb(); +} =20 -done: - mmap_unlock(); - if (did_flush) { - qemu_plugin_flush_cb(); +static void do_tb_flush(CPUState *cpu, run_on_cpu_data tb_flush_count) +{ + /* If it is already been done on request of another CPU, just retry. */ + if (tb_ctx.tb_flush_count =3D=3D tb_flush_count.host_int) { + tb_flush__exclusive_or_serial(); } } =20 --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741251; cv=none; d=zohomail.com; s=zohoarc; b=im0mcpIDofhlzaVTorRlK+eTIoFrrOssARBMkClKgku/laTpsAAmyz7SS2gTzhqSt1jtEWwddX2wZLWC6FpwgMR93WQl0vK2mf7ow4PaV48tauaCvJjRtCLx4oemSSvIMzOVlzVscfNo/ERG1YvxsbgcPH33PMvEi2FzEGJ+5fw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741251; 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=cyCevuOZBxjdSdzWhJH69VXeS030D/A2jQgzyM1Qqts=; b=Ca7RkFUdgBdG6dG1hD8mO3YssH7oSl428b1Eo+IAhAwsaMoc43fP/Ew2M1g7U0zWVbjmO248i2Zjf+TAI8yyYl2NM6gTx1H44/x+trhztsFz8K6sTNxHs50tygGNIjHc5aKkObrPbJSFuOrkSI2u6TJJP9Yb7suCSD9I5es6SMA= 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 1758741251445108.43764861485613; Wed, 24 Sep 2025 12:14:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UrM-0003t5-Jv; Wed, 24 Sep 2025 15:09:03 -0400 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 1v1UmF-00071n-EP for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:45 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Uk8-0007v2-71 for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:35 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-323266d6f57so200393a91.0 for ; Wed, 24 Sep 2025 12:01:28 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740487; x=1759345287; 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=cyCevuOZBxjdSdzWhJH69VXeS030D/A2jQgzyM1Qqts=; b=UYiTbnrDNRSdIfhRWsbr4CkQbJenqgFs/coVDeWMVue69tNIDGNZPwTFg0GErEoFUd 3/XI1qv8H8OYjaVVbcTGGo3VLo0x1aJMla07SZEWXJaT32ZdNmxtGrsXvVyVgaz2JvyT 58yigGcmbydHcpNTlguIAzdpqg+zGr+NgQByX6GxUNXqHYRvkogW8a3lizkL+gsiombw ff8QgMu8Z1u9vlSoH2drCkqIYpFBTXeqPzSwqTZiNXQl5rQOJIbYCzORkShj+40GS58g WmJQVp7j8zTKVEHoLCnrR+G5AH4+W6DONNwcVmWTXROmKhDRW4ipm+vF/qaFRdHuASIS kM0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740487; x=1759345287; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cyCevuOZBxjdSdzWhJH69VXeS030D/A2jQgzyM1Qqts=; b=wM406omQhDy0zSGjuuX3X8Xc846gy5ScR2yweDbfAGhQFyzuEm2470I4x0ufs9dyVM G3oOG1/Zm9DDanZCjyZruUcUmyNjg8Fl7dM7bL9e2lqK9A+c8jFh6Kk3lQOskC4u/Ph6 gzQvx4+IsiekWevuaYZg/Ltt8d/aw1Nk4d0WnW+w6jLvlu2B52F/XfPy/Z2sywBi1PFR 19C8qKrnWXJEvx3lmcp0qtvD2i7kZuwSsLpAzWZIEttPZPcPEh9GonViRFv+SfOR6s5x duQo3n626KaA9WaVLGWH1l44AJRRS0mN63imP8OyNKzykSLRQE/ocSTN0Z4pMqjycw7y Yx0g== X-Gm-Message-State: AOJu0YyxY7DIXh219F/wYnstdtcRSzIt98gYbunWgxv1hw9LiEsQONqc 7M6J5aw58S9JfVabhye/lcD6VHN+n+8nDwiBkUj5X5V/bZYfMMrt8QRCoF/lzwd5Fkm6bZVemP1 vIp/h X-Gm-Gg: ASbGncvG3iK5MUPXaiQG13vATjS14bSxuJ5sdVbrootuujIFgXO2WNlHBHVcKbDzIEn DgegX0RsgsIE0G3rQnvet+Y9Z/RzLIr3q0J6Bk4RWj6Pk8XkkOLfIBRGFJj1Tnr7mVFgwWGLnL9 1Ewv3OUZoh4EzX2iys/Hbl6GskG6SzYSttBP95R+ksCZLeQFZMWs9a1MaRhPJI6LBkq3OUIbZ5V gmUzw04nIJJDe6JnaKsQinAMHPghSHbZQZ0oD8cRFs8MeXEGVD3mJfsU+1vYu/S9sSrAEz5QVt4 +1jY2Eunoge6szc0bgVTcehrgUkCL7wzgAYIxyt9yxTeTQVM1dX3VDzlO0nm17hQZkKgGmQQxfg wElnqCEWKDGmgVlCajBtAXBMVyaM5 X-Google-Smtp-Source: AGHT+IEAJ+Bs5OtTMywz0Iu1RjGvy61lYf/y2xYuvxLD5C83uyJlMbBQEvAt0kF6lJY0NjwHw6/n5Q== X-Received: by 2002:a17:90b:2684:b0:32b:94a2:b0d5 with SMTP id 98e67ed59e1d1-3342a318acbmr789061a91.37.1758740486957; Wed, 24 Sep 2025 12:01:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Pierrick Bouvier Subject: [PULL 26/32] accel/tcg: Move post-load tb_flush to vm_change_state hook Date: Wed, 24 Sep 2025 12:00:59 -0700 Message-ID: <20250924190106.7089-27-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@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 client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741252809116600 We need not call tb_flush once per cpu, only once per vmload. By moving the call from cpu_common_post_load to a tcg-specific vm_change_state_handler, we do even better than that: we only flush when called from HMP triggered loadvm, when we had old state to flush. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Signed-off-by: Richard Henderson --- accel/tcg/tcg-all.c | 21 +++++++++++++++++++++ hw/core/cpu-system.c | 9 --------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c index 5125e1a4e2..18ea0c58b0 100644 --- a/accel/tcg/tcg-all.c +++ b/accel/tcg/tcg-all.c @@ -38,6 +38,8 @@ #include "qemu/target-info.h" #ifndef CONFIG_USER_ONLY #include "hw/boards.h" +#include "exec/tb-flush.h" +#include "system/runstate.h" #endif #include "accel/accel-ops.h" #include "accel/accel-cpu-ops.h" @@ -82,6 +84,23 @@ static void tcg_accel_instance_init(Object *obj) =20 bool one_insn_per_tb; =20 +#ifndef CONFIG_USER_ONLY +static void tcg_vm_change_state(void *opaque, bool running, RunState state) +{ + if (state =3D=3D RUN_STATE_RESTORE_VM) { + /* + * loadvm will update the content of RAM, bypassing the usual + * mechanisms that ensure we flush TBs for writes to memory + * we've translated code from, so we must flush all TBs. + * + * vm_stop() has just stopped all cpus, so we are exclusive. + */ + assert(!running); + tb_flush__exclusive_or_serial(); + } +} +#endif + static int tcg_init_machine(AccelState *as, MachineState *ms) { TCGState *s =3D TCG_STATE(as); @@ -124,6 +143,8 @@ static int tcg_init_machine(AccelState *as, MachineStat= e *ms) default: g_assert_not_reached(); } + + qemu_add_vm_change_state_handler(tcg_vm_change_state, NULL); #endif =20 tcg_allowed =3D true; diff --git a/hw/core/cpu-system.c b/hw/core/cpu-system.c index 09c928c1f9..f601a083d1 100644 --- a/hw/core/cpu-system.c +++ b/hw/core/cpu-system.c @@ -23,7 +23,6 @@ #include "system/address-spaces.h" #include "exec/cputlb.h" #include "system/memory.h" -#include "exec/tb-flush.h" #include "qemu/target-info.h" #include "hw/qdev-core.h" #include "hw/qdev-properties.h" @@ -207,14 +206,6 @@ static int cpu_common_post_load(void *opaque, int vers= ion_id) cpu_reset_interrupt(cpu, 0x01); =20 tlb_flush(cpu); - - /* - * loadvm has just updated the content of RAM, bypassing the - * usual mechanisms that ensure we flush TBs for writes to - * memory we've translated code from. So we must flush all TBs, - * which will now be stale. - */ - tb_flush(cpu); } =20 return 0; --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741438; cv=none; d=zohomail.com; s=zohoarc; b=JhHbr0Da6mb36Ri5waw8q55KCairbugsf77p1HcXDFI4Qg5B4I1Yl+OEaigP1OjCv3s1dPWdI+0sfM4lv94tCzHKjBOLfA5uAhZYpNYHPC29SSSzZmCzq2aBho460ZoIxUBgHzIZ6yds6DIuH5QrJtuHmfCiCx60C6ScTlJex74= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741438; 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=agxaWfpnEWArDK9o57t/fXwGBS1U1BVOfgrXUxLn8BM=; b=HDNBgxftpyDnLUnZITTis9WPwfxEQfsqMc+Q+rZDupaTigg1ZF8byuZkzzbMsB5MCSXHdUDNRE17cj7MKBMZv4e4bgS1/DnB0f5jOKE5+/GMOY6gjp7vnvdo/O77Eb0tC2hFWuEYBLoXNpjXokt+L9O9Bwzv/IdwvTBedP1npiU= 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 1758741438626142.05152606980278; Wed, 24 Sep 2025 12:17:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1Upa-0001Sm-BU; Wed, 24 Sep 2025 15:07:13 -0400 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 1v1UmC-00072A-SB for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:42 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1UkD-0007vJ-IV for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:40 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-32eb76b9039so184258a91.1 for ; Wed, 24 Sep 2025 12:01:31 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740488; x=1759345288; 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=agxaWfpnEWArDK9o57t/fXwGBS1U1BVOfgrXUxLn8BM=; b=vQnKKPqURx5N6BcUgDQRVyx2Vlb0zhagl5arvesJUuqV+uAnU0GE7/UOio8cRrf7zc oxwTwjx8F2VHQreh9HFoux0XrKX740uZdA9G+BMP+1+cBkbfTTT2tvS1P2LIYAUlmXJe X/AZKTa9mXtJko21wNnNiFIBwirjDFf/gGLFONtrewVSGb4nFKuKeMcTc8vC7TJozx0W NR0H8RbHCGI5cg/NyIiaFlJTaDTgv7beJ1eHPJH+jQwTbsDf3KAb1nMn6i2b6j1Kq1+D 8BxJ0bNhWyzt1cZ32hrfZk7TykBD+bmLOIV0D/ydhl62NG+QZfVjCyFuwKBd0/KGfNF2 SYeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740488; x=1759345288; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=agxaWfpnEWArDK9o57t/fXwGBS1U1BVOfgrXUxLn8BM=; b=GM5ubu7sFrdCRJ05dpUclCDCG6zlizPpCCiXyZfmn6g7c6JFOG6O4WeluYqLJz69ef ENZPSfI0qIt4KlVos0K6cAJdnr4gQIDrHCLovBepib2bCowkwAxDXCOzEmJjoUHLHl0a Z6saxuAa4kiZ5iStQiI+7YQJNUEz6r0RiwzMMufjX6EhX+zdNE9Uhz9IG0+NfFI2DHhj 2gmv18tfRoVPFDKhAQigr+1qFcEAnjUeV09Chto/7IK9OCGJbAL8YNVJGauuVWRhCku6 W+7oJFAIHFnEedk5lEPL/em1W5HtyFlp34H/gJKzv5jXsz034YNcL90B5Pf0oCVUbyeC nhHg== X-Gm-Message-State: AOJu0YwOaqMRXe2m5vPwxr9cnKNAUtB2Q2voFLpknJWiG/KH1obJqh2P KvHBlY8oqEzCwgchu6xd164TYHmte+8OtqMk9dLxVpBUURRuhMkd0SnQlW/HSaQ7puw6DZ7MvaZ 1lRJB X-Gm-Gg: ASbGncvZBqiWggv3qXkXdjBFfvv8EWjPiToXQOdVmVpY36/3CHljVl+09YzYaURPnPf rY65qzm6hkf9p0ck4G5zfrLWf32G0SqoHNN34wr6TrFSBLucth59vCDqq/xwzlhXJsKgdKLNVqd z5e5QMOIO0GAwGCjizk+KHcp27pP/UYLdbyjitd7fqn3dG4Ln0huQmbb9Z55K4EwpWCuNq2acDp 4xYlGMI5bc83AYJugrLXT3YWVqsCYuF9E5Lit654P8+LR85dV0SEE6VQui29xtFuivLKyWcmhEv EKqMznnUk6LFh4PZe887GNB6qs8H0I6ZX26JUPNG2EvLDn+zdZzh2QyleesX3qgVOq4DM5s7LOI Pn9W7WHCb6wHDZX5qHvx/2HbD938m X-Google-Smtp-Source: AGHT+IEJMrkorSpNyd1up5txbfb7tr2Z0M6ccwtLH2UvY2r8hprh5ymbsPIpkVgn8K2MOF9Hy/mOjg== X-Received: by 2002:a17:90b:1347:b0:330:6edd:9cf with SMTP id 98e67ed59e1d1-3342a2b0f1fmr678957a91.22.1758740487709; Wed, 24 Sep 2025 12:01:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 27/32] plugins: Use tb_flush__exclusive_or_serial Date: Wed, 24 Sep 2025 12:01:00 -0700 Message-ID: <20250924190106.7089-28-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@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 client-ip=2607:f8b0:4864:20::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741439593116600 In all cases, we are already within start_exclusive. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- accel/tcg/plugin-gen.c | 4 ++-- plugins/core.c | 6 ++---- plugins/loader.c | 3 +-- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/accel/tcg/plugin-gen.c b/accel/tcg/plugin-gen.c index 9920381a84..1ffcb4b2d2 100644 --- a/accel/tcg/plugin-gen.c +++ b/accel/tcg/plugin-gen.c @@ -102,8 +102,8 @@ static TCGv_i32 gen_cpu_index(void) /* * Optimize when we run with a single vcpu. All values using cpu_index, * including scoreboard index, will be optimized out. - * User-mode calls tb_flush when setting this flag. In system-mode, all - * vcpus are created before generating code. + * User-mode flushes all TBs when setting this flag. + * In system-mode, all vcpus are created before generating code. */ if (!tcg_cflags_has(current_cpu, CF_PARALLEL)) { return tcg_constant_i32(current_cpu->cpu_index); diff --git a/plugins/core.c b/plugins/core.c index c6e9ef1478..ead09fd2f1 100644 --- a/plugins/core.c +++ b/plugins/core.c @@ -248,7 +248,7 @@ static void plugin_grow_scoreboards__locked(CPUState *c= pu) } plugin.scoreboard_alloc_size =3D scoreboard_size; /* force all tb to be flushed, as scoreboard pointers were changed= . */ - tb_flush(cpu); + tb_flush__exclusive_or_serial(); } end_exclusive(); } @@ -684,8 +684,6 @@ void qemu_plugin_user_exit(void) * with the one in fork_start(). That is: * - start_exclusive(), which acquires qemu_cpu_list_lock, * must be called before acquiring plugin.lock. - * - tb_flush(), which acquires mmap_lock(), must be called - * while plugin.lock is not held. */ start_exclusive(); =20 @@ -705,7 +703,7 @@ void qemu_plugin_user_exit(void) } qemu_rec_mutex_unlock(&plugin.lock); =20 - tb_flush(current_cpu); + tb_flush__exclusive_or_serial(); end_exclusive(); =20 /* now it's safe to handle the exit case */ diff --git a/plugins/loader.c b/plugins/loader.c index 8f0d75c904..ba10ebac99 100644 --- a/plugins/loader.c +++ b/plugins/loader.c @@ -377,8 +377,7 @@ static void plugin_flush_destroy(CPUState *cpu, run_on_= cpu_data arg) { struct qemu_plugin_reset_data *data =3D arg.host_ptr; =20 - g_assert(cpu_in_exclusive_context(cpu)); - tb_flush(cpu); + tb_flush__exclusive_or_serial(); plugin_reset_destroy(data); } =20 --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741202; cv=none; d=zohomail.com; s=zohoarc; b=YZe+gpMrYqy8CEgtXMGT84N0G79RgO/xWF+3NyyY7UwG+/V+E4AzcYExeJUBy+nrYD0RJKP10oE8C57fwHJthKzxbJvBP9tgJyGfwqiSo3PUb1XIAg0aXdkOTZyMs7werHG9VS9k9468zBmcBLNTeHSlXym4eVPBEex3/gEbIow= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741202; 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=kC+jJzU7oKqcXeHFjuuS9plD7f1CcqeywF5Lpqo3jg4=; b=aWbDB2o5FnItdmm/OlJhi1RG2SCjAp2xgKSW/dhcB9MbyEjA0pq45NI8HnpcN0ILh8qzxpZtZ0XQfLrWeME4FXL4BM93OHHXm5j39vM5aaDPjfPgHOkAz0jr6Re23ZFXRSVUVTPSNVYUkD8FO87HKVsjayLreozwRKVUu7R7T0k= 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 1758741202113774.3796508676776; Wed, 24 Sep 2025 12:13:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UqM-0002Kl-Bb; Wed, 24 Sep 2025 15:07:58 -0400 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 1v1UmB-00070w-Ma for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:42 -0400 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1Uk8-0007vS-9D for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:35 -0400 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-26f0c5455e2so1122565ad.3 for ; Wed, 24 Sep 2025 12:01:30 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740488; x=1759345288; 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=kC+jJzU7oKqcXeHFjuuS9plD7f1CcqeywF5Lpqo3jg4=; b=v1ftuBPbN0NNw9/ossfmq/w3NqXBk3rGns7I9esxvieIDJBpn8eeuNYneqpTGhctJG OTxHNiGXYXQU6CFLUClASHtDu4mrbwNXqxD2vAfmVTKNXEUFlSIqLZFZ0gLLRgQcSikv vEdU5bnxHyKK73647CmhJIpdHGOwU9APQ/fXuWHFota/qU0t5RXEUY8sKfxMyOiEkTaw U4uf4nhHNBcLnoQ2ul2TOisNlf7lHrFExjtjHCyiM1qtUWl4oalHSe185u7DOGvOoUpp QXvik3GakPHYqzDytPmzsAfKnaZR2DSEByAun7njY/YJv6JObQLk1rq2aKenOQB1tGwh lBVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740488; x=1759345288; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kC+jJzU7oKqcXeHFjuuS9plD7f1CcqeywF5Lpqo3jg4=; b=Cz2tDLSyrqML1JYHGZQepBVEY5RHrhpWI6LjkWZ91grjW7gIB2KG0PhNSO5V66Vvll u+cOOnNsz+iiCkKC/m7CLYoJqHfWLX4K/vGMIAVE1mhN0UBr38Svxg9VbBr59PW1LVYL 9YUXhWPKzlPydV/dRS7J4dDNLeVv8p5qqN4SOQtAVxU3a8gmdm1sajUGQSbAFimNfS+s 9Vc0R2qbbZ7xMbTISi+a/fCtF24Skx8TsuytBGlEJ/RMhjFSHCZOA+EAEcYscKnaXxgc Q0DD5dfHhjuDOIfakwZyNZ0Hi2viMLKTu/rYMuXoIqE8KMXyX7nxz16AzcM/Nof8iNTW CmJQ== X-Gm-Message-State: AOJu0YwKRCLrHMoHcOSgVZboCXn3UxMbx50kfWB6Cod/bI9GQMi5n/J+ V+MM8vbKJ/0iSpeB8TPbhoMa/EYHvVUYBGHMh0MM+N/czjlA0q6JCBP1ryAgY9SMGw7flRaIRqD EOHL/ X-Gm-Gg: ASbGncuzledm6fmibUaW4KXBf4PQkw4sO1uLd6QXDaBOOdFkQLiggwzN3zd0hrfz0Nl 9oUews/80qVOSfvQDeY6zMBun6dpZYblytDs0yxMQDetSemIHqDFl3oizKYovvG8aoGHX7Wp7TM DMHLXNnJFsUZfy5tYrIAU6wQd/Y/0OLuQq1/FhveYjxDC8AblokyM6uDu8NbixWNOmv6qY2EQZt Pq71VHnOZjP5zZCpfQftfS7iwS33apJDH509zNpoWjFs5cP0qvBFtG22JfMcjaRGrKNbj6zBlYY doNUV0276i1A+GRCGbrJHuV95CIyRcc1rYgfjEAlOKoME8FP7JAnEIzUyobDblB4f9ADykuPm3U oXsRw34SVPfJu4Hms+0SmSgZzFP3u X-Google-Smtp-Source: AGHT+IEOztd2LpTu+Gn03FqnNatyjb0YoR6EboYZZNIlzvAvznR4SuqWaKSXD8/TzYNdFljKawrwow== X-Received: by 2002:a17:903:37c5:b0:246:de71:1839 with SMTP id d9443c01a7336-27ed4a6078emr6327135ad.50.1758740488391; Wed, 24 Sep 2025 12:01:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 28/32] linux-user: Split out begin_parallel_context Date: Wed, 24 Sep 2025 12:01:01 -0700 Message-ID: <20250924190106.7089-29-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@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 client-ip=2607:f8b0:4864:20::632; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x632.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741204288116600 Move the test/flush/set block to a new function. Use tb_flush__exclusive_or_serial while we're at it. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- linux-user/user-internals.h | 16 ++++++++++++++++ linux-user/mmap.c | 13 ++----------- linux-user/syscall.c | 7 +------ 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/linux-user/user-internals.h b/linux-user/user-internals.h index 691b9a1775..7099349ec8 100644 --- a/linux-user/user-internals.h +++ b/linux-user/user-internals.h @@ -20,6 +20,8 @@ =20 #include "user/thunk.h" #include "qemu/log.h" +#include "exec/tb-flush.h" +#include "exec/translation-block.h" =20 extern char *exec_path; void init_task_state(TaskState *ts); @@ -172,6 +174,20 @@ static inline int regpairs_aligned(CPUArchState *cpu_e= nv, int num) { return 0; } */ void preexit_cleanup(CPUArchState *env, int code); =20 +/** + * begin_parallel_context + * @cs: the CPU context + * + * Called when starting the second vcpu, or joining shared memory. + */ +static inline void begin_parallel_context(CPUState *cs) +{ + if (!tcg_cflags_has(cs, CF_PARALLEL)) { + tb_flush__exclusive_or_serial(); + tcg_cflags_set(cs, CF_PARALLEL); + } +} + /* * Include target-specific struct and function definitions; * they may need access to the target-independent structures diff --git a/linux-user/mmap.c b/linux-user/mmap.c index 002e1e668e..847092a28a 100644 --- a/linux-user/mmap.c +++ b/linux-user/mmap.c @@ -22,8 +22,6 @@ #include "exec/log.h" #include "exec/page-protection.h" #include "exec/mmap-lock.h" -#include "exec/tb-flush.h" -#include "exec/translation-block.h" #include "qemu.h" #include "user/page-protection.h" #include "user-internals.h" @@ -1007,11 +1005,7 @@ abi_long target_mmap(abi_ulong start, abi_ulong len,= int target_prot, * be atomic with respect to an external process. */ if (ret !=3D -1 && (flags & MAP_TYPE) !=3D MAP_PRIVATE) { - CPUState *cpu =3D thread_cpu; - if (!tcg_cflags_has(cpu, CF_PARALLEL)) { - tcg_cflags_set(cpu, CF_PARALLEL); - tb_flush(cpu); - } + begin_parallel_context(thread_cpu); } =20 return ret; @@ -1448,10 +1442,7 @@ abi_ulong target_shmat(CPUArchState *cpu_env, int sh= mid, * supported by the host -- anything that requires EXCP_ATOMIC will not * be atomic with respect to an external process. */ - if (!tcg_cflags_has(cpu, CF_PARALLEL)) { - tcg_cflags_set(cpu, CF_PARALLEL); - tb_flush(cpu); - } + begin_parallel_context(cpu); =20 if (qemu_loglevel_mask(CPU_LOG_PAGE)) { FILE *f =3D qemu_log_trylock(); diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 9098cdb9fa..1a5f2a03f9 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -27,8 +27,6 @@ #include "target_mman.h" #include "exec/page-protection.h" #include "exec/mmap-lock.h" -#include "exec/tb-flush.h" -#include "exec/translation-block.h" #include #include #include @@ -6667,10 +6665,7 @@ static int do_fork(CPUArchState *env, unsigned int f= lags, abi_ulong newsp, * generate code for parallel execution and flush old translations. * Do this now so that the copy gets CF_PARALLEL too. */ - if (!tcg_cflags_has(cpu, CF_PARALLEL)) { - tcg_cflags_set(cpu, CF_PARALLEL); - tb_flush(cpu); - } + begin_parallel_context(cpu); =20 /* we create a new CPU instance. */ new_env =3D cpu_copy(env); --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758740948; cv=none; d=zohomail.com; s=zohoarc; b=BwUPcMMJGDHedxU46ELboqJB5xpkPN8Cdzd2jUyXLeZcLhJJb+8ubtMJ/Dw1vqC+da/tleCn/W27FTA3NQMT3xSgJA+1QyRPsOOhZM6/7lMy+cu4U9fbFPfjV12lzaM63WcJDE54VGbRWOkYqtKjZ23iRxxOmWdky26Rjc1/9WI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758740948; 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=SXPy0lwHBRb6FevOx1kqDpjbK7cTKLdcdo5VmUcuHXc=; b=djY2ugXm+romAiUHI3ZBz8Usbjy4C6TWGcXta67zWRXeSm3vIgb+bVVH+9KJxhyHcgd9SF+NpZlacLpsgF1S9yoyv4YOZMNckvkeOdZTJpLe20b807stDiWNvlrPDt+Vvl3zcXSMGaBrsTfXqSPOXB/z61icwceT2J+0VkQ6y+k= 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 17587409488411005.4555458725076; Wed, 24 Sep 2025 12:09:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UpE-00018C-Lc; Wed, 24 Sep 2025 15:06:50 -0400 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 1v1UmC-000727-Pd for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:42 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1UkD-0007w1-IO for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:40 -0400 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-2445805aa2eso1394015ad.1 for ; Wed, 24 Sep 2025 12:01:33 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740490; x=1759345290; 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=SXPy0lwHBRb6FevOx1kqDpjbK7cTKLdcdo5VmUcuHXc=; b=zW7x234Vb/kFkiVIS/uA9kErtpRypwkmmOsebN6idmDnDHlXmmaws/Ws+QUDQaNWIW /JKKIyrJMQGKHebGGNp2SUhwrgJPQ7jS8SVjkb+ML0Co5u/a0rVi9dKKoY6Vqy+kWUh1 cnzXSISqpOAyHzMp6Jc7BYNF1KPrdGfvpZ/TCnbW/fHjjMrEU8JV5BaqorLw0bYrsl9+ ip6mG3XQY76hIfvHP+4WEd0zHhigFnWaW6CE4AeN7ICMBwnUNsNIzvrpOV8JmNLmCmVc ARb3lIZNZUgfgiDlJ6UoP7D/vsPXLGZHBmp6Hn620zqOiNtQLvyTt4gxiugnEt3nHMWf loKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740490; x=1759345290; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SXPy0lwHBRb6FevOx1kqDpjbK7cTKLdcdo5VmUcuHXc=; b=JzJmDgfmcnr760fs099BkDtgFXRe8qBkYueh749msHYsrc7oeGwgGJvm9VwWspN/q+ OCyqPNEZ1QE3ii/okw/yZ0ELd9tvxdNtQ5PPzdyjE0/FcqnMqS5RNpEhNu6XxEstDr2+ Fri3I7gDVgLKW0EwRPFMSpoBBJpJLA3XeP7YGBpzTtUu/4fqeQ29o60al0bWnqwfloO0 HzIVRtMuiQlSaEGahB5d3U8hHc7VObbgBJhcM2cKGtjDm/vl6wZQGUSSDimXvS4BthTu Mq9ZilWmW8rFgUfV3YzU0FburPyDNfxKNqUd36Op6m4kCh5U5tWouz930Sptvh30OB6T A1Hw== X-Gm-Message-State: AOJu0YzQym8TECTPy5XyALQHX8ObcZoY1h5z7Ct5HCKEyyN8pH5EP6T7 wpRr65StE7xztJbIOSMpLCMK4w/OH2RACBvPfUDCYTFRDB6XaJNeLEiGhoxibyl/Ms+22euieAf BJENw X-Gm-Gg: ASbGncvBjGAD90CAtSrldEh5fqWOUuFL/nmus8BOWTTGwyQIjGvEXzL8I4fAB4gNLrR uVv0iGt4U7trbaPVP7qxNN/QFfvq0clJU1AnEC2SoFjOnIXirK8BTF1E59Vr7B0m8X7I8URT3IT t8F0cslG9n79MFMqmt5LNMXi2QQ5oPDaHXTGwiV3sEheqwB6FaHRMhbEraxus9cp/Lpb34GfhET 5eormEHb1qp3gxTa6JWo8ZSvIR6t+22K2SB0JU2jGUDW55vxoeTkAB9C94r9z8ym+PGXhfJMq25 C38eYFYlmjBpwAWUCX7YkhnzPNjg+sP6cGpMsovHfd4O+gkX2lCc82n/qxMuW9tp7/6egjKgsko BHzUF523zmWEizT9af3+bYSw8Q/25T1HCMu5pTuQ= X-Google-Smtp-Source: AGHT+IHCJtuBckeJqt+8ru82tZ2JfM3+Xfhn3kesUZcc4dUuWdGsvLopcXwcMuJ1OBUJo+BomYGs5Q== X-Received: by 2002:a17:903:2304:b0:266:7871:37dc with SMTP id d9443c01a7336-27ed4a7c891mr8126815ad.36.1758740488967; Wed, 24 Sep 2025 12:01:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 29/32] accel/tcg: Create queue_tb_flush from tb_flush Date: Wed, 24 Sep 2025 12:01:02 -0700 Message-ID: <20250924190106.7089-30-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@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 client-ip=2607:f8b0:4864:20::62f; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62f.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758740949826116600 Rename the function and remove the path which performs the flush immediately. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Richard Henderson --- include/exec/tb-flush.h | 17 ++++++----------- accel/tcg/tb-maint.c | 11 +++-------- accel/tcg/translate-all.c | 2 +- 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/include/exec/tb-flush.h b/include/exec/tb-flush.h index 090ffc8818..e971d4ba6d 100644 --- a/include/exec/tb-flush.h +++ b/include/exec/tb-flush.h @@ -24,19 +24,14 @@ void tb_flush__exclusive_or_serial(void); =20 /** - * tb_flush() - flush all translation blocks - * @cs: CPUState (must be valid, but treated as anonymous pointer) + * queue_tb_flush() - add flush to the cpu work queue + * @cs: CPUState * - * Used to flush all the translation blocks in the system. Sometimes - * it is simpler to flush everything than work out which individual - * translations are now invalid and ensure they are not called - * anymore. - * - * tb_flush() takes care of running the flush in an exclusive context - * if it is not already running in one. This means no guest code will - * run until this complete. + * Flush all translation blocks the next time @cs processes the work queue. + * This should generally be followed by cpu_loop_exit(), so that the work + * queue is processed promptly. */ -void tb_flush(CPUState *cs); +void queue_tb_flush(CPUState *cs); =20 void tcg_flush_jmp_cache(CPUState *cs); =20 diff --git a/accel/tcg/tb-maint.c b/accel/tcg/tb-maint.c index b4566a81d7..c45fd42366 100644 --- a/accel/tcg/tb-maint.c +++ b/accel/tcg/tb-maint.c @@ -797,17 +797,12 @@ static void do_tb_flush(CPUState *cpu, run_on_cpu_dat= a tb_flush_count) } } =20 -void tb_flush(CPUState *cpu) +void queue_tb_flush(CPUState *cs) { if (tcg_enabled()) { unsigned tb_flush_count =3D qatomic_read(&tb_ctx.tb_flush_count); - - if (cpu_in_serial_context(cpu)) { - do_tb_flush(cpu, RUN_ON_CPU_HOST_INT(tb_flush_count)); - } else { - async_safe_run_on_cpu(cpu, do_tb_flush, - RUN_ON_CPU_HOST_INT(tb_flush_count)); - } + async_safe_run_on_cpu(cs, do_tb_flush, + RUN_ON_CPU_HOST_INT(tb_flush_count)); } } =20 diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c index d468667b0d..31bc0f8bc5 100644 --- a/accel/tcg/translate-all.c +++ b/accel/tcg/translate-all.c @@ -289,7 +289,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu, TCGTBCPUSt= ate s) tb =3D tcg_tb_alloc(tcg_ctx); if (unlikely(!tb)) { /* flush must be done */ - tb_flush(cpu); + queue_tb_flush(cpu); mmap_unlock(); /* Make the execution loop process the flush as soon as possible. = */ cpu->exception_index =3D EXCP_INTERRUPT; --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758740703; cv=none; d=zohomail.com; s=zohoarc; b=DrvoFW/bpRB68wJg75iv9pTGWp/DWwsE8WtnExRfo1Joi8YYioNE06gSXLdSJMM9Zy8p/Ej9vEz+nqCtumOdxpAlfgRFV0ladNGDLFBGc24QdQ9JkGffN9+vdtd8CIVsfLnCSMkYp8QrvUe9wtr3qRY3fWpIf3i5q4Szku7gxUc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758740703; h=Content-Transfer-Encoding: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:Cc; bh=3tkOqHK5ejgU7JIInVN+rKgDfoWboky6FhXhkFrd/5A=; b=hCoDOLgbJ1dsJpM8IEjjazGwAVV/q4R2Zh0N4yZ2dJhaiSnvlIaPqjVoVA0uwiQ+9FfINiDHAL1dEw+0YwoIaNbxNUyyPBFe+a3Smqp+DunaAFvO6XYjlaRgYTP4eJHwnuhQHqRL24bgYf4fn+fw3v/BB3PSnkrFA/A+hZ6jhPA= 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 1758740703116201.43003084112433; Wed, 24 Sep 2025 12:05:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1Ulm-0006qy-5R; Wed, 24 Sep 2025 15:03:20 -0400 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 1v1UkL-0006Ix-Uq for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:01:51 -0400 Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1UkD-0007vn-Pl for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:01:45 -0400 Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-77f41086c11so183028b3a.0 for ; Wed, 24 Sep 2025 12:01:31 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740490; x=1759345290; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=3tkOqHK5ejgU7JIInVN+rKgDfoWboky6FhXhkFrd/5A=; b=ZXCTcdpkYhbOfvZmODfcg2J911Im1VGvZJvloM2KZXTPBcw5as9+SCXzq4TsxkHIBJ 9mhglj3TxtBHqnbp9FyHMrV1a4zG7rXnIUgWszrGENK/Z5wKDQxIr8+XYuSU25QREeSf 79UzWkTVyBQdePK0abnWndZ6M4BeEy3Ksc6g2aGhoD+RTHn2xZrgdr4D8SZpGXkqGlaX 9+djj65Q1rR87h11Jgp/++Mq3rWzNvoV+tdPXrt9HnT913JrSycbSYE0UrzFac0s9H2e E9iXZhzBnRxylDidyxBv6S9U7KvXe2K3o7loVI21BZLJhxkhUPXtWFEHpYeFHazwMGDC c03Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740490; x=1759345290; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3tkOqHK5ejgU7JIInVN+rKgDfoWboky6FhXhkFrd/5A=; b=v+ECwKeuUdMRomsUl4KZC0BGPRm3JELFNU949Az1Fk7Rv01VBlZF+J7LyUO6nAHTtf Qu9AVJWPzF/Vm1XVONIxYqUxo2GWA1jSF286DiQMpuHeHqcVDPyRKol9K+hyZgDNNSdj fG6Jjj4boQ79wt3WRVqJNMuqtwjJJ5y+9m9wI0c9AYQWo8qRIUA2nWe8mzCCLU5ntLSe hTemfVe248b2EI/X8GOWMGARannflKbEKO7eh1E0QNTt3QBFWQdPU7y9FrvveIQlN9/n oWbZGSVFrSTmd2U8jXe7isgVefx4DdP3b59mK+VpgZFwHhAqC4BT9/HJvSRWpZqNzxsw CNVA== X-Gm-Message-State: AOJu0YxyMyOMfvlQdWExRX8R+iBtaLcV/VZhp+FOCHhY8806SJd7TnJ6 rs0fbjyBEZRKDuEg6DMp+5liBw3YsAFkgLD38GufbYsWwkRVy/NF9bxIzvZbHUbnWigwpAMuxIq iraUA X-Gm-Gg: ASbGncuHoQ94HjjjFSefldTmE/pSrOPSeex/hBH5k2qo8ooGtcxuKDZLLfp23FnukLI q0+D51YlXV8y+AtirEh8xZnWpRXElU+xRfeTp94GwS6kMkzt6HLL84SgnXJeTuN0ZW/6LWjcPH8 hl/n9ZGTqZ0gGhwtiF/Nfje8rz+xauGFZPv4stQeOZlipT4ZypO9SI6pAJSNI4yX+uvyknYlBis hqnOPQRHjr6a0djmDB+qv4P0dgLHfaGM5WHlfMzCi/FeQ7v2aLcmhtUP5clicQRbFCjXOrVhn+M hU5e2eDkpMm5lTMClHIOBM+1GKEP9cZFL5wXl2+5jboLF/7+zw9om5muKYRG/NTXmOONM9qn4RJ 5B26XQSxQjEM+flydTFp6+7ruMmGk X-Google-Smtp-Source: AGHT+IGbxKMjFi8NiXbpWrvCzXHlCc5IasZFQZISefCE+iB/1VDD91vQBBMkykz0GW6AS9JaWqQ1Sg== X-Received: by 2002:a05:6a20:3c8e:b0:2ce:67b2:3c40 with SMTP id adf61e73a8af0-2e7c4dac209mr756754637.27.1758740489743; Wed, 24 Sep 2025 12:01:29 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 30/32] accel/tcg: Improve buffer overflow in tb_gen_code Date: Wed, 24 Sep 2025 12:01:03 -0700 Message-ID: <20250924190106.7089-31-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::433; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x433.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758740704583116600 Content-Type: text/plain; charset="utf-8" If we only have one vcpu, or within cpu_exec_step_atomic, we needn't jump all the way back out to the cpu loop to empty the code gen buffer. Signed-off-by: Richard Henderson --- accel/tcg/translate-all.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c index 31bc0f8bc5..da9d7f1675 100644 --- a/accel/tcg/translate-all.c +++ b/accel/tcg/translate-all.c @@ -289,6 +289,10 @@ TranslationBlock *tb_gen_code(CPUState *cpu, TCGTBCPUS= tate s) tb =3D tcg_tb_alloc(tcg_ctx); if (unlikely(!tb)) { /* flush must be done */ + if (cpu_in_serial_context(cpu)) { + tb_flush__exclusive_or_serial(); + goto buffer_overflow; + } queue_tb_flush(cpu); mmap_unlock(); /* Make the execution loop process the flush as soon as possible. = */ --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741107; cv=none; d=zohomail.com; s=zohoarc; b=hvbGGM4LY87xvk+GTlmbSf3Wnfa5oZobM1x/hmAAd0GUIhpuPUrUv9dP+SeTG7+LhqcZH0dEHWlS7wKCVb2oFNLyKGjpgfuuRB1CqLeHBYmm97A6zhSqt+nDVNnpRdNLQMMBDudb5ldmTGG5D/AnBuWhGvPZESkGVVuV/F/gDUA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741107; 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=EWpjv9GI/QcYKrSXjmbz+gtPiqHOCxvaKaD3QdcWnls=; b=PDbzkJh66xziPEeEhOwi1Cmd6hSOrIjZk2fi8ihfcepyEqdK1UGND/a/poF6hi0eCebIP9eeGnU38Iia2dK29HC6ddKNlr7Y7RyXZm0WTwzLJsROLKpehvdAkI3WVjdv1M80lIdI5i8pOkPjMu7iH9TAWPqTBQMG8UojaY/C+x4= 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 175874110758361.939109734842646; Wed, 24 Sep 2025 12:11:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1Uqs-0002wG-L4; Wed, 24 Sep 2025 15:08:31 -0400 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 1v1UmD-000726-Nw for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:44 -0400 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v1UkC-0007wC-IG for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:40 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-33226dc4fc9so196508a91.1 for ; Wed, 24 Sep 2025 12:01:34 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740491; x=1759345291; 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=EWpjv9GI/QcYKrSXjmbz+gtPiqHOCxvaKaD3QdcWnls=; b=J6UXil8crpJc7TvE4CwIEJoOn5aSFzG0Rqk9qMlE3V3j2fV5llfqTVnEU1DFgGFOxs rbjyukRAhTdJjv/BxOF/Eul7bYcoW7QZM3In5IIaHbWcfyF4d1B5A0mqAgX1eyeFgK6u ewarpT4ZF9A9a7TwCTkkc5MUc1qWYlCOc/0xvBfdHorxKSb9FDUFF26TTyvaEAUl+a1z lV3Y034/DPAjjQgAutBAHl/b6YZQPDeg2s5bnpeJpnI7Y+NQKjp7YDndIS/lP8tC/OQ7 q85ySuFZt15jKgn2qNqgMRP/gzKilUVsZeQbZoJYZrEl4z2a3wqMK3QVpn2OaYF4M2+G fpqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740491; x=1759345291; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EWpjv9GI/QcYKrSXjmbz+gtPiqHOCxvaKaD3QdcWnls=; b=lsIX3opvTJwsAcmWwDZwPUcF6zV14p4PIcz78zNsaJVq1ndZPS9TnA725CgiNMpCFY tDmgBvxRTdKr/QPBCDu9gJ3JMrmVXRbZdt4cfgJcVssrIhDZLs8Qid8WqoA3pJEi0c16 vex0w15cavqAVXHPy5XT3ixPEIQuE8jCizDG98kF0O58vPh8myWRIA0ksIF1QsMxLuoF d6TDAKA30X/l3KUeRVftAfnin5M1kEQwl1PJHqAQByP3/z3Gw/h3/HCgpBLtCd0YBPuF nbo4GnDcVJqm6GaUWh8no4NuR62bAgsANbNtfXbPFhEvvojgI5sW+yQQeuBFMMElZiY1 ptDA== X-Gm-Message-State: AOJu0YwUBhXiuL5GebJ8BiQZ2p9V7lox1iQG+sXgTVPltvv5TZKyX4ka 6pc45e4ua5AoFWi7+t/CNiUbvhuZI5kh4vBHv7OsVwM0cez3W6g+aVnhyEPIAXRiS6wiLulPiSV fwznc X-Gm-Gg: ASbGncsro4YMrBwRrJYNAr+xjOQwpXKaSycoxVe4k32e1J9/GovIEMgWaVItLQMXb7j fpZ9lRj1qvz4PdL4P1QPV+ZCEFKR3MPPkhnAI0KGb9wv1NTAUxXG4m7EC88uwKOpxehEPVej0DR NJfA90oxDzNF+OINiGMx0kQnbzZ1SG4xDerDmls3zIur1KjN+ioq09SBURa7ugZrAiyB6rrRzDD UTuDwuojlsrCN1oqeqde0HeDNFFzaRsmz/NVGXg+KFNegR3uAE27452n67G90NNiqKhij5qD7U4 5r+wDOrftUK34aTPXzi7+mbu/0ewyRFrOdtM4x3JkyPNeRqxL1V8hLhHArxjvllH2hSEvblOgs+ H9yucedtivnQX+2jHj6gDxetflMnT X-Google-Smtp-Source: AGHT+IH4t1l1FxD7en8CT8OaB7noklm8NxOja7qPpYc1iibcr5gEjxntXMYJvMW33xP7b+eyuOX+0w== X-Received: by 2002:a17:90b:2249:b0:32e:59e7:c37f with SMTP id 98e67ed59e1d1-3342a24778bmr957160a91.12.1758740490760; Wed, 24 Sep 2025 12:01:30 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 31/32] accel/tcg: Remove dead mmap_unlock() call in invalidate_phys_page_range Date: Wed, 24 Sep 2025 12:01:04 -0700 Message-ID: <20250924190106.7089-32-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@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 client-ip=2607:f8b0:4864:20::1030; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1030.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741109025116600 From: Philippe Mathieu-Daud=C3=A9 Since commit a97d5d2c8be ("accel/tcg: Use interval tree for TBs in user-only mode") this code is guarded with #ifdef'ry and only build for system emulation where mmap_unlock() is meaningless. Remove the call. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Signed-off-by: Richard Henderson Message-ID: <20250924164824.51971-1-philmd@linaro.org> --- accel/tcg/tb-maint.c | 1 - 1 file changed, 1 deletion(-) diff --git a/accel/tcg/tb-maint.c b/accel/tcg/tb-maint.c index c45fd42366..5a8d0784e7 100644 --- a/accel/tcg/tb-maint.c +++ b/accel/tcg/tb-maint.c @@ -1168,7 +1168,6 @@ tb_invalidate_phys_page_range__locked(CPUState *cpu, page_collection_unlock(pages); /* Force execution of one insn next time. */ cpu->cflags_next_tb =3D 1 | CF_NOIRQ | curr_cflags(cpu); - mmap_unlock(); cpu_loop_exit_noexc(cpu); } } --=20 2.43.0 From nobody Sun Sep 28 16:28:09 2025 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=1758741487; cv=none; d=zohomail.com; s=zohoarc; b=NnbWySGvksBhs84OQ+B/LsUugZj5tzTtS5rGm1LwV3Qxh15q01fnxMH2jeNEtoSJ4G7SgeIGCg323wy2rV95jqh9FWWhCKVxEpIwnkYsFNfMymLa18aoHKBRNLjyPga8Iun/5VwgojhQVdPu8a8bkbg9F+5w618phkKi1/NZxOw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758741487; 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=f0sFf9ow/07V1OcgzR2bzFAiocH4tgXY/MTlOxdl/BE=; b=OUpFWbamwoqUEsGM7ZrAxl0+tNNpqlDOOYr0eqP8begWarfw4tONMDwoQwP4C8Pt8Yf/DLalrNOl4g7fMwNCzuORYYCGr2/95p3x2YVvDr6gDCqMoRhtxU0DWIysv+DeyK/IhPFUAV2nwYxN1ss6x4bzQ2DN/RFJLGzQHu66Xu4= 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 1758741487496636.3294206003718; Wed, 24 Sep 2025 12:18:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v1UrZ-0004Mn-My; Wed, 24 Sep 2025 15:09:14 -0400 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 1v1UmI-000770-3H for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:46 -0400 Received: from mail-pf1-x42b.google.com ([2607:f8b0: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 1v1UkJ-0007wK-GJ for qemu-devel@nongnu.org; Wed, 24 Sep 2025 15:03:45 -0400 Received: by mail-pf1-x42b.google.com with SMTP id d2e1a72fcca58-77f0efd84abso151147b3a.3 for ; Wed, 24 Sep 2025 12:01:34 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33439103461sm63221a91.8.2025.09.24.12.01.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Sep 2025 12:01:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1758740491; x=1759345291; 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=f0sFf9ow/07V1OcgzR2bzFAiocH4tgXY/MTlOxdl/BE=; b=c4K8Z770Q/7B5uZEFqrNs0uFFIajBozmvBTE6mwITeBPCDNUwigZr51wpw1f1mwOWs 32u4LZHjaBC/j13Kr1tazoOzppzVqCTccIGyYwRIsLLC7DPdOPCp9qEgznm5SUxyxlsX Hd1hEDBs7JiIPvqswMLw9QHhRg2eaCw3lTRW2PW1tGXZqegEoWnASHMODc0vbuAUOdHx Gc0v0likikuNCXZYGGNy2QGAdqdS1v/lN6cFllKtr1+3siPGWYMEvZI5raANyseQOloM Br0oBZIe2n8r9mXsihXcGQMrhxgRx54lBuaQ5isKTopYDcyxKZZJb04qVEyPpTaPVgNp aHog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758740491; x=1759345291; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=f0sFf9ow/07V1OcgzR2bzFAiocH4tgXY/MTlOxdl/BE=; b=M6pH2RPOP7/3I0hEG6yIolZC3hj5Ba2MFisikZ/vomKIk/rLLRZSCYMhNsjc4hEB7d qajaPrWt2wPaU8SwwPfuwDGIRXVrv+wNZFgyXJvdS8LHVGg6UffnhFmnwPqUdgGyW4A9 2jZ9ixeZRxApaUY02GNjBhQWJYs39E3FBEfxukW9cPwR4j+1SKQRecF6RzU8FoUweyMI Ub2g16TLogwWucVb9AbWrkfK/Ha44h87i7di4iTor1Aic+m2xoc4yy5lXKxpqL7zPM3N XIxC5ONRrjP0hRAw1F33dkB4VKpTCB7vYRcK7aV6uMf2F9zi0YPpV+RtccMw6HhJAz57 bPVw== X-Gm-Message-State: AOJu0YyqDeMbIydlgtRPRc1vhMC/pzDbrJEYswXNbaP2j2vhEtZFp5kF ct9/4JxFNnYrS6kUQHABtcvrGcHQbosCIm/uRkq9gYZByqFvVuCng3oY1NPbUD2aaFsxQBnZ0Wz e2SvW X-Gm-Gg: ASbGncuI1rt6N/Du+iItEFxWH9BW+5RnlNCU6h8FeFhU+qnGC6/RIWo8vTZPf8RyUnb aNXoW2HMuFjnLysR2qk4ifA6a0G5rzW9B+4G0g6XRQpPhc06Hsb3eji9jnLWx7n6IvqiJM6ZJng PZ8V4BgiePrI1wwY62g9lBSmHe66Bqi6wGirl8/MjTGK+vzvzDZkXgixgSO6Gz79mCVIeEJu+mn VqEXPlH5Exnlcpkols5iKE1Cnt61yhfprRvulVf5KJQa86SvQrE9tDMIyjT9o7NJXUBMOvNuOx8 Rk4fj9+ZVDHt2hN3oyUQ6uWgZX31outbKdZOn/otgG+3bcK8CiXmFca5Y4vC6Uqvfl8aB3bKENi w1sMxteov8V3dFQqxq/mIC03ClQbn X-Google-Smtp-Source: AGHT+IHLX4trVhodTzNMQ/FvvtSbJ9Lg15twZyyjb/b7aotdkzso/AOXqFMGw9ezAhGSLLFzULnAkg== X-Received: by 2002:a05:6a20:7f83:b0:249:824c:c620 with SMTP id adf61e73a8af0-2e7d4e035a6mr700366637.57.1758740491533; Wed, 24 Sep 2025 12:01:31 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 32/32] accel/tcg: Remove cpu_loop_exit_restore() stub Date: Wed, 24 Sep 2025 12:01:05 -0700 Message-ID: <20250924190106.7089-33-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250924190106.7089-1-richard.henderson@linaro.org> References: <20250924190106.7089-1-richard.henderson@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 client-ip=2607:f8b0:4864:20::42b; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42b.google.com X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1758741488098116600 From: Philippe Mathieu-Daud=C3=A9 Not needed since commit 63e7af20352 ("hw/mips: Restrict ITU to TCG"). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Signed-off-by: Richard Henderson Message-ID: <20250924165039.52250-1-philmd@linaro.org> --- include/exec/cpu-common.h | 2 +- accel/stubs/tcg-stub.c | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h index 9b658a3f48..f373781ae0 100644 --- a/include/exec/cpu-common.h +++ b/include/exec/cpu-common.h @@ -221,9 +221,9 @@ static inline bool cpu_loop_exit_requested(CPUState *cp= u) =20 G_NORETURN void cpu_loop_exit_noexc(CPUState *cpu); G_NORETURN void cpu_loop_exit_atomic(CPUState *cpu, uintptr_t pc); +G_NORETURN void cpu_loop_exit_restore(CPUState *cpu, uintptr_t pc); #endif /* CONFIG_TCG */ G_NORETURN void cpu_loop_exit(CPUState *cpu); -G_NORETURN void cpu_loop_exit_restore(CPUState *cpu, uintptr_t pc); =20 /* accel/tcg/cpu-exec.c */ int cpu_exec(CPUState *cpu); diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c index 3b76b8b17c..77055e3964 100644 --- a/accel/stubs/tcg-stub.c +++ b/accel/stubs/tcg-stub.c @@ -17,8 +17,3 @@ G_NORETURN void cpu_loop_exit(CPUState *cpu) { g_assert_not_reached(); } - -G_NORETURN void cpu_loop_exit_restore(CPUState *cpu, uintptr_t pc) -{ - g_assert_not_reached(); -} --=20 2.43.0