From nobody Sun Apr 12 04:36:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1771213570; cv=none; d=zohomail.com; s=zohoarc; b=V+j0mMSwl6X86eeVM7x9AcMADZJBoRYtQmmd15U+By/m4SAowj03wYfyBMkxkmWs+JCRYzwvsZU7PxSZN84UiEbBHl9nfNOND+GMh0Xo6rTYxmfT3nFuYp+iIX5qAhpoSfX42Xgf8IxrYimZ41T+5fLHv6J6Jw3uIM5tlkRLtXY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771213570; 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=9NzjEqJY7+NdUrSQzEJSoR9zNgCwGWGpP9vTRT1K2JY=; b=jBTJsp8ucUJAm/xXnkdwmscQM3EFzw0/AyfaBa0qsIRgtdOeqyhHVjGIEbXNPFoVu38u9a93PJ1263D39uBIQIOFAEm8SouuaNcgQU+0odJN7NL0V4If5r55KzGB8fuZc6kjkQ2uWf6D81cvp/YlLIuLPhRqLFtw3cUpl91AQCg= 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 1771213570284716.3632292020847; Sun, 15 Feb 2026 19:46:10 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vrpXR-0002VQ-Ei; Sun, 15 Feb 2026 22:44:45 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vrpXQ-0002V0-4H for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:44 -0500 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vrpXO-0002OH-70 for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:43 -0500 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-2aaed195901so12760045ad.0 for ; Sun, 15 Feb 2026 19:44:41 -0800 (PST) Received: from stoup.. ([2401:d002:dc0f:2100:4a1:428a:70f2:5844]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad1aadca84sm53294155ad.70.2026.02.15.19.44.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Feb 2026 19:44:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1771213481; x=1771818281; 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=9NzjEqJY7+NdUrSQzEJSoR9zNgCwGWGpP9vTRT1K2JY=; b=yMsAxXn/osoE1eC/DTYhJAKtqz7CkPtYJQit86SyqS9xpxi07S7lqd097nK9dHK3L7 sneZV3sTIXGAPB9u4hpZ4aEC1rtsgkrm/3tV16WchgTxrISMUsakKL5V7ZTJlo9m0+Mz hiQcCsPf09WHmtt17M2GzH02LZF7w+9FsVa8oVN+U5UYSna7iAW8a58fr+P45qATCOVu M6RwMGEDl8dJVLhGbarg1NIMmtDFpzQ8yE1j+b02PF/dW1UyoBNW/7yfjIqPWm22dwlF Xlyi8qx/IzulijsSNjjORWx73f4Xl/M06YjCIDO2e93q1QyeFXSfKNVSufl1HI3+LelO x6XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771213481; x=1771818281; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=9NzjEqJY7+NdUrSQzEJSoR9zNgCwGWGpP9vTRT1K2JY=; b=EVFZpuSCgd6vUmTcqgMOpvAPQVHdg2OLpDcO2N+TC+PfOGWoFp/UTkIdeHKAsPW4Hr WFpEYgF7eCnVW/qfRb/ThFP9ysOI2V5Nr+0UalszMz6MCw/BUAupFoqQ6iygp3EVGkqM Bn8OfiS4GEwub2hZcZtww1shU0+S4EnE4Fdi6ps6b1tj1XbMMU9TnykcKfOQzkKeCuH2 ER25Uaip5VTdkP6CXXExqdufCJA/8oAxE5dh6W9aj7Np+Xz7AOE1DZTQ2WdQCZcgwxgq rRK9qAMbqddE4UafLYtub9vcmFhyRksy8IelFYeTZbyKZyn+jQLCcgh0tlexoVXBVNl1 fZdQ== X-Gm-Message-State: AOJu0Yx7vOLnt7fgtU2bhkaQfdtzs0izQpS0GrWZkg8sLIuPgjfZp5gc ARaPf+PpcL2/LmxR5gaNCodTwKSmv3Xj7INaSYf0Z7W6idmVUQh8oRAT58cLFQ9qmVod5HeD/04 mE12ws1E= X-Gm-Gg: AZuq6aJwIyFILFYF12tWuEOuybmdR5ypZq5TeseED6UHNS50ingWC3C+3fnekkMzcOG w+Ru0CLZty8ncD39ZRaXaS053lBdg5UHKGDquekleo14iujcAbnNLUOhWdrdomIqulZTV745gX7 yv/pSRgrb4v9jBWAfGGIgJ3jP6k5gv4fAogXgouwVGMol/WaOYJB678OYnUsX7t56ifjDvNTd8H 3QXPnDI3wy+uppoMwuurnIZDEkKDA2YBZ0EHp7468YdNH6Sm0XGt2ILtrcTwuSSIQgrGJhzi3hw YzcwZ89lDMfwrFU6UpbnwvI3E1xwwOi7NeyoDjqrXwkhUSjYd30u6T3cxBkyOtMoZgKKiUj571v 26xSiWt51IANTR5lqSS3GAab5IIPt7FTbuhINgSBzMIlZeufEGSav2o8Om/1VXb2LVFPQxMfb5T +NEhr0ITEpx/i7HgHOUXuN9naDNXTROes1 X-Received: by 2002:a17:902:f612:b0:295:8a2a:9595 with SMTP id d9443c01a7336-2ab505d7b3cmr100704075ad.39.1771213480475; Sun, 15 Feb 2026 19:44:40 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [RFC PATCH 01/13] NOTFORMERGE: Update linux-headers for arm64 kvm from SME devel branch Date: Mon, 16 Feb 2026 13:44:20 +1000 Message-ID: <20260216034432.23912-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216034432.23912-1-richard.henderson@linaro.org> References: <20260216034432.23912-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::633; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x633.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1771213571327158500 Content-Type: text/plain; charset="utf-8" To be replaced by a proper update once the API is merged upstream. Signed-off-by: Richard Henderson --- linux-headers/asm-arm64/kvm.h | 33 +++++++++++++++++++++++++++++++++ linux-headers/linux/kvm.h | 1 + 2 files changed, 34 insertions(+) diff --git a/linux-headers/asm-arm64/kvm.h b/linux-headers/asm-arm64/kvm.h index 46ffbddab5..bbfc4781ca 100644 --- a/linux-headers/asm-arm64/kvm.h +++ b/linux-headers/asm-arm64/kvm.h @@ -106,6 +106,13 @@ struct kvm_regs { #define KVM_ARM_VCPU_PTRAUTH_GENERIC 6 /* VCPU uses generic authentication= */ #define KVM_ARM_VCPU_HAS_EL2 7 /* Support nested virtualization */ #define KVM_ARM_VCPU_HAS_EL2_E2H0 8 /* Limit NV support to E2H RES0 */ +#define KVM_ARM_VCPU_SME 9 /* enable SME for this CPU */ + +/* + * An alias for _SVE since we finalize VL configuration for both SVE and S= ME + * simultaneously. + */ +#define KVM_ARM_VCPU_VEC KVM_ARM_VCPU_SVE =20 struct kvm_vcpu_init { __u32 target; @@ -348,6 +355,32 @@ struct kvm_arm_counter_offset { #define KVM_ARM64_SVE_VLS_WORDS \ ((KVM_ARM64_SVE_VQ_MAX - KVM_ARM64_SVE_VQ_MIN) / 64 + 1) =20 +/* SME registers */ +#define KVM_REG_ARM64_SME (0x17 << KVM_REG_ARM_COPROC_SHIFT) + +#define KVM_ARM64_SME_VQ_MIN __SVE_VQ_MIN +#define KVM_ARM64_SME_VQ_MAX __SVE_VQ_MAX + +/* ZA and ZTn occupy blocks at the following offsets within this range: */ +#define KVM_REG_ARM64_SME_ZA_BASE 0 +#define KVM_REG_ARM64_SME_ZT_BASE 0x600 + +#define KVM_ARM64_SME_MAX_ZAHREG (__SVE_VQ_BYTES * KVM_ARM64_SME_VQ_MAX) + +#define KVM_REG_ARM64_SME_ZAHREG(n, i) \ + (KVM_REG_ARM64 | KVM_REG_ARM64_SME | KVM_REG_ARM64_SME_ZA_BASE | \ + KVM_REG_SIZE_U2048 | \ + (((n) & (KVM_ARM64_SME_MAX_ZAHREG - 1)) << 5) | \ + ((i) & (KVM_ARM64_SVE_MAX_SLICES - 1))) + +#define KVM_REG_ARM64_SME_ZTREG_SIZE (512 / 8) + +/* Vector lengths pseudo-register: */ +#define KVM_REG_ARM64_SME_VLS (KVM_REG_ARM64 | KVM_REG_ARM64_SME | \ + KVM_REG_SIZE_U512 | 0xfffe) +#define KVM_ARM64_SME_VLS_WORDS \ + ((KVM_ARM64_SVE_VQ_MAX - KVM_ARM64_SVE_VQ_MIN) / 64 + 1) + /* Bitmap feature firmware registers */ #define KVM_REG_ARM_FW_FEAT_BMAP (0x0016 << KVM_REG_ARM_COPROC_SHIFT) #define KVM_REG_ARM_FW_FEAT_BMAP_REG(r) (KVM_REG_ARM64 | KVM_REG_SIZE_U64= | \ diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h index a4ab42dcba..d8fd57d681 100644 --- a/linux-headers/linux/kvm.h +++ b/linux-headers/linux/kvm.h @@ -966,6 +966,7 @@ struct kvm_enable_cap { #define KVM_CAP_GUEST_MEMFD_FLAGS 244 #define KVM_CAP_ARM_SEA_TO_USER 245 #define KVM_CAP_S390_USER_OPEREXEC 246 +#define KVM_CAP_ARM_SME 247 =20 struct kvm_irq_routing_irqchip { __u32 irqchip; --=20 2.43.0 From nobody Sun Apr 12 04:36:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1771213559; cv=none; d=zohomail.com; s=zohoarc; b=BhD8dXJ3ZcgguZj6QP0AvUUjPSPpgeXy4xCEVmAnk3hs21wfEi2bRt/1zsmQWef9p7ZNfiEFDZELGYGeYvcMGbMN99Ch3LD4gtDVk7+xd1hQPYbT9XOH16guASWxHMgig8vWZNIw3aHsjts+uYyW33JgrG7LgK6LEQvjh4KV7gk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771213559; 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=Sx4EklBCDXRhXcx4X7Amw2w/L2qFpEA1iQNUEaWH8vg=; b=fmogSnw65i6IQbs7bJbRBle2ilWb2Y+5wZElTrscwtOqp2sst/oqBeJ6NlEhy4dGsjvlUQzCVq+wggHu+MypIJmyK9AtdR17MpAV2U5cRtj/gL0AFjkjuCG4ZfYjoyGP8Z2Fhfactd1S2MHONbmG6WAt5fYiGo/weftRjHMptGg= 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 1771213559758323.7335261897483; Sun, 15 Feb 2026 19:45:59 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vrpXS-0002Vq-Dy; Sun, 15 Feb 2026 22:44:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vrpXR-0002VR-G5 for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:45 -0500 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vrpXQ-0002Pp-4J for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:45 -0500 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-2a8fba3f769so11697395ad.2 for ; Sun, 15 Feb 2026 19:44:43 -0800 (PST) Received: from stoup.. ([2401:d002:dc0f:2100:4a1:428a:70f2:5844]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad1aadca84sm53294155ad.70.2026.02.15.19.44.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Feb 2026 19:44:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1771213483; x=1771818283; 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=Sx4EklBCDXRhXcx4X7Amw2w/L2qFpEA1iQNUEaWH8vg=; b=iCFhWeeJgVhObOxanFVVof8cdrl2C5DlN976POlnJ8ZZX2XllKDbx7w1gyYucI40IZ dLfxGeePw1hOAE+cB/KshjmUe0lbJDzr80Lb0dcokfd1Ung9ghtrSBFd6OXiPVpukvK+ lKaZKbjPbD5+Sjbt+a02t/UzH4HidI2OqO2UhJsBzCX7CPP5qg7fM/LLL4g0H5zJrBdp a9mHYnd9YUsleji5EFZTWLqyBgYzFTZtUoxZcqDak+8IOeldKU7fAnDfyKsVh+GXkub4 NWisceAt3r4Mlic6Q6guBsaOkEMeOqE2ATpvscgYZQ/kOyDpyB9gZCb4TRLGaRai1oaM 9/DQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771213483; x=1771818283; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Sx4EklBCDXRhXcx4X7Amw2w/L2qFpEA1iQNUEaWH8vg=; b=JpKq6k3BLCsl7cvX6BN5Df6l6jI9wt4tcJLAtDi2MOTX8pj+3/Iehq3zHqnk6gjhwD 3bFXOInPyP41B1ohidG8c2kF1lUOYJvz6fWl3rqs0q3QSHCiWuUs6gqK9kRXOM9KSp59 XyhP/CsO5Oetb2sl724fkl35+WayLLoJD5DcBxsTIM4uCu54n4nEh1aIYgu0hwxp6KvQ t9QOsJCGovhNVpvnZJAc3QTctSfOLWuVljkImb1iXwVyLtbRiT7wzCKPbdG+tY7JJqjb tDcW6rcGhQUJIBIJxGo6tDH3VOjMNCjnZfBEsXy4fZPU7/nlx3+tVyMx9ZcvuLtATRtl qQZQ== X-Gm-Message-State: AOJu0YzqtYC3jDaWz7cXhx+5E97HQqBsrR3kh5ki6ofEb+T5le2IztJh oYCZ9hNV4GsoS3xR/9QEAvY2RhLLyFl+ZZA68TFkNHtUTjElCawwwEV11Ay0riWPTDcejCz+k8v cGyqt+/g= X-Gm-Gg: AZuq6aLxGQ4Xp9GpvA2cc417IG/uLusJ1gRvOiSrx3hhFVc+3k0Rn4iBp70RRkhAyt/ emQqlpt7kr9k1PRLsx54hjqg4Ffsg0yy5gk2CQsdvyjhnuwUxJykrCliFDHrggOrbg3xjvEMBj0 ThK+2ojTLjwSXCe3NGn85QbTicAmqN7dJBvBRTg5y7Z3LwkbmbP2o747CfpVult31yhdEE4wbkc 8XamOYtuxkwQ+hcOnKcr1tP3GXDPuSElUVkdbwRZomwuLtazDfTzgps04+0JyiLT/PCLpYtMdQ5 TcZ61XVTrA1tYVgBBaekjsluc4fUGZbiPfXkAJiSsoibzBHKr2YCwevcPb2++U8rogLSMmP17Jn TuEJ4hlFOC6KPYW0vdgl5uCGGRf/sNvadfstI1FAonM0iYVcDLfDgpiwJBwoRdg4gerZfP+V6bU ACtLDJRx1qwhAv3V1Q+cuLjNosIczfhQZi X-Received: by 2002:a17:903:3545:b0:2aa:d672:3be with SMTP id d9443c01a7336-2ab506152c4mr91464745ad.52.1771213482537; Sun, 15 Feb 2026 19:44:42 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [RFC PATCH 02/13] target/arm: Remove aarch64 test for kvm Date: Mon, 16 Feb 2026 13:44:21 +1000 Message-ID: <20260216034432.23912-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216034432.23912-1-richard.henderson@linaro.org> References: <20260216034432.23912-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::62a; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1771213561579154100 Content-Type: text/plain; charset="utf-8" We no longer support kvm for aarch32, therefore the aarch64 test is trivially true. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu64.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index 5d7c6b7fbb..10c6796548 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -767,9 +767,7 @@ static void aarch64_host_initfn(Object *obj) ARMCPU *cpu =3D ARM_CPU(obj); #if defined(CONFIG_KVM) kvm_arm_set_cpu_features_from_host(cpu); - if (arm_feature(&cpu->env, ARM_FEATURE_AARCH64)) { - aarch64_add_sve_properties(obj); - } + aarch64_add_sve_properties(obj); #elif defined(CONFIG_HVF) hvf_arm_set_cpu_features_from_host(cpu); #elif defined(CONFIG_WHPX) --=20 2.43.0 From nobody Sun Apr 12 04:36:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1771213529; cv=none; d=zohomail.com; s=zohoarc; b=a12Qjh0rmDzii43Zuj8DRvIbfTByUHyFh0r+LguJfeFioDQevyjSIG8toOC4mmQJ464hFErSIxLsmyPe7xc9OT3FdQ3FLk25ck3fEcXfvSZibJB3EjkOnzrSOH8mHbwQso1MT1pLtVuy64X11DjgoSS8fRgvP2XA7KdkwXXOGOw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771213529; 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=i0CkMEqHWZZBF7b/EDsRH9ZprXMms0dNpE5IJYi11qg=; b=eX0wo5p3tVlUJeK7r/yNGCxit02nAYztTEnOdAulp3zcp1qJAoR2oydDDk5CCfriDyc2zX4LoIfOPKwKqTrsXqXjUErR4JYx7EMjpbzx3GKBLizfundj5v6el9+3t3lRzujRvLv38tT6IrTa96zyK0LqEwqhC07KhHDbLQ+nv+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 1771213529027833.0911423715409; Sun, 15 Feb 2026 19:45:29 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vrpXW-0002WT-10; Sun, 15 Feb 2026 22:44:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vrpXT-0002WB-QJ for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:47 -0500 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vrpXS-0002Q1-3I for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:47 -0500 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-2aaf43014d0so19548055ad.2 for ; Sun, 15 Feb 2026 19:44:45 -0800 (PST) Received: from stoup.. ([2401:d002:dc0f:2100:4a1:428a:70f2:5844]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad1aadca84sm53294155ad.70.2026.02.15.19.44.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Feb 2026 19:44:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1771213485; x=1771818285; 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=i0CkMEqHWZZBF7b/EDsRH9ZprXMms0dNpE5IJYi11qg=; b=rgPFn0YQE/4g1NAjK/s8UMKGOwQZ9o01TYXuhcv+CZ4OFEPE3DNzfP5gITVIl577Xs 7zglWArlpHMTw3docllzI2o9sVob8i1UcCYxnhNVrjuq994tlCUZJmruwF2pIw/0TlT+ j3f+A79lmJKbokItKew8L/tqQ6KHqwnsaNajd9CqEux4YYb8q3CQGmdq5+r4MNTl7509 uwDSt7c0ybNdfAVDajkLCYg08M5VLWhbUIyCT3VyYURN46mDUKWyycYXLkK6czETPXzt ER4+wnvFCP4HC8qzC9hJ8J+UGoYPyIPDkZTD1EXZzvKtiPBf4kU/pF4wJ0rq7NiceAsB mBeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771213485; x=1771818285; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=i0CkMEqHWZZBF7b/EDsRH9ZprXMms0dNpE5IJYi11qg=; b=BijTVqMz11VxwXWCJ5V9+b+iR8xq3WKx8rD/fQdB2eg7TpWm9V2rDNd8pDFJZVFb2j 65SmOWjOW/kzKj6lXVojNNu1vyPg+eqX5XF8YN1jZ5nNv7JBuYvMhY66eXNhcWPO/UII tQcfxu+e+lx5WBQCvmJZOznP0Et7uF/Ubq2CqG9NSUsjoBvKHLtfVoIbDajBx6NIZ0Kf tMc4wVS4v7JHSev133jAPtbxP0yaoxVMCeDb0m32dYSLgiyiB0L+M3BrNHXSTruQkZdW 3o7jEvN4dcUcX7ekTTY+U8alnytZuC6ahPOyQKpupOl33LMLBvivhCSum4rPDruwnaWh hZsw== X-Gm-Message-State: AOJu0YzlcjHCxrudRq4r438IX4j+EYUbsRyacBQ3W6O8QdyQF86j3+xb LIn7obC8c+8RE0xFfLvy0G+lURjtpI1lXo/67AkbGMiev8UUL/A1VfBnTveg5pXH9oRA38SR+5u kLKxQJ+Y= X-Gm-Gg: AZuq6aImATcNd30SOWFM2PJ7kr9uY8f6RadZ9dFSbtAyBa+lrJxMiQBCdXOJylkCElI UnoZtmGy7hZItQ9Kk/12pFKgh21wEpJsiMhxWsj7TwN0KQMQPUx+Shv3B20H6BQMUnKVr+HEQZ6 Uey2zkhWv1+tq4SqzkdX0G5HNVUYULRjMqm8ErHJdFa5aMkLTMR6s06TaLb9ZL2XjxCRm9gvxPo 2LdZx6K51mCKfeqi/LLXZ5TgYdY6RSV++Xum4uOgp7pDMr6hC9iYEpKVgN1o/JnXXddZ7yzC72T MFe0ylmp9A9IRSTt8LEpWGe1+YRsfGD6H1KirkwgZOMuR2bovDvn0TgdSn8TBxqjLYRk3U/gycl uBVjdKt8eUf/tn9qQV8iCY0u9/z45nXxbDBxXf6jy5A/VAX3f2mJcndPjViXTQCiY1fDvGGEzQG 351H4umW8xTTx//nZtkWuKmmGfh22qDIuT X-Received: by 2002:a17:902:d48e:b0:2a9:2942:e15d with SMTP id d9443c01a7336-2ab4cf4f447mr115964305ad.5.1771213484686; Sun, 15 Feb 2026 19:44:44 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [RFC PATCH 03/13] target/arm: Move kvm_arm_sve_get_vls within kvm.c Date: Mon, 16 Feb 2026 13:44:22 +1000 Message-ID: <20260216034432.23912-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216034432.23912-1-richard.henderson@linaro.org> References: <20260216034432.23912-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::635; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x635.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1771213531412158500 Content-Type: text/plain; charset="utf-8" Prepare to adjust the invocation point and visibility. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/kvm.c | 108 +++++++++++++++++++++++------------------------ 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index ded582e0da..e0fd79b78c 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -243,6 +243,60 @@ static int get_host_cpu_reg(int fd, ARMHostCPUFeatures= *ahcf, return ret; } =20 +uint32_t kvm_arm_sve_get_vls(ARMCPU *cpu) +{ + /* Only call this function if kvm_arm_sve_supported() returns true. */ + static uint64_t vls[KVM_ARM64_SVE_VLS_WORDS]; + static bool probed; + uint32_t vq =3D 0; + int i; + + /* + * KVM ensures all host CPUs support the same set of vector lengths. + * So we only need to create the scratch VCPUs once and then cache + * the results. + */ + if (!probed) { + struct kvm_vcpu_init init =3D { + .target =3D -1, + .features[0] =3D (1 << KVM_ARM_VCPU_SVE), + }; + struct kvm_one_reg reg =3D { + .id =3D KVM_REG_ARM64_SVE_VLS, + .addr =3D (uint64_t)&vls[0], + }; + int fdarray[3], ret; + + probed =3D true; + + if (!kvm_arm_create_scratch_host_vcpu(fdarray, &init)) { + error_report("failed to create scratch VCPU with SVE enabled"); + abort(); + } + ret =3D ioctl(fdarray[2], KVM_GET_ONE_REG, ®); + kvm_arm_destroy_scratch_host_vcpu(fdarray); + if (ret) { + error_report("failed to get KVM_REG_ARM64_SVE_VLS: %s", + strerror(errno)); + abort(); + } + + for (i =3D KVM_ARM64_SVE_VLS_WORDS - 1; i >=3D 0; --i) { + if (vls[i]) { + vq =3D 64 - clz64(vls[i]) + i * 64; + break; + } + } + if (vq > ARM_MAX_VQ) { + warn_report("KVM supports vector lengths larger than " + "QEMU can enable"); + vls[0] &=3D MAKE_64BIT_MASK(0, ARM_MAX_VQ); + } + } + + return vls[0]; +} + static bool kvm_arm_get_host_cpu_features(ARMHostCPUFeatures *ahcf) { /* Identify the feature bits corresponding to the host CPU, and @@ -1886,60 +1940,6 @@ bool kvm_arm_mte_supported(void) =20 QEMU_BUILD_BUG_ON(KVM_ARM64_SVE_VQ_MIN !=3D 1); =20 -uint32_t kvm_arm_sve_get_vls(ARMCPU *cpu) -{ - /* Only call this function if kvm_arm_sve_supported() returns true. */ - static uint64_t vls[KVM_ARM64_SVE_VLS_WORDS]; - static bool probed; - uint32_t vq =3D 0; - int i; - - /* - * KVM ensures all host CPUs support the same set of vector lengths. - * So we only need to create the scratch VCPUs once and then cache - * the results. - */ - if (!probed) { - struct kvm_vcpu_init init =3D { - .target =3D -1, - .features[0] =3D (1 << KVM_ARM_VCPU_SVE), - }; - struct kvm_one_reg reg =3D { - .id =3D KVM_REG_ARM64_SVE_VLS, - .addr =3D (uint64_t)&vls[0], - }; - int fdarray[3], ret; - - probed =3D true; - - if (!kvm_arm_create_scratch_host_vcpu(fdarray, &init)) { - error_report("failed to create scratch VCPU with SVE enabled"); - abort(); - } - ret =3D ioctl(fdarray[2], KVM_GET_ONE_REG, ®); - kvm_arm_destroy_scratch_host_vcpu(fdarray); - if (ret) { - error_report("failed to get KVM_REG_ARM64_SVE_VLS: %s", - strerror(errno)); - abort(); - } - - for (i =3D KVM_ARM64_SVE_VLS_WORDS - 1; i >=3D 0; --i) { - if (vls[i]) { - vq =3D 64 - clz64(vls[i]) + i * 64; - break; - } - } - if (vq > ARM_MAX_VQ) { - warn_report("KVM supports vector lengths larger than " - "QEMU can enable"); - vls[0] &=3D MAKE_64BIT_MASK(0, ARM_MAX_VQ); - } - } - - return vls[0]; -} - static int kvm_arm_sve_set_vls(ARMCPU *cpu) { uint64_t vls[KVM_ARM64_SVE_VLS_WORDS] =3D { cpu->sve_vq.map }; --=20 2.43.0 From nobody Sun Apr 12 04:36:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1771213545; cv=none; d=zohomail.com; s=zohoarc; b=ihmSB4Ho4CcW/clgL5KQgNCLOHER/6+MGLT/6tcIISbL1mVTmE6eUkDKOl+/2iIbOnTESR/GcbmonCIhjTQtXh1FGWyK/XDbx1ihS0PE13rX5XAeQGSpJ7uDPLpt2u0Yp/7TZDGoD3Gna+B82OTX6D26wzzwg8jcQhLiQXjj1cg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771213545; 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=g6TjkzWZADwtaXnuXxdFy8Vh9RUDwBaNaugNOdAFub8=; b=eQHgSNrCe7Pd9kDVEOP0j+V04NRSNRcMI9Jp4KHV0HkR0PW0LWvW53cv5XVvi/JQeueptKJzZcJQ+0sKeLXHblx+E0z2cWM8P1lLv+SRoXW4b+iutt2CZRcOQGZi7ZRYgs0b3wMmdzQQ0VEFxKeUIcf6/wgIZ725ZZVTS88aem0= 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 1771213545257617.2939481506655; Sun, 15 Feb 2026 19:45:45 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vrpXX-0002Ws-R9; Sun, 15 Feb 2026 22:44:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vrpXV-0002WS-QD for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:49 -0500 Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vrpXU-0002QG-63 for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:49 -0500 Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-c6e2355739dso975953a12.2 for ; Sun, 15 Feb 2026 19:44:47 -0800 (PST) Received: from stoup.. ([2401:d002:dc0f:2100:4a1:428a:70f2:5844]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad1aadca84sm53294155ad.70.2026.02.15.19.44.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Feb 2026 19:44:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1771213487; x=1771818287; 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=g6TjkzWZADwtaXnuXxdFy8Vh9RUDwBaNaugNOdAFub8=; b=Rjh+Dpr827niZqEAfAAWOFOQoiE1m4wHnpnAqyoGsy8i6hauSawb5MUnN5QdEXAfOj uw6A7fZzmz+akPEVNgT77XyQ1jFWcm+YZ85HVjp36Stczl//qF5+GtusGyDvNSPQ0AsY c7XrcQ+rhKCLLvh4EhKOwTvgmZ0ML3AuelpYZtsFeLlaPtsk3mekoAMaSmjfoMwr32XC 9bcHvUOtCHV8znPBKT3wNpydMjnpPcfohhJbOdpx5L8WDYzKLracddPhvwAV+1j5Mgyv pAtZ1GJINxbZ/3NhDjLAb2iZO5yOpSPeAueZKtrL8ANiWCUhEcaPt+XIYepiW0OYmXNo 4VKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771213487; x=1771818287; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=g6TjkzWZADwtaXnuXxdFy8Vh9RUDwBaNaugNOdAFub8=; b=aDLpWSAyGPGHqgXj6BgT75LwMSv9Bvn21sJQNb+UOsxv3z0RU/5xhNOFbLXaWpL57W NsLLrGvDPS0bxjIw9XOfymG8AXVgewpx1olz5Ia9EQ2Jgi8PArn+K9RWI1EMOrxNLtCC dFuYyyf6wAvMqaj8UDJtt/RvqVaM/3WA0+sPAl7GYoy9gx2uV8xPMU0B9g7FsH9VSeDX nTIbzGO9mhIFQ+71L8nJsVlHutjhMJOoCAjeanzkhp89bZZy7pUOrp7pKmnUKdrjQi5s rVQTbD3bjNYVYlBbGZpnpvd0JO94oIJyTxaiqzcLGCipdSGIK3s+6vreb2YTj7IUXt+D +9yg== X-Gm-Message-State: AOJu0YxuqnFwr9sdpmDcL0Tcy6307kVcDwroykwIkVZCKJJbIf2MOVFP O13ANzUk7x+oVARwMl3SBwAn+30ceCw5+0iWANrHddiH3n2xsSVmCIeCpG1hXmuD4UZM99q2LWQ QLtkCgu8= X-Gm-Gg: AZuq6aJmy6BO11AyamC0HLlZYPDjSfsQJEv+8e3QlSvK+i95qXy5zn+DE/OUgo5ubOW XlTzQiUa4tOVUnV1jRx7WnNnEqLHck/2CEZY+bIZsa/c2PgRHDzAOlOsIyq/DGg7tWEK43k0jmk amJ+zRJ91oOSw9talzcXdVFvCraLg/5XDnoGcetalzAKmvId/GNCnxYocJdzC5PcI0g5grmV51A V1mQxaX3Sa+P/OtQLYePW2ucdJFOkLQQBYb+Y8s1mjPyBVSdqNM2cXP1/sDpZq/ZcwNndaIiCGf XN2CcXJDXH1q9Ajjq64lqbVpU4YfZb6Vm7BhQVNaYglS3m91gyKXjFWioRROlcg7A8iNhpul5qE TIdvJSJZR1ClZhdLHbq1iV75EXjmApSeUPXbVxxgbLbzMfRIpHSHOcPyNEAC/bTZUnJOtr/B0JK svmmRjKFq+WiU8c32mvcHUo8G1a9iqQas3 X-Received: by 2002:a05:6a21:114c:b0:350:b8e:f99b with SMTP id adf61e73a8af0-3946c87fdb4mr8336596637.45.1771213486610; Sun, 15 Feb 2026 19:44:46 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [RFC PATCH 04/13] target/arm: Init sve_vq in kvm_arm_set_cpu_features_from_host Date: Mon, 16 Feb 2026 13:44:23 +1000 Message-ID: <20260216034432.23912-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216034432.23912-1-richard.henderson@linaro.org> References: <20260216034432.23912-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::530; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x530.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1771213547385154102 Content-Type: text/plain; charset="utf-8" Probe for SVE vector sizes with the same scratch vm that we use for probing other features. Remove a separate initialization path in arm_cpu_sve_finalize. Unexport kvm_arm_sve_get_vls. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/kvm_arm.h | 10 ------ target/arm/cpu64.c | 20 +----------- target/arm/kvm-stub.c | 5 --- target/arm/kvm.c | 73 ++++++++++++++++--------------------------- 4 files changed, 28 insertions(+), 80 deletions(-) diff --git a/target/arm/kvm_arm.h b/target/arm/kvm_arm.h index cc0b374254..97549766ea 100644 --- a/target/arm/kvm_arm.h +++ b/target/arm/kvm_arm.h @@ -124,16 +124,6 @@ bool kvm_arm_create_scratch_host_vcpu(int *fdarray, */ void kvm_arm_destroy_scratch_host_vcpu(int *fdarray); =20 -/** - * kvm_arm_sve_get_vls: - * @cpu: ARMCPU - * - * Get all the SVE vector lengths supported by the KVM host, setting - * the bits corresponding to their length in quadwords minus one - * (vq - 1) up to ARM_MAX_VQ. Return the resulting map. - */ -uint32_t kvm_arm_sve_get_vls(ARMCPU *cpu); - /** * kvm_arm_set_cpu_features_from_host: * @cpu: ARMCPU to set the features for diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index 10c6796548..0116b6cc88 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -79,28 +79,10 @@ void arm_cpu_sve_finalize(ARMCPU *cpu, Error **errp) */ uint32_t vq_map =3D cpu->sve_vq.map; uint32_t vq_init =3D cpu->sve_vq.init; - uint32_t vq_supported; + uint32_t vq_supported =3D cpu->sve_vq.supported; uint32_t vq_mask =3D 0; uint32_t tmp, vq, max_vq =3D 0; =20 - /* - * CPU models specify a set of supported vector lengths which are - * enabled by default. Attempting to enable any vector length not set - * in the supported bitmap results in an error. When KVM is enabled we - * fetch the supported bitmap from the host. - */ - if (kvm_enabled()) { - if (kvm_arm_sve_supported()) { - cpu->sve_vq.supported =3D kvm_arm_sve_get_vls(cpu); - vq_supported =3D cpu->sve_vq.supported; - } else { - assert(!cpu_isar_feature(aa64_sve, cpu)); - vq_supported =3D 0; - } - } else { - vq_supported =3D cpu->sve_vq.supported; - } - /* * Process explicit sve properties. * From the properties, sve_vq_map implies sve_vq_init. diff --git a/target/arm/kvm-stub.c b/target/arm/kvm-stub.c index ea67deea52..f2de36aef3 100644 --- a/target/arm/kvm-stub.c +++ b/target/arm/kvm-stub.c @@ -95,11 +95,6 @@ void kvm_arm_steal_time_finalize(ARMCPU *cpu, Error **er= rp) g_assert_not_reached(); } =20 -uint32_t kvm_arm_sve_get_vls(ARMCPU *cpu) -{ - g_assert_not_reached(); -} - void kvm_arm_enable_mte(Object *cpuobj, Error **errp) { g_assert_not_reached(); diff --git a/target/arm/kvm.c b/target/arm/kvm.c index e0fd79b78c..464356989b 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -60,6 +60,7 @@ typedef struct ARMHostCPUFeatures { ARMISARegisters isar; uint64_t features; uint32_t target; + uint32_t sve_vq_supported; const char *dtb_compatible; } ARMHostCPUFeatures; =20 @@ -243,58 +244,34 @@ static int get_host_cpu_reg(int fd, ARMHostCPUFeature= s *ahcf, return ret; } =20 -uint32_t kvm_arm_sve_get_vls(ARMCPU *cpu) +static uint32_t kvm_arm_sve_get_vls(int fd) { /* Only call this function if kvm_arm_sve_supported() returns true. */ - static uint64_t vls[KVM_ARM64_SVE_VLS_WORDS]; - static bool probed; + uint64_t vls[KVM_ARM64_SVE_VLS_WORDS]; + struct kvm_one_reg reg =3D { + .id =3D KVM_REG_ARM64_SVE_VLS, + .addr =3D (uint64_t)&vls[0], + }; uint32_t vq =3D 0; - int i; + int ret; =20 - /* - * KVM ensures all host CPUs support the same set of vector lengths. - * So we only need to create the scratch VCPUs once and then cache - * the results. - */ - if (!probed) { - struct kvm_vcpu_init init =3D { - .target =3D -1, - .features[0] =3D (1 << KVM_ARM_VCPU_SVE), - }; - struct kvm_one_reg reg =3D { - .id =3D KVM_REG_ARM64_SVE_VLS, - .addr =3D (uint64_t)&vls[0], - }; - int fdarray[3], ret; - - probed =3D true; - - if (!kvm_arm_create_scratch_host_vcpu(fdarray, &init)) { - error_report("failed to create scratch VCPU with SVE enabled"); - abort(); - } - ret =3D ioctl(fdarray[2], KVM_GET_ONE_REG, ®); - kvm_arm_destroy_scratch_host_vcpu(fdarray); - if (ret) { - error_report("failed to get KVM_REG_ARM64_SVE_VLS: %s", - strerror(errno)); - abort(); - } - - for (i =3D KVM_ARM64_SVE_VLS_WORDS - 1; i >=3D 0; --i) { - if (vls[i]) { - vq =3D 64 - clz64(vls[i]) + i * 64; - break; - } - } - if (vq > ARM_MAX_VQ) { - warn_report("KVM supports vector lengths larger than " - "QEMU can enable"); - vls[0] &=3D MAKE_64BIT_MASK(0, ARM_MAX_VQ); - } + ret =3D ioctl(fd, KVM_GET_ONE_REG, ®); + if (ret) { + error_report("failed to get KVM_REG_ARM64_SVE_VLS: %s", + strerror(errno)); + abort(); } =20 - return vls[0]; + for (int i =3D KVM_ARM64_SVE_VLS_WORDS - 1; i >=3D 0; --i) { + if (vls[i]) { + vq =3D 64 - clz64(vls[i]) + i * 64; + break; + } + } + if (vq > ARM_MAX_VQ) { + warn_report("KVM supports vector lengths larger than QEMU can enab= le"); + } + return vls[0] & MAKE_64BIT_MASK(0, ARM_MAX_VQ); } =20 static bool kvm_arm_get_host_cpu_features(ARMHostCPUFeatures *ahcf) @@ -469,6 +446,9 @@ static bool kvm_arm_get_host_cpu_features(ARMHostCPUFea= tures *ahcf) * So only read the register if we set KVM_ARM_VCPU_SVE above. */ err |=3D get_host_cpu_reg(fd, ahcf, ID_AA64ZFR0_EL1_IDX); + + /* Read the set of supported vector lengths. */ + arm_host_cpu_features.sve_vq_supported =3D kvm_arm_sve_get_vls= (fd); } } =20 @@ -516,6 +496,7 @@ void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu) cpu->kvm_target =3D arm_host_cpu_features.target; cpu->dtb_compatible =3D arm_host_cpu_features.dtb_compatible; cpu->isar =3D arm_host_cpu_features.isar; + cpu->sve_vq.supported =3D arm_host_cpu_features.sve_vq_supported; env->features =3D arm_host_cpu_features.features; } =20 --=20 2.43.0 From nobody Sun Apr 12 04:36:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1771213581; cv=none; d=zohomail.com; s=zohoarc; b=eE+uIqUm1fzF+B0FOlxZ3E7Y8IbxzvAynA3ujeLcJrzzCNa5dXlpSCixI5lzHP51jiFkLLj41EP8pDyj0aTyO2+wdUVFY0iWC15hYC78vZIJaA9VqKVzvj5lf+Oso7Qx5sNPx3Vc2M+Mg9f88I5OJi3dFS0e//M61rx2Gl5brBk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771213581; 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=PxqU8tvo+gNnuGxhj0o+hsuYHhhpNyvRSdlXMU1ShJM=; b=Je5edWvvGSMQsAs88ohOLpahA321Gxv8MfgElR2MN6/GT3kQvo/ssANdcFmKYtRotyDIzyQQAkTiQW18jUsHs+qbbh87MXpfHm+h3+OYzhse49PYPZmn18y48Mx01rYIHs44+po9EX+Xkdco7b2dEuyOTKCYt2wUwX+Ydu4jihI= 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 1771213581292290.21890042043617; Sun, 15 Feb 2026 19:46:21 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vrpXZ-0002XM-A7; Sun, 15 Feb 2026 22:44:53 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vrpXX-0002Wr-Q0 for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:51 -0500 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vrpXW-0002QU-Ac for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:51 -0500 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2a9296b3926so17971075ad.1 for ; Sun, 15 Feb 2026 19:44:49 -0800 (PST) Received: from stoup.. ([2401:d002:dc0f:2100:4a1:428a:70f2:5844]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad1aadca84sm53294155ad.70.2026.02.15.19.44.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Feb 2026 19:44:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1771213489; x=1771818289; 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=PxqU8tvo+gNnuGxhj0o+hsuYHhhpNyvRSdlXMU1ShJM=; b=a5BATFP0fwjnKUHC0eKeI2e0HTvBU+It6bY+SA9txy32AR9Zla7jw80G88sXUaiZtM tlr1M476QTRyWA3j9HwSq2kT5zFj4DVPqYFHPUAGcG3jVtcsfQXsd8V8rr/7QeaOSPI8 P8rPNR4mRNjS9fDUdLZbTT1ues80AnQBScuQEW/2/e+w5e5sPAW5HI9RJ3AAWRaC+Zn0 KIctjpek0XfFcyLF+yHKnNCcI8HYcA4qw4OTRt1GVZmgS6rmasfu1gSVHcMJ3S1x4Xqz P4KS/79F2TaFKjPEgqG5OQPuLv9F/GLbE8c7v0M7xgdyNVx9vSDuqdN+GcfcGJHaqe1u UrJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771213489; x=1771818289; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=PxqU8tvo+gNnuGxhj0o+hsuYHhhpNyvRSdlXMU1ShJM=; b=js+5elRdmx72snsKJ3Hql3rlEQUxckK+M6zcq4TM3Z0cjUmciyuyiG92UiHAXun+BF wbvOwcOSWv5F1X9DnkuvX5scELXeoBKzQNfmrfjSNyotAWhKtsPNxU57NEcyTIp2PiZy UcZL8Q+EFDdHQLmglXEbdILhIgvo+2rFVNhB8IxtlIkBgThD5Y6jNQVBwCgUl2ZaVIl4 1tHvj4yoko7fdea00ba3K3hW9ldRF3y0TYO6TwjMZWgQBgaARkj6kNoWUQf+JhPv5tnB I0f7rKA+dbbEpPBlDAmCeEH1FV1x5sI/K8+klzNqcYt1tJVbm8DB3U7xos1lISPmeumZ Rs+Q== X-Gm-Message-State: AOJu0YzEesZiFQ6xMVouQPgF4Rw03VHhQUSqwemARwhxn8Qc0C4Fbi6E CWl+QP6Cg0vhjYOfEj3KN6SskYhjSpsO37inxarktqIa1hOBBFNHv/Pv0Oh3vEfCaFwStig8i46 pet7tZoo= X-Gm-Gg: AZuq6aL+s66iBLQpWYQQomjSySlTWvXBFMMkUgDmPB4SUhi9e2emOSdOfpqT2TA3D0O NwRmjtFgtkHP1CH7MQQYFC6Hki7outrz+YUW/HM2NmODQuurI26u6jOsQNIz3YgnIuVg9rIYgVd q+PIEIVhPP4FGpEga8qxz6C03qZZDkFaRI/Wwr0bKqbrDmE4Mhv492IQ0NAJrXvNzv0AvGMkilc 9WMEIZut+EXtpuYYtTAB1SXwWvgTrx1VQHAcwoCT7Z1U4HoZo5HFqROKeKF1I96wsYv7XgmvRNv Bzg4KM0o069pFFeihZPRwuCY6eeFRgUg1UAG3mI19ldtBANMrBO/SVTFUL4KYk6TGjoxKLQQq2Z d+AxjCAuWAVv6Xk/aEgHGO7o03F0nuYVBPHGcDWNGeX/cbkSYeH14ICpu6SyhW6Igof+d/pckJ7 QV4zISFPquhcK4hMbsrnD2Xa8WGj14ITZR X-Received: by 2002:a17:902:ecc6:b0:2aa:e817:1bd3 with SMTP id d9443c01a7336-2ab505bb034mr94688145ad.29.1771213488652; Sun, 15 Feb 2026 19:44:48 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [RFC PATCH 05/13] target/arm: Move kvm test out of cpu_arm_set_sve Date: Mon, 16 Feb 2026 13:44:24 +1000 Message-ID: <20260216034432.23912-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216034432.23912-1-richard.henderson@linaro.org> References: <20260216034432.23912-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::62b; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1771213583355158500 Content-Type: text/plain; charset="utf-8" Introduce a set of stub property callbacks for when we really don't want to be able to enable SVE. Register the real or stub funtions in aarch64_add_sve_properties depending on whether or not SVE is available. Adjust aarch64_a64fx_initfn to initialize the set of supported vector sizes before calling aarch64_add_sve_properties. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu64.c | 48 ++++++++++++++++++++++++++++++++++++------ target/arm/tcg/cpu64.c | 2 +- 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index 0116b6cc88..38d06af49f 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -292,6 +292,30 @@ static void cpu_arm_set_vq(Object *obj, Visitor *v, co= nst char *name, vq_map->init |=3D 1 << (vq - 1); } =20 +static void prop_bool_get_false(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + bool value =3D false; + visit_type_bool(v, name, &value, errp); +} + +static void prop_bool_set_false(Object *obj, Visitor *v, const char *name, + void *opaque, Error **errp) +{ + bool value; + + if (visit_type_bool(v, name, &value, errp) && value) { + error_setg(errp, "'%s' feature not supported by %s on this host", + name, current_accel_name()); + } +} + +static void prop_add_stub_bool(Object *obj, const char *name) +{ + object_property_add(obj, name, "bool", prop_bool_get_false, + prop_bool_set_false, NULL, NULL); +} + static bool cpu_arm_get_sve(Object *obj, Error **errp) { ARMCPU *cpu =3D ARM_CPU(obj); @@ -301,12 +325,6 @@ static bool cpu_arm_get_sve(Object *obj, Error **errp) static void cpu_arm_set_sve(Object *obj, bool value, Error **errp) { ARMCPU *cpu =3D ARM_CPU(obj); - - if (value && kvm_enabled() && !kvm_arm_sve_supported()) { - error_setg(errp, "'sve' feature not supported by KVM on this host"= ); - return; - } - FIELD_DP64_IDREG(&cpu->isar, ID_AA64PFR0, SVE, value); } =20 @@ -439,7 +457,23 @@ void aarch64_add_sve_properties(Object *obj) ARMCPU *cpu =3D ARM_CPU(obj); uint32_t vq; =20 - object_property_add_bool(obj, "sve", cpu_arm_get_sve, cpu_arm_set_sve); + /* + * For hw virtualization, we have already probed the set of vector + * lengths supported. If there are none, the host doesn't support + * SVE at all. In which case we register a stub property, to allow + * -cpu max,sve=3Doff + * to always be valid. + * + * For TCG, this function is only called for cpu models which + * support SVE. The error message in the stub is written + * assuming host virtualiation is being used. + */ + if (cpu->sve_vq.supported) { + object_property_add_bool(obj, "sve", cpu_arm_get_sve, cpu_arm_set_= sve); + } else { + assert(!tcg_enabled()); + prop_add_stub_bool(obj, "sve"); + } =20 for (vq =3D 1; vq <=3D ARM_MAX_VQ; ++vq) { char name[8]; diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index fa80e48d2b..84857fb706 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -524,10 +524,10 @@ static void aarch64_a64fx_initfn(Object *obj) cpu->gic_pribits =3D 5; =20 /* The A64FX supports only 128, 256 and 512 bit vector lengths */ - aarch64_add_sve_properties(obj); cpu->sve_vq.supported =3D (1 << 0) /* 128bit */ | (1 << 1) /* 256bit */ | (1 << 3); /* 512bit */ + aarch64_add_sve_properties(obj); =20 cpu->isar.reset_pmcr_el0 =3D 0x46014040; =20 --=20 2.43.0 From nobody Sun Apr 12 04:36:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1771213557; cv=none; d=zohomail.com; s=zohoarc; b=bJX8IVfbtSST2nyqlkjD/WgLkobyXOT7RCIHVEPoDRvpBEES95DAuwb5XGajdaDdNQGKKPqn6XdXM7qO+akxjU64zHaTzerctr1u1EOotcJ2T7KTC2Dx/Jx4FCUac8dQoHhwzLd201msxfW162m1d4yWFKuRGrOXMN4qbrtz4Oo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771213557; 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=wbaWufcL2e5tEtCZHFxuRaX3s02e+nS0+Goels1wiTo=; b=cJ1y/xFlH0Vi+n0xFjfp4F3VOlz0APcCQD6S8Jt3Cquvme9tZsFkdnzD7+lf1VMNjKdVmYCiVkb4PmsvoAxWuoKwsb18ok8E5rx2ia01F9YO5H9yXkhI295ZqLN1ICm7com/zHTvH0WLml8Vwq4mnfHiV9Pc4hF2o7bR9GcV6rY= 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 1771213557305889.7566846239996; Sun, 15 Feb 2026 19:45:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vrpXa-0002Xs-Qz; Sun, 15 Feb 2026 22:44:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vrpXZ-0002XO-DQ for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:53 -0500 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vrpXY-0002Qg-0Q for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:53 -0500 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-2a79ded11a2so17386605ad.3 for ; Sun, 15 Feb 2026 19:44:51 -0800 (PST) Received: from stoup.. ([2401:d002:dc0f:2100:4a1:428a:70f2:5844]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad1aadca84sm53294155ad.70.2026.02.15.19.44.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Feb 2026 19:44:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1771213491; x=1771818291; 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=wbaWufcL2e5tEtCZHFxuRaX3s02e+nS0+Goels1wiTo=; b=xzsnB34SneBwnNatga5TfxJzvv9HcssmGhM/t48DCqCT26sCc1JGagjkam/UNf/tpz AF/hcrAqS3KiqL+WTIaz8bFivpQFb/bx0vvYwoRrLMNF0wNpY4wE7y/8JTv6fyqCclw+ M9MhowaezAUsGkb4o02nzBxLYSlubXkIvHs6zNWw9qU7x0xEge3zDnOBtDFGsVegKjPz wxMbqgQ2GhUYVVE5JtUfCLmD2KrchBKIZseZx/sC2XDALYdMBE+Y34ZrldXSixXSaiU7 6wStlnJef3wbLUYJm6g7VJ/jiy6QGlI9LUOn5X6CKMzY4+EVBsGqj0p2xfNtc8C0CCN5 ZWew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771213491; x=1771818291; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=wbaWufcL2e5tEtCZHFxuRaX3s02e+nS0+Goels1wiTo=; b=q6vW3fpicMBixTSAQqeknx26h+hkN1hWCY9Pj52JyjjH21B8wZVhd85g41rMOPrFRx N/4DZnHRWmU7vEmJTrbFhk9hI7Nx3wKbw5EXMNIItBsDSwLg5MqH9Bwr6xoL9JdRCzUw /UOARK/Udid9f7bMLih1p4n5lAZeFZEv9tYiAQXwVJsleYpWaGESURNpVTIM1Jzql0O5 ShoDGmvF3tcam1Y5GJF/8fGuALhYqvolIT59qAPPtd59BcauLYq+3SSjkRhWgkfGUwTa KGT2beGR2OyVjXIG9mGdANAOhEjsjsth7VAFepXM5w2j04AB3feIdE1II7S8PTTKsu11 UThw== X-Gm-Message-State: AOJu0YyodHmUKlnaPXuUyr9y2vyQDsGp1Sb3xKoe9XosQv8IgMeW10bf VqHN9yB2XMFXNXE/SHIZl17ZKGkaQIfJq26PV7T0RkwmI5u77DCjV/mGvHIMR7V+JJtXmzMxW4g /gpEgBNc= X-Gm-Gg: AZuq6aK3eBnk8K6Tuqa4vreV2VYBMCbNwIbAUX/vk8SnGYChyK3wErQSwyQOxBcVOSK 2txukbyCqz46R1bS2tJcBnyXiuo0HxwFVXenK09+DcQf+YFvyhg7As/NUanIktVs2Nj8qVBQB7y ec5NXk5e/EBS6SMttaynTfaCJShmdqVbUhP6J867z/5Y/QDecwmPSa9ykHa8TLImmGn3KV5qlDL oBd2WTW+lz315GN4PQuZaUcAfmK67UgWvMR8BmWPk74J+b9SOFLP8XizdHFtffPFavSiq3rQlMs K7bPsesu/xQnMX07OTV2GgjxLEkEY657OTclurhaepW3BkrcYg8N+d0mrVBOAJZw0qEqmMkVjA5 TlChqFSR5ZiCjdAXUekQ1Gsdn91TDYodbX8RvEBUcVq368NWfdUCzFCqoY86fmDclosS9OGQjHw C4rRkFsLcKDLl7UawTQryic7CQcHrtQM5b X-Received: by 2002:a17:903:22d2:b0:2aa:e6c1:cea1 with SMTP id d9443c01a7336-2ab50506bbdmr88481665ad.17.1771213490551; Sun, 15 Feb 2026 19:44:50 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [RFC PATCH 06/13] target/arm: Drop kvm_arm_sve_supported Date: Mon, 16 Feb 2026 13:44:25 +1000 Message-ID: <20260216034432.23912-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216034432.23912-1-richard.henderson@linaro.org> References: <20260216034432.23912-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::631; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x631.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1771213559199158500 Content-Type: text/plain; charset="utf-8" This function has only one real use, so inline it and drop the stubs. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/kvm_arm.h | 12 ------------ target/arm/kvm-stub.c | 5 ----- target/arm/kvm.c | 9 +-------- 3 files changed, 1 insertion(+), 25 deletions(-) diff --git a/target/arm/kvm_arm.h b/target/arm/kvm_arm.h index 97549766ea..cee06b5f0b 100644 --- a/target/arm/kvm_arm.h +++ b/target/arm/kvm_arm.h @@ -176,13 +176,6 @@ bool kvm_arm_aarch32_supported(void); */ bool kvm_arm_pmu_supported(void); =20 -/** - * kvm_arm_sve_supported: - * - * Returns true if KVM can enable SVE and false otherwise. - */ -bool kvm_arm_sve_supported(void); - /** * kvm_arm_mte_supported: * @@ -208,11 +201,6 @@ static inline bool kvm_arm_pmu_supported(void) return false; } =20 -static inline bool kvm_arm_sve_supported(void) -{ - return false; -} - static inline bool kvm_arm_mte_supported(void) { return false; diff --git a/target/arm/kvm-stub.c b/target/arm/kvm-stub.c index f2de36aef3..f1d0ca09e6 100644 --- a/target/arm/kvm-stub.c +++ b/target/arm/kvm-stub.c @@ -37,11 +37,6 @@ bool kvm_arm_pmu_supported(void) return false; } =20 -bool kvm_arm_sve_supported(void) -{ - return false; -} - bool kvm_arm_mte_supported(void) { return false; diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 464356989b..7724609b28 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -246,7 +246,6 @@ static int get_host_cpu_reg(int fd, ARMHostCPUFeatures = *ahcf, =20 static uint32_t kvm_arm_sve_get_vls(int fd) { - /* Only call this function if kvm_arm_sve_supported() returns true. */ uint64_t vls[KVM_ARM64_SVE_VLS_WORDS]; struct kvm_one_reg reg =3D { .id =3D KVM_REG_ARM64_SVE_VLS, @@ -298,7 +297,7 @@ static bool kvm_arm_get_host_cpu_features(ARMHostCPUFea= tures *ahcf) * Ask for SVE if supported, so that we can query ID_AA64ZFR0, * which is otherwise RAZ. */ - sve_supported =3D kvm_arm_sve_supported(); + sve_supported =3D kvm_check_extension(kvm_state, KVM_CAP_ARM_SVE); if (sve_supported) { init.features[0] |=3D 1 << KVM_ARM_VCPU_SVE; } @@ -1909,11 +1908,6 @@ bool kvm_arm_el2_supported(void) return kvm_check_extension(kvm_state, KVM_CAP_ARM_EL2); } =20 -bool kvm_arm_sve_supported(void) -{ - return kvm_check_extension(kvm_state, KVM_CAP_ARM_SVE); -} - bool kvm_arm_mte_supported(void) { return kvm_check_extension(kvm_state, KVM_CAP_ARM_MTE); @@ -1968,7 +1962,6 @@ int kvm_arch_init_vcpu(CPUState *cs) cpu->kvm_init_features[0] |=3D 1 << KVM_ARM_VCPU_PMU_V3; } if (cpu_isar_feature(aa64_sve, cpu)) { - assert(kvm_arm_sve_supported()); cpu->kvm_init_features[0] |=3D 1 << KVM_ARM_VCPU_SVE; } if (cpu_isar_feature(aa64_pauth, cpu)) { --=20 2.43.0 From nobody Sun Apr 12 04:36:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1771213533; cv=none; d=zohomail.com; s=zohoarc; b=eO1dhF7KW1hBhe75Z6RBwB3gi5zfJEKVfPf6fVetBXrcm4EYhHCSTH41otbYODIkNuM7JS5sxxCPpP8KUicmlWNjljfUmvXZzVEAXfoHl5AnetAD463Vxz68qMk5fDh33JhsomnjAAkSYjDKHEeowjU+JNWifybIezceF6r+zn8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771213533; 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=P+JiQhGFIecDO5oCQASMdaCHlvyW+snKBIRmy6tjygk=; b=ncbMRFamvXmVTix7o4K9BprdulBiyqNTu7HIQwYVvHZyHjfpJZH8ib7hoAl+ocm1CbbgCo0p93bqvondSpk4i1pcdaBUiguczEbTFC1XR4ukGrIm2zKoaf75r3/No5Zi2b5VkuJpHEX+2E+vBBx1W1iwUfw+9I21AD344MdX3io= 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 1771213533649718.2094625128375; Sun, 15 Feb 2026 19:45:33 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vrpXc-0002Yb-Pi; Sun, 15 Feb 2026 22:44:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vrpXb-0002Xz-DY for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:55 -0500 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vrpXa-0002Qx-2Q for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:55 -0500 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2ab232cc803so12309515ad.3 for ; Sun, 15 Feb 2026 19:44:53 -0800 (PST) Received: from stoup.. ([2401:d002:dc0f:2100:4a1:428a:70f2:5844]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad1aadca84sm53294155ad.70.2026.02.15.19.44.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Feb 2026 19:44:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1771213493; x=1771818293; 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=P+JiQhGFIecDO5oCQASMdaCHlvyW+snKBIRmy6tjygk=; b=Z8T1cD1hwF/iSdt0aCWiTc3PJf2XdQ7JZ2IhtfMRy3Op7w+YSrsEQpPMAoMrFgIu47 2LZbofDUAtHWfhRCWGaHWrxVUy/JNvGipckEeyOw8hhyu+Y6B551oVMHh2+PJru/m9Nm OSd7OG0u4OIBQR7QC0DrqG3ccHeIW66ed8gR85PKWMJYEAGNg2QiZisL1GQjg0BIc4H7 PoG/2xk8WXCHgHRMtVyVjcDrJh33j+6Ue+IrmI8+BaAntOhzsrqnHDLfs9D87U5C7iTL /BsPffkGCdDpqQvSlSfg4/hEyabDHAm8JHd9JCk2vLlVhF37OHwRNrOz2HkSgJBvsKrf /2NQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771213493; x=1771818293; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=P+JiQhGFIecDO5oCQASMdaCHlvyW+snKBIRmy6tjygk=; b=g/XEdma+Pu9OfIqCtaBdSlQc3dHyNGIVKJrgmJTwHOgZpS+hJdWc3Af5yEHB4UQcjS ISvcskvSGhmNcpDopHnlOqkfz+my8fR1WMv36Az9AX2T113j9vSOW/FkiEzkMUbiS+r4 WqyEoLLc235Sxpnr9QGfoyRxjyqdgqJRV3/zoz+ZO+fXUJTiJKPIpXWKRl+/gTEt3QnT VuqwmTq+pPP18lF+L+BXTvlowZWKHfpOCRQUfBk0tKJ1+Rdya38klNr7EGRcOnQFoYMz AKRBgCcYlIYV6oObEvZZ/IwBrV5UouFOwOPo2cOJDKHo1YrRcu6teD+f1KaTM8aTJTbx lVXw== X-Gm-Message-State: AOJu0YyO81P3XwujxfueYzQRbCAVbcYOXB3IynXDHhAmNF1CVRf70QbQ THG5r29uCvMT+Plqhl5QY69h7uZRVsRxgiTrZkzRFeyjlAgOhTjzob0crGX78f8Fgw+wIiSslYO RbunZfsk= X-Gm-Gg: AZuq6aJZFubisdLuhV26A6NQWYXEJnocO6qW+bjvFl5W3rCs5IK1n48Qvk2UpwmE+Ub RwRp1gdcOskfwsg+DinhwX1Hp1M6Wlj4AOERzv8k6yXt1DuaIGx/Q094ydD4z31h0KliTtILavz XKaxmOJs8tLcDQDeBC7vIqK937FM6UbJiCNayqCiK/snoypkhKinT541ZbvMRh97Hp5rdsdtkwE y4bpS4/zAt46FMk4CB7XKKNGpvm/HvPVqvSyE1xiaaqIPFtVbXEmiab2QZv7kSLGTgbqdukCe4d efCvCyjiawcAmwgH/OEh3No3LvM1vgMr10CJShbtQT8JpEuR6UTmRK5pAU3nKI7EfhjhMyOT5M3 RVQl6jnHFdn1y8ZJUC9HEzSTHbgSKLCaz4X4QFsr4wMdmeDq67enudOSBvL5GVZ/6wgoBxwqzO2 KDvZhhbETtwa3vRLfmZIPg/HL8DD3Lt+uN X-Received: by 2002:a17:903:38cd:b0:2a0:c1e4:e25 with SMTP id d9443c01a7336-2ad1759ac22mr84887255ad.54.1771213492650; Sun, 15 Feb 2026 19:44:52 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [RFC PATCH 07/13] target/arm: Remove kvm test in arm_set_pmu Date: Mon, 16 Feb 2026 13:44:26 +1000 Message-ID: <20260216034432.23912-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216034432.23912-1-richard.henderson@linaro.org> References: <20260216034432.23912-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::62b; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1771213535232154100 Content-Type: text/plain; charset="utf-8" In kvm_arm_get_host_cpu_features, we only set ARM_FEATURE_PMU if kvm_arm_pmu_supported. In arm_cpu_post_init we only register the "pmu" property if ARM_FEATURE_PMU. Therefore, if kvm is enabled, we can only arrive in arm_set_pmu if kvm_arm_pmu_supported. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 7542444b18..16ce5f300d 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1218,10 +1218,6 @@ static void arm_set_pmu(Object *obj, bool value, Err= or **errp) ARMCPU *cpu =3D ARM_CPU(obj); =20 if (value) { - if (kvm_enabled() && !kvm_arm_pmu_supported()) { - error_setg(errp, "'pmu' feature not supported by KVM on this h= ost"); - return; - } set_feature(&cpu->env, ARM_FEATURE_PMU); } else { unset_feature(&cpu->env, ARM_FEATURE_PMU); --=20 2.43.0 From nobody Sun Apr 12 04:36:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1771213576; cv=none; d=zohomail.com; s=zohoarc; b=W0l1RGOyl48kxy5wiqCUz5+2mf0BNn2pylSVeLzeKPV+w57V3VPANicFgm/VSO/sRPBKWwlgdK4wOsUXMdlAQqCR0p7FB1AbF1c3SHcqaDbKEvI6bcdZkmgJCMCshwo0XeMUAm1d5tfwS9c2cnGSd2iJ73V/yEtdYWRlH/qc73g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771213576; 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=lAX9q0FAVjvqhmCaLqgZcT2Y1IPbyARjOjUjg0Oyqjc=; b=KSnwAzU+XxzpiBLw+NjlN81XM3Hy1skwU/AMplXAG7SLvMoU9v9Ps9wyxkNgl/4UM7bwG1NSKHZn0lRyOC4gTyLxDAeB0gNnEuMLXVa4EGaDSGSwwlrRAkncw7nOXGBjEl78dtnJz+Dt/W0cxWz5S808cvIndgZjJV0tYiKYX9A= 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 1771213576951315.5778831154237; Sun, 15 Feb 2026 19:46:16 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vrpXf-0002Z6-71; Sun, 15 Feb 2026 22:44:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vrpXd-0002Yi-PA for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:57 -0500 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vrpXc-0002S0-9A for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:57 -0500 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-2a963f49234so10283115ad.1 for ; Sun, 15 Feb 2026 19:44:55 -0800 (PST) Received: from stoup.. ([2401:d002:dc0f:2100:4a1:428a:70f2:5844]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad1aadca84sm53294155ad.70.2026.02.15.19.44.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Feb 2026 19:44:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1771213495; x=1771818295; 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=lAX9q0FAVjvqhmCaLqgZcT2Y1IPbyARjOjUjg0Oyqjc=; b=Aa1NimMHmrIuVZfoL/JWcwz5dpKQw1kkBoVUGEmmm+AV4SFfwe5Af82vgsw5MmY1l/ CAEFQwQ4Ktlmk7UL4YyZXOd5GAykGf4GxVlPBjCmn48KfBBcBXc5CXL2cC1ml44gFReG S4/8y1yqulpSjkG1p1XIIejMgDlCtJHVmsUkvdt+E5jtJZrcSQaPaOpfE0tWh1w9PEc2 W1x4iVtAqR94NPGKvQGXJUEifIdmK6A82M3FRo8t52Kyq1FxGDJnl7e6YsfLirVL/M4+ UjC5YD9cOU79+mv9JypyAJEiwszFjuW+o1Dv5GpTB5R6EBpuO/fObZYHgjqeXkboh8Ey eTrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771213495; x=1771818295; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=lAX9q0FAVjvqhmCaLqgZcT2Y1IPbyARjOjUjg0Oyqjc=; b=fCBVgTkfjJx2OrMamSldFpdXSLxlOCrJBS0fa6QIXGtgFY7jUkxM8Uj6IWcvIM6SVM WBwn3tJfdGOdwLvFT/Wvq3Cji5g1NToWVRgcLf73RK4MhaX95SnDYN8E/BuXEWxjDB8B Ev2Db+mLjs8P4PSGQuZspAnapJikDYxEpSRPjt/QoeafWsow875cYPuZn3ilv9kqLfyb Rq27ndlx/fuULuUzywT+TnIxyCEba66RHb5ol4AJRZvI7I7LdZaoVexTT42mCD3mqtfy QZO7YXQQEVUXZhR+pOtV9Da6ijLpu4E6+2DDTI5ywJ+UzsxXQL9HgDLGgH/ZtnwaJi9X iBOg== X-Gm-Message-State: AOJu0YxArdtgZWGezYmXkjyrwYgzxNUpFb5U2oDzXfoGg1M6KP/oQVe0 dYKsRCSTC1FVmdkmG8IqWmHww2kjTejOm5cBUy4iqcYT4uwbVZb9/uMrNqJpNRXQaPBQ2g14WO0 rclLmdCY= X-Gm-Gg: AZuq6aIUJAE1jxCPIkKxGPiB3y1CevVymBCgKQRt8g41496ftErOjk+1tnquaTbcmuQ k+F/FLovMETem9ESEXmuOtvnqbal5c7L07vOG3WDZACiSYcQ8sgvuqf5iN7hBNiryDlimsHzXBs 4Fjiv+W7JCQiafZmVlqDjP8J5xZqTuBPjMOLbZsMjd1JBCvXmgku6y4PS+JxQjJPce95F2Swley Z00mceD1RLQiYy3SwnoxWBYyOGfjZbHubVgk0X8KLWUbbfF1J76cdKzz2NcVtmhXgPRgOwRi/SZ clKTXchpjJpCOhUWsFgd5m9yK/HT33PicAodoYPYekUiqCSLMsngUeal/QEQiCZfueI24w+G7GY 1NtUOL1mWMtWZeU1w9WBwWirDRO/tDnGluNBndEs/NDzSOrpEJvfNVEUVlehNFQ8VT0XMG0hQmD Wud1rBv7u+YPmxu/XfWqYapJ2NcP/Sk3ll X-Received: by 2002:a17:902:ce89:b0:2aa:d289:2d95 with SMTP id d9443c01a7336-2ab50559e20mr95416455ad.17.1771213494749; Sun, 15 Feb 2026 19:44:54 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [RFC PATCH 08/13] target/arm: Drop kvm_arm_pmu_supported Date: Mon, 16 Feb 2026 13:44:27 +1000 Message-ID: <20260216034432.23912-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216034432.23912-1-richard.henderson@linaro.org> References: <20260216034432.23912-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::62d; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1771213579932154100 Content-Type: text/plain; charset="utf-8" This function has only one use, so inline it and drop the stubs. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/kvm_arm.h | 13 ------------- target/arm/kvm-stub.c | 5 ----- target/arm/kvm.c | 7 +------ 3 files changed, 1 insertion(+), 24 deletions(-) diff --git a/target/arm/kvm_arm.h b/target/arm/kvm_arm.h index cee06b5f0b..82ac2aae46 100644 --- a/target/arm/kvm_arm.h +++ b/target/arm/kvm_arm.h @@ -168,14 +168,6 @@ void kvm_arm_steal_time_finalize(ARMCPU *cpu, Error **= errp); */ bool kvm_arm_aarch32_supported(void); =20 -/** - * kvm_arm_pmu_supported: - * - * Returns: true if KVM can enable the PMU - * and false otherwise. - */ -bool kvm_arm_pmu_supported(void); - /** * kvm_arm_mte_supported: * @@ -196,11 +188,6 @@ static inline bool kvm_arm_aarch32_supported(void) return false; } =20 -static inline bool kvm_arm_pmu_supported(void) -{ - return false; -} - static inline bool kvm_arm_mte_supported(void) { return false; diff --git a/target/arm/kvm-stub.c b/target/arm/kvm-stub.c index f1d0ca09e6..169ef5f206 100644 --- a/target/arm/kvm-stub.c +++ b/target/arm/kvm-stub.c @@ -32,11 +32,6 @@ bool kvm_arm_aarch32_supported(void) return false; } =20 -bool kvm_arm_pmu_supported(void) -{ - return false; -} - bool kvm_arm_mte_supported(void) { return false; diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 7724609b28..ccffa40900 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -319,7 +319,7 @@ static bool kvm_arm_get_host_cpu_features(ARMHostCPUFea= tures *ahcf) 1 << KVM_ARM_VCPU_PTRAUTH_GENERIC); } =20 - if (kvm_arm_pmu_supported()) { + if (kvm_check_extension(kvm_state, KVM_CAP_ARM_PMU_V3)) { init.features[0] |=3D 1 << KVM_ARM_VCPU_PMU_V3; pmu_supported =3D true; features |=3D 1ULL << ARM_FEATURE_PMU; @@ -542,11 +542,6 @@ void kvm_arm_add_vcpu_properties(ARMCPU *cpu) "Set off to disable KVM steal time."); } =20 -bool kvm_arm_pmu_supported(void) -{ - return kvm_check_extension(kvm_state, KVM_CAP_ARM_PMU_V3); -} - int kvm_arm_get_max_vm_ipa_size(MachineState *ms, bool *fixed_ipa) { KVMState *s =3D KVM_STATE(ms->accelerator); --=20 2.43.0 From nobody Sun Apr 12 04:36:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1771213554; cv=none; d=zohomail.com; s=zohoarc; b=bQDMN+Ho8mKCk7E25Hruqtxus8dkAIULKqtnQ3lAVv01AZekhH0aab/BkPCwhvdOSNuDwP0D1XGJi/Cs57CNucweAVMAzc/ekwoJchlBKRpKhEBJ/TWoIina/k+O4CYfM7U57NPTZkqM1dhV22dRU9KieLCxD8CRD1+NClOOa78= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771213554; 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=Nr30QrVHuiZUYlgVuaIXnVQfwgC+Xsfy6MjmOV0NUmo=; b=cgX475H/ytmJJOCgCFVBbSaRlSFlSb4iMwKpbrX/ZzKUMT4sOO4/fN0YAFS+UnK12bGtxR5frvY7iV96VfD/J5AMkw6yYfkptyIYn1R5YxmPSS1u/cxlNqCG9NyOIuF31dZFVT1DZml1VdHtL/S8smBl5V/9Ri0ykuVLlMUaMo4= 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 1771213554957594.6733312031178; Sun, 15 Feb 2026 19:45:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vrpXi-0002ZZ-Lj; Sun, 15 Feb 2026 22:45:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vrpXg-0002Z7-8H for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:45:00 -0500 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vrpXe-0002SA-9a for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:44:59 -0500 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-824a3ba5222so1458308b3a.2 for ; Sun, 15 Feb 2026 19:44:57 -0800 (PST) Received: from stoup.. ([2401:d002:dc0f:2100:4a1:428a:70f2:5844]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad1aadca84sm53294155ad.70.2026.02.15.19.44.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Feb 2026 19:44:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1771213497; x=1771818297; 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=Nr30QrVHuiZUYlgVuaIXnVQfwgC+Xsfy6MjmOV0NUmo=; b=rK7foNSmxhZ/btc9aSsGQecveeEJpag92txQ8F4jYGwUZfuxHTsVmXg/7zavIwcMog LIxxa3YM9XwnTXG9f8bLntldSLxBVrjRgb+w1b55HdylLyYnpjElICobzQvOY/vtqyXE SqBECBuunnn6/yQwed3q82zjbFkt+LrVej7NUSe7yjflHG12DPOUxMilQJmpwfrb32HE bOB61ZcphQfoM94hlKmpnfcRLTx8nk1xPOYb6MkWcr7hGm2j2eThPVv6OnoI+8R8L/P+ Z+iBTorQKdYlePprk0zhIgY3MzPux9WzWQd52N2Lj6a7AKZyecyr8ij85Ns+R7qMOEd0 dD3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771213497; x=1771818297; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Nr30QrVHuiZUYlgVuaIXnVQfwgC+Xsfy6MjmOV0NUmo=; b=Pel835DFBztMYqJBBCVIdXjYwD8HxaeAHR6uimRJKthVRlJ48PcTk8ELLDp+jF5yVG Y6W9S2evScS9Zx+Eon1hOjf875vg4X2zAfXInYB2Mo0q63aSFVWuOFTgehsUG64tiOWR /x6FVsrlJEnptwjAGEWIwIWezLcAFzAzv+212lLDfHMvR0gAysK8BT7mRtFecfWTHgKo kmbD3FYp2r/OK82ro4fztJ0eBAEoRKGCBshwyJPSgZCUtxxh7R8ynPZiGtNy5WB7qnsi AxgeDSNMhw2ih2x2vCPFXUoAuOPcfBCmiiBneuogxbB2dJPagnPzA+n0BsckqCHiMpcE DxlA== X-Gm-Message-State: AOJu0YxVW15muELUGbf1kw6WQ9O9mU04BumvanbZwlUanDKUBGPZP2Vw 16PDevxOCqAaY8LD1VfW904eynpbQ1TPSubEaW451oZRmJTcpL2g+UDtzTuSAoMubQvP/1Q7jyZ LeYHPbJ4= X-Gm-Gg: AZuq6aLm5GYW3oJZt7FHeEjc/+GQ4c+Z+AuXD5dxQ9Ixg1CSu3SLmil1Tw0NDPdKOjY RcB2Rw3rjcN8JTdtXVN2s1M+vpW5REt/lQD0/vVleUiqmd6nZSOS0ZmorJYiTUIfWm1gM7F98r3 mQk3CO/bdash1AJjpQ32npIewW9EAPZWkCQvjqG4qSXZnconvwZ2/ZagbMeh5q0EK4ZToYad9ep J3GLPX03X2I2/mQlm9wZout+RPxB06CrdjM52V9OqLRPOMMYUK+Ps00YTuU4Evn0Uni2J4nIt5z 53RDBp4q0EmGgf86hS0bipmfIlukBvEsdsAQr4ci6+TU2rB3LcXSw6NaUXnXXN9wa97iDzQD6HA Iktaw6qXyaigMPPr1/tB+UbKhavr6OSEk/CZ3WwEx2HltlHE1iJX/m8eW3BR9kB4K8x7VTfRrvb HvpO/lGEMnPpeq5a9YXeWFQMhs4ipMUrgo X-Received: by 2002:a05:6a21:4d8d:b0:35d:7f7:4aac with SMTP id adf61e73a8af0-3948398f0b5mr5536808637.47.1771213496754; Sun, 15 Feb 2026 19:44:56 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [RFC PATCH 09/13] target/arm: Detect SME in kvm_arm_get_host_cpu_features Date: Mon, 16 Feb 2026 13:44:28 +1000 Message-ID: <20260216034432.23912-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216034432.23912-1-richard.henderson@linaro.org> References: <20260216034432.23912-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::42d; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1771213557342158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/kvm.c | 54 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 3 deletions(-) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index ccffa40900..979265a810 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -61,6 +61,7 @@ typedef struct ARMHostCPUFeatures { uint64_t features; uint32_t target; uint32_t sve_vq_supported; + uint32_t sme_vq_supported; const char *dtb_compatible; } ARMHostCPUFeatures; =20 @@ -273,6 +274,36 @@ static uint32_t kvm_arm_sve_get_vls(int fd) return vls[0] & MAKE_64BIT_MASK(0, ARM_MAX_VQ); } =20 +static uint32_t kvm_arm_sme_get_vls(int fd) +{ + uint64_t vls[KVM_ARM64_SME_VLS_WORDS]; + struct kvm_one_reg reg =3D { + .id =3D KVM_REG_ARM64_SME_VLS, + .addr =3D (uint64_t)&vls[0], + }; + uint32_t vq =3D 0; + int ret; + + ret =3D ioctl(fd, KVM_GET_ONE_REG, ®); + if (ret) { + error_report("failed to get KVM_REG_ARM64_SME_VLS: %s", + strerror(errno)); + abort(); + } + + for (int i =3D KVM_ARM64_SME_VLS_WORDS - 1; i >=3D 0; --i) { + if (vls[i]) { + vq =3D 64 - clz64(vls[i]) + i * 64; + break; + } + } + if (vq > ARM_MAX_VQ) { + warn_report("KVM supports vector lengths larger than QEMU can enab= le"); + } + return vls[0] & MAKE_64BIT_MASK(0, ARM_MAX_VQ); +} + + static bool kvm_arm_get_host_cpu_features(ARMHostCPUFeatures *ahcf) { /* Identify the feature bits corresponding to the host CPU, and @@ -282,6 +313,7 @@ static bool kvm_arm_get_host_cpu_features(ARMHostCPUFea= tures *ahcf) */ int fdarray[3]; bool sve_supported; + bool sme_supported; bool el2_supported; bool pmu_supported =3D false; uint64_t features =3D 0; @@ -302,9 +334,13 @@ static bool kvm_arm_get_host_cpu_features(ARMHostCPUFe= atures *ahcf) init.features[0] |=3D 1 << KVM_ARM_VCPU_SVE; } =20 - /* - * Ask for EL2 if supported. - */ + /* Similarly for SME... */ + sme_supported =3D kvm_check_extension(kvm_state, KVM_CAP_ARM_SME); + if (sme_supported) { + init.features[0] |=3D 1 << KVM_ARM_VCPU_SME; + } + + /* ... and EL2. */ el2_supported =3D kvm_arm_el2_supported(); if (el2_supported) { init.features[0] |=3D 1 << KVM_ARM_VCPU_HAS_EL2; @@ -449,6 +485,17 @@ static bool kvm_arm_get_host_cpu_features(ARMHostCPUFe= atures *ahcf) /* Read the set of supported vector lengths. */ arm_host_cpu_features.sve_vq_supported =3D kvm_arm_sve_get_vls= (fd); } + + if (sme_supported) { + /* + * While ID_AA64SMFR0_EL1 is always accessible, if RAZ, + * it's unused if !sme_supported. + */ + err |=3D get_host_cpu_reg(fd, ahcf, ID_AA64SMFR0_EL1_IDX); + + /* Read the set of supported vector lengths. */ + arm_host_cpu_features.sme_vq_supported =3D kvm_arm_sme_get_vls= (fd); + } } =20 kvm_arm_destroy_scratch_host_vcpu(fdarray); @@ -496,6 +543,7 @@ void kvm_arm_set_cpu_features_from_host(ARMCPU *cpu) cpu->dtb_compatible =3D arm_host_cpu_features.dtb_compatible; cpu->isar =3D arm_host_cpu_features.isar; cpu->sve_vq.supported =3D arm_host_cpu_features.sve_vq_supported; + cpu->sme_vq.supported =3D arm_host_cpu_features.sme_vq_supported; env->features =3D arm_host_cpu_features.features; } =20 --=20 2.43.0 From nobody Sun Apr 12 04:36:32 2026 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 1771213579392661.4099481971166; Sun, 15 Feb 2026 19:46:19 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vrpXl-0002d2-UJ; Sun, 15 Feb 2026 22:45:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vrpXk-0002bd-0y for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:45:04 -0500 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vrpXg-0002SR-68 for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:45:03 -0500 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-2a9296b3926so17971705ad.1 for ; Sun, 15 Feb 2026 19:44:59 -0800 (PST) Received: from stoup.. ([2401:d002:dc0f:2100:4a1:428a:70f2:5844]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad1aadca84sm53294155ad.70.2026.02.15.19.44.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Feb 2026 19:44:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1771213499; x=1771818299; 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=jjMqPAixxcwcEgflWsrUzbIhGAUlKCgA6kncWkqtUYA=; b=CoHzRVqHuLpR2/vPuNeZC8CLoBxoPAh3lPYVpHRwgCKV09lz3F12iwCPMzMp7t7fPt 7c1j19p3GJkLi7cqCeq4rEJ4gnYfFLHyVdS+xz/fL8XGNdev6SbA+f52ykiLi+QmhnY8 EiszOQw2A1coi5Qsi7OF5GMf1pb2RNzEn4CB0dHoTzz2nPcTAHMHBHVoGhAOTUDB9fX7 QBVG4aklyRE+GhsIDWhxcbPEBbgiqeH17AtKjzf/411iwg7sJpCXjiU6zvjIAFxZ6dzY BXjZUGCgvzMhyXCmKYC1CmcyY6d+l6f7WmG2+Z6hyfIMDqysVhAlveHP0s1fSEixGrtW 9JXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771213499; x=1771818299; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=jjMqPAixxcwcEgflWsrUzbIhGAUlKCgA6kncWkqtUYA=; b=KDGvL2JuomqHxGpb9f2wScDXXKfocCVg0z6MpykdrP+aeC1nPfkzroBz4XqITHujlt Nv837q+doKP8iXruAukrxNUhdziooZo3d4UoT/wQsbWPtMigcRs4aEMLJRT86413D/UU 8GAvt7E3fWG8zWby5b55O8nCprFceLCuEqVBB1RfsxXdXW6iG613ifZL3FG+8KBrY6tC BersnV0sOlJNW+691BzeYQy+hK0fbzdr0IPprj64zMC3CO6yg0DW6TFN9wDzLL/g7mJf oONPD1v+4J8YFSkNW86gr+WsU4+dDWB9KEUIuTa5x0+ulLeUKdeLlYXhnV0+pItuw/5J 73Fg== X-Gm-Message-State: AOJu0YzmMwvC92z8Vc7ynVO3X/TWwcEiC4AcQa6wKdFZCZz86Ipb4MfB dyXH4klw+Asag+D8k0hqVsNTMxwCHJ4ZleIx1DDD2rXSVsR8QTqvoJRE4KA2B06xPsEob0Jvgz5 03dvY6dA= X-Gm-Gg: AZuq6aKuRgEl9k89MIf1LHjhoeYz+nX+xaCHjnS+MMnFVWGlxIsFqCsC/jTCQNLSCuH hEVXlorTKU4Nptx3OV2/L01oZOJM9YPPVoEYjC7aB5Kcurt5d+Ekhojh2/6u8mwxswwO+aaRkHx DyyOZmrfS202Gp65mll45FjzDVMxcU/YxrTl/8P4GqyqciehqDjvoAqTXB2yHjtzW8/1YeGCN4+ 1FyetdCidgC1GKykFrMUh2KN+VYDQUn5FrTkyNUflW6WC+3TpIFn6KAe2lRKEMaVqejlZlX6maR k2xq5L4N3rRfhqn29BYueMMjnf5vr1vo0um5PE/mOYlNVArJF1W+SUCbsjEu+EY/ql7HX9g+Ixr Wz9IMTRdTIyfesrR40yGYCdXxDF/NZKApCtZQLJEDeUg8FxP4DXEwPYJPudepQB6tihBySv9d0R OlqFnMUI2re6Q7RWeuoSDwz6eME80iyyjc X-Received: by 2002:a17:902:f791:b0:299:e031:173 with SMTP id d9443c01a7336-2ab505bafd4mr89282245ad.35.1771213498692; Sun, 15 Feb 2026 19:44:58 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [RFC PATCH 10/13] target/arm: Add vq argument to kvm_arch_{get, put}_sve Date: Mon, 16 Feb 2026 13:44:29 +1000 Message-ID: <20260216034432.23912-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216034432.23912-1-richard.henderson@linaro.org> References: <20260216034432.23912-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::62a; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1771213581298158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/kvm.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 979265a810..f6bab562a0 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -2122,16 +2122,15 @@ static int kvm_arch_put_fpsimd(CPUState *cs) * code the slice index to zero for now as it's unlikely we'll need more t= han * one slice for quite some time. */ -static int kvm_arch_put_sve(CPUState *cs) +static int kvm_arch_put_sve(CPUState *cs, uint32_t vq) { - ARMCPU *cpu =3D ARM_CPU(cs); - CPUARMState *env =3D &cpu->env; + CPUARMState *env =3D cpu_env(cs); uint64_t tmp[ARM_MAX_VQ * 2]; uint64_t *r; int n, ret; =20 for (n =3D 0; n < KVM_ARM64_SVE_NUM_ZREGS; ++n) { - r =3D sve_bswap64(tmp, &env->vfp.zregs[n].d[0], cpu->sve_max_vq * = 2); + r =3D sve_bswap64(tmp, &env->vfp.zregs[n].d[0], vq * 2); ret =3D kvm_set_one_reg(cs, KVM_REG_ARM64_SVE_ZREG(n, 0), r); if (ret) { return ret; @@ -2139,8 +2138,7 @@ static int kvm_arch_put_sve(CPUState *cs) } =20 for (n =3D 0; n < KVM_ARM64_SVE_NUM_PREGS; ++n) { - r =3D sve_bswap64(tmp, r =3D &env->vfp.pregs[n].p[0], - DIV_ROUND_UP(cpu->sve_max_vq * 2, 8)); + r =3D sve_bswap64(tmp, &env->vfp.pregs[n].p[0], DIV_ROUND_UP(vq * = 2, 8)); ret =3D kvm_set_one_reg(cs, KVM_REG_ARM64_SVE_PREG(n, 0), r); if (ret) { return ret; @@ -2148,7 +2146,7 @@ static int kvm_arch_put_sve(CPUState *cs) } =20 r =3D sve_bswap64(tmp, &env->vfp.pregs[FFR_PRED_NUM].p[0], - DIV_ROUND_UP(cpu->sve_max_vq * 2, 8)); + DIV_ROUND_UP(vq * 2, 8)); ret =3D kvm_set_one_reg(cs, KVM_REG_ARM64_SVE_FFR(0), r); if (ret) { return ret; @@ -2240,7 +2238,7 @@ int kvm_arch_put_registers(CPUState *cs, KvmPutState = level, Error **errp) } =20 if (cpu_isar_feature(aa64_sve, cpu)) { - ret =3D kvm_arch_put_sve(cs); + ret =3D kvm_arch_put_sve(cs, cpu->sve_max_vq); } else { ret =3D kvm_arch_put_fpsimd(cs); } @@ -2306,10 +2304,9 @@ static int kvm_arch_get_fpsimd(CPUState *cs) * code the slice index to zero for now as it's unlikely we'll need more t= han * one slice for quite some time. */ -static int kvm_arch_get_sve(CPUState *cs) +static int kvm_arch_get_sve(CPUState *cs, uint32_t vq) { - ARMCPU *cpu =3D ARM_CPU(cs); - CPUARMState *env =3D &cpu->env; + CPUARMState *env =3D cpu_env(cs); uint64_t *r; int n, ret; =20 @@ -2319,7 +2316,7 @@ static int kvm_arch_get_sve(CPUState *cs) if (ret) { return ret; } - sve_bswap64(r, r, cpu->sve_max_vq * 2); + sve_bswap64(r, r, vq * 2); } =20 for (n =3D 0; n < KVM_ARM64_SVE_NUM_PREGS; ++n) { @@ -2328,7 +2325,7 @@ static int kvm_arch_get_sve(CPUState *cs) if (ret) { return ret; } - sve_bswap64(r, r, DIV_ROUND_UP(cpu->sve_max_vq * 2, 8)); + sve_bswap64(r, r, DIV_ROUND_UP(vq * 2, 8)); } =20 r =3D &env->vfp.pregs[FFR_PRED_NUM].p[0]; @@ -2336,7 +2333,7 @@ static int kvm_arch_get_sve(CPUState *cs) if (ret) { return ret; } - sve_bswap64(r, r, DIV_ROUND_UP(cpu->sve_max_vq * 2, 8)); + sve_bswap64(r, r, DIV_ROUND_UP(vq * 2, 8)); =20 return 0; } @@ -2424,7 +2421,7 @@ int kvm_arch_get_registers(CPUState *cs, Error **errp) } =20 if (cpu_isar_feature(aa64_sve, cpu)) { - ret =3D kvm_arch_get_sve(cs); + ret =3D kvm_arch_get_sve(cs, cpu->sve_max_vq); } else { ret =3D kvm_arch_get_fpsimd(cs); } --=20 2.43.0 From nobody Sun Apr 12 04:36:32 2026 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 1771213522489730.8383270113675; Sun, 15 Feb 2026 19:45:22 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vrpXs-0002jO-OQ; Sun, 15 Feb 2026 22:45:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vrpXn-0002dQ-AQ for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:45:07 -0500 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vrpXi-0002Sg-8V for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:45:05 -0500 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-2a95bfdb31eso11641875ad.3 for ; Sun, 15 Feb 2026 19:45:01 -0800 (PST) Received: from stoup.. ([2401:d002:dc0f:2100:4a1:428a:70f2:5844]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad1aadca84sm53294155ad.70.2026.02.15.19.44.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Feb 2026 19:45:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1771213501; x=1771818301; 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=z1G5iNA34KzEcs/mYmm8XYsWLt81ZFoJDv6FYs6NiaA=; b=kwi7nVc6QNCz+twvT7taGz94R89q21zSZ0wbr3R1uG0jN7BvRdf5vlSE8qC2DfKMXI OrwLnkcndNVlEvZno48kVk9sWYfkGipOMUeaHord0OWpfalA0bPe6fdM1cxf5SCq3b9E 362i9L00u6cbQxpY4ZLrwlYkrcecnYfzOI+sTSfhojIBloTQXyYFkY06QpIZ45Geuy8x Osl2Pj7I5s5sgWnMy61qiICf+mTziDKOUY7Rc7f5gUkgNW6wvlYaqwE4LjEJwZ3M77/s JhjmCRWSbSEmGi82UdDQPRHo2SBKUGmfMPRCoxb3idAQD00bJDFWqeLNIKee6VUNJlUW lxvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771213501; x=1771818301; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=z1G5iNA34KzEcs/mYmm8XYsWLt81ZFoJDv6FYs6NiaA=; b=eR6Cd59swfcYhe2g+JLfBWM3e64vK8nsbB6BWDFuhrNN8MFbmCEH99QpaSU4Qbvqa2 W2Pb0vD32N83o0xsgEkV0qHbTZLJu+5tDyqkwe1lcOP3xMwKv5velAZHrDruVFx92Pa4 Jz2QOFrCC7ui5rV64GBlecNU83tmKsZfM30vF4rb+Dzs10nia+9bKe/jX+GRhl3i49o/ jCx5c1w97dIyQ5CgMduyUJwCnvwBxg3BnNRfWr4jQsbhXe3NcnIIj7KVjouaxWu/GXTE LSiz5OnX8jCLtSoTyXjFA6AweCZv8sUJ1ZXk/sANl/W1xXknoaDlFB64DKkVJ/ZRibnc WFTg== X-Gm-Message-State: AOJu0Yzyi6G40P96tyriI0LvSRHPu7lHo7VxUZSXF83QednRl4xSWeuJ D85ZR1MsakUraYhllT5ToaRNATNB+sW+szp7DlLjGn3xiRbDT/13aVxiHi4xBlye2SThslqFZl8 X5p83hvw= X-Gm-Gg: AZuq6aKOmP+4mn72/f6Qog2fdHaTM2t/60DcMAAfDaPLRaiI0PmnwLbbsYd3/66IBP/ H6/5Hw0/G64CNp6ZnS//aur1m1EsITxLJkXXvWf2JQESe3NxPh5zXsBf9po5hElB0kxDSkxKJW/ 8hdpI29v08rjOdVg+rDSpnbZr4O7ycJm7q2EvruMKjRcaKvH+Ig+w6Op2uPgUFvaWSXYt2axcAn ZGlOKqeSCuJthVWUfZGcHAtmihAt/CvIPaWKTT56jsBITfL8R63ylwXQYoQHg+WtG/IjaP9W/mc 2fspiY9jKuHVGjFW6zi+u/RS4aYC5xHvo1oE6k7GC8D06T1mQxhD4pslhpmM0kwzeUusmcqGJDA zMoBME2znOERnXDPlQzdI2apX9QnvKuhgvfFqd5qEQImVKOgjD/kX+OeuRO7hvOga6V6QwhpI91 XjwuW80TJmA6zacDoQf8K/W3L8vM0SmIt8 X-Received: by 2002:a17:903:fb0:b0:2a9:4870:9606 with SMTP id d9443c01a7336-2ab505ca1b6mr81683365ad.42.1771213500789; Sun, 15 Feb 2026 19:45:00 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [RFC PATCH 11/13] target/arm: Add have_ffr argument to kvm_arch_{get, put}_sve Date: Mon, 16 Feb 2026 13:44:30 +1000 Message-ID: <20260216034432.23912-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216034432.23912-1-richard.henderson@linaro.org> References: <20260216034432.23912-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::630; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x630.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1771213523684158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/kvm.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index f6bab562a0..d05ad1d7e1 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -2122,7 +2122,7 @@ static int kvm_arch_put_fpsimd(CPUState *cs) * code the slice index to zero for now as it's unlikely we'll need more t= han * one slice for quite some time. */ -static int kvm_arch_put_sve(CPUState *cs, uint32_t vq) +static int kvm_arch_put_sve(CPUState *cs, uint32_t vq, bool have_ffr) { CPUARMState *env =3D cpu_env(cs); uint64_t tmp[ARM_MAX_VQ * 2]; @@ -2145,11 +2145,13 @@ static int kvm_arch_put_sve(CPUState *cs, uint32_t = vq) } } =20 - r =3D sve_bswap64(tmp, &env->vfp.pregs[FFR_PRED_NUM].p[0], - DIV_ROUND_UP(vq * 2, 8)); - ret =3D kvm_set_one_reg(cs, KVM_REG_ARM64_SVE_FFR(0), r); - if (ret) { - return ret; + if (have_ffr) { + r =3D sve_bswap64(tmp, &env->vfp.pregs[FFR_PRED_NUM].p[0], + DIV_ROUND_UP(vq * 2, 8)); + ret =3D kvm_set_one_reg(cs, KVM_REG_ARM64_SVE_FFR(0), r); + if (ret) { + return ret; + } } =20 return 0; @@ -2238,7 +2240,7 @@ int kvm_arch_put_registers(CPUState *cs, KvmPutState = level, Error **errp) } =20 if (cpu_isar_feature(aa64_sve, cpu)) { - ret =3D kvm_arch_put_sve(cs, cpu->sve_max_vq); + ret =3D kvm_arch_put_sve(cs, cpu->sve_max_vq, true); } else { ret =3D kvm_arch_put_fpsimd(cs); } @@ -2304,7 +2306,7 @@ static int kvm_arch_get_fpsimd(CPUState *cs) * code the slice index to zero for now as it's unlikely we'll need more t= han * one slice for quite some time. */ -static int kvm_arch_get_sve(CPUState *cs, uint32_t vq) +static int kvm_arch_get_sve(CPUState *cs, uint32_t vq, bool have_ffr) { CPUARMState *env =3D cpu_env(cs); uint64_t *r; @@ -2328,12 +2330,14 @@ static int kvm_arch_get_sve(CPUState *cs, uint32_t = vq) sve_bswap64(r, r, DIV_ROUND_UP(vq * 2, 8)); } =20 - r =3D &env->vfp.pregs[FFR_PRED_NUM].p[0]; - ret =3D kvm_get_one_reg(cs, KVM_REG_ARM64_SVE_FFR(0), r); - if (ret) { - return ret; + if (have_ffr) { + r =3D &env->vfp.pregs[FFR_PRED_NUM].p[0]; + ret =3D kvm_get_one_reg(cs, KVM_REG_ARM64_SVE_FFR(0), r); + if (ret) { + return ret; + } + sve_bswap64(r, r, DIV_ROUND_UP(vq * 2, 8)); } - sve_bswap64(r, r, DIV_ROUND_UP(vq * 2, 8)); =20 return 0; } @@ -2421,7 +2425,7 @@ int kvm_arch_get_registers(CPUState *cs, Error **errp) } =20 if (cpu_isar_feature(aa64_sve, cpu)) { - ret =3D kvm_arch_get_sve(cs, cpu->sve_max_vq); + ret =3D kvm_arch_get_sve(cs, cpu->sve_max_vq, true); } else { ret =3D kvm_arch_get_fpsimd(cs); } --=20 2.43.0 From nobody Sun Apr 12 04:36:33 2026 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 1771213580659453.9486066364236; Sun, 15 Feb 2026 19:46:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vrpXs-0002hm-SJ; Sun, 15 Feb 2026 22:45:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vrpXn-0002de-Qt for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:45:07 -0500 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 1vrpXl-0002T8-3Z for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:45:07 -0500 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-2a7a9b8ed69so27641535ad.2 for ; Sun, 15 Feb 2026 19:45:03 -0800 (PST) Received: from stoup.. ([2401:d002:dc0f:2100:4a1:428a:70f2:5844]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad1aadca84sm53294155ad.70.2026.02.15.19.45.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Feb 2026 19:45:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1771213503; x=1771818303; 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=oeZjdzqdE1iuyBszq/Z//al5shVLI8GhqttWbbZVCxI=; b=QD8H0kCA+7qH+w3USdDjw8+EmP2a1g7vpmfyASliStMJBvGoxd9fjyW7WdMrTwwvs9 +AAisdpYdUM23j/pTzk5XuvT5ulFJHHAFcBkrIg6kyqMS33xQ6vueLqaVIWnCGqLG6z6 +fnPTn/liNHoFXKq1gBeI78Wm4+r+6e7+t8D0xcyfhCxPQ90qK14eG7wK9LsBsq2pS0m sWrMZNg6woO/5spL8nhaeH15F71G1LX/uKdJ2x63/QV7Nc4avh316OsPeWmt35gkAXa+ hpFA6lauCQacqEgKNZuOPWcB5tQr92sp3DqQP3m8ksnJp0mJS+XB+5/7+953qcRZauRN q0jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771213503; x=1771818303; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=oeZjdzqdE1iuyBszq/Z//al5shVLI8GhqttWbbZVCxI=; b=WwKhIoyg6gmmR+jGAO7jKYLQj6SPC+3BEvlR37qgjWO6Z3liYlZJ0Ceaal0pt5366v ZV/o09s08kJgrNkTetfT41xUK6DWPybRSdOxpJHszotVRihPdasm59hRGoXDgFTh7aIY 9/O8qkxAnXNW6TdaNV+ZNMy0LhklKCD0RODoYnklv5vFgWHx9BgwHpUcwcR8TpDgxZrQ Hxxxy4OSey2FzOrtTelGHRoGRry1hGDsOt2rX9YRoPhRIxcG2IA+Fmb2BPHwVYxV4lQp RIhez96bSG2hYAac07Kmhxm3rZt5vDOhVP5JMCqoNpeE06rFUrzAXF6g8iFCKvNCpZko LLoQ== X-Gm-Message-State: AOJu0YyJiO5XSXAWDxHyrhpRqEUAWqgdj5RTVh8bCAn0f/kHafefv0ed oKyPaGikyFFjAm5A+UP7o4HnnnRFWGhPdCb983Pf+t/wzysyZQv9YG0csroVhSdF5wXsJmVAIru SD2ZrDFY= X-Gm-Gg: AZuq6aJNh1brwaSxBFSLHpCkhfAy4Q34869xXiOOLp29/aOw4y/Suty1z2Hc/0tdvZY 3LvoyBGALnIUxCSfL6DTQRTtcCFBqDRP1U/RQC1nrDEoiMXBGYbs9La0jsUPqjgATKxJQaQGoOd uJ0hyd7M5MDcY1pvhOZBIDBo0Qk2r2DA4SnBo0HIGBqVKD8QlYrBb6mlaSguXhGtKXr+z6mAyPz QydjQA4r0QV3Ax5/IlTGyAzjPy+A4xj3Fr3UqlXyRbKOAnHursyUFrCrVqCQMBFtWBT+Qq/tEH8 pi51zJ1qmXwORTRjaX38m3sJ0Lr01hxhJhY6zB98lDKDrTBH2ephtReB8X/gjYurAuwwfv5wESi uMpJId0TF9xjKdnNa5f/f/ZOO5ffMaOqGNhO77RxeONpRPttKpqUTfhcakDUZ5RC2oM7LpSzG2y T8rik6CVbh4LnL4R8bYCMjzk089AEDLELl X-Received: by 2002:a17:902:e787:b0:2aa:d11d:5c36 with SMTP id d9443c01a7336-2ab50598a38mr96753725ad.30.1771213502651; Sun, 15 Feb 2026 19:45:02 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [RFC PATCH 12/13] target/arm: Add SME state to kvm_arch_{get, put}_registers Date: Mon, 16 Feb 2026 13:44:31 +1000 Message-ID: <20260216034432.23912-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216034432.23912-1-richard.henderson@linaro.org> References: <20260216034432.23912-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::632; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x632.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1771213584299158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson --- target/arm/kvm.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 102 insertions(+), 2 deletions(-) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index d05ad1d7e1..6d849573be 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -43,6 +43,11 @@ #include "target/arm/gtimer.h" #include "migration/blocker.h" =20 +/* ??? This probably belongs in asm-arm64/kvm.h */ +#define KVM_REG_ARM64_SME_ZT0 \ + (KVM_REG_ARM64 | KVM_REG_ARM64_SME | \ + KVM_REG_ARM64_SME_ZT_BASE | KVM_REG_SIZE_U512) + const KVMCapabilityInfo kvm_arch_required_capabilities[] =3D { KVM_CAP_INFO(DEVICE_CTRL), KVM_CAP_LAST_INFO @@ -2157,10 +2162,39 @@ static int kvm_arch_put_sve(CPUState *cs, uint32_t = vq, bool have_ffr) return 0; } =20 +static int kvm_arch_put_sme(CPUState *cs, uint32_t svq) +{ + CPUARMState *env =3D cpu_env(cs); + ARMCPU *cpu =3D env_archcpu(env); + uint64_t tmp[ARM_MAX_VQ * 2]; + uint64_t *r; + int ret; + + for (int n =3D 0; n < svq * 16; ++n) { + r =3D sve_bswap64(tmp, &env->za_state.za[n].d[0], svq * 2); + ret =3D kvm_set_one_reg(cs, KVM_REG_ARM64_SME_ZAHREG(n, 0), r); + if (ret) { + return ret; + } + } + + if (cpu_isar_feature(aa64_sme2, cpu)) { + r =3D sve_bswap64(tmp, env->za_state.zt0, ARRAY_SIZE(env->za_state= .zt0)); + ret =3D kvm_set_one_reg(cs, KVM_REG_ARM64_SME_ZT0, r); + if (ret) { + return ret; + } + } + return 0; +} + int kvm_arch_put_registers(CPUState *cs, KvmPutState level, Error **errp) { uint64_t val; uint32_t fpr; + bool sme_sm =3D false; + bool sme_za =3D false; + uint32_t svq =3D 0; int i, ret; unsigned int el; =20 @@ -2239,7 +2273,18 @@ int kvm_arch_put_registers(CPUState *cs, KvmPutState= level, Error **errp) } } =20 - if (cpu_isar_feature(aa64_sve, cpu)) { + if (cpu_isar_feature(aa64_sme, cpu)) { + /* Current SVL is required for either SM or ZA */ + sme_sm =3D FIELD_EX64(env->svcr, SVCR, SM); + sme_za =3D FIELD_EX64(env->svcr, SVCR, ZA); + if (sme_sm || sme_za) { + svq =3D sve_vqm1_for_el_sm(env, el, true) + 1; + } + } + + if (sme_sm) { + ret =3D kvm_arch_put_sve(cs, svq, cpu_isar_feature(aa64_sme_fa64, = cpu)); + } else if (cpu_isar_feature(aa64_sve, cpu)) { ret =3D kvm_arch_put_sve(cs, cpu->sve_max_vq, true); } else { ret =3D kvm_arch_put_fpsimd(cs); @@ -2248,6 +2293,13 @@ int kvm_arch_put_registers(CPUState *cs, KvmPutState= level, Error **errp) return ret; } =20 + if (sme_za) { + ret =3D kvm_arch_put_sme(cs, svq); + if (ret) { + return ret; + } + } + fpr =3D vfp_get_fpsr(env); ret =3D kvm_set_one_reg(cs, AARCH64_SIMD_CTRL_REG(fp_regs.fpsr), &fpr); if (ret) { @@ -2342,11 +2394,41 @@ static int kvm_arch_get_sve(CPUState *cs, uint32_t = vq, bool have_ffr) return 0; } =20 +static int kvm_arch_get_sme(CPUState *cs, uint32_t svq) +{ + CPUARMState *env =3D cpu_env(cs); + ARMCPU *cpu =3D env_archcpu(env); + uint64_t *r; + int ret; + + for (int n =3D 0; n < svq * 16; ++n) { + r =3D &env->za_state.za[n].d[0]; + ret =3D kvm_get_one_reg(cs, KVM_REG_ARM64_SME_ZAHREG(n, 0), r); + if (ret) { + return ret; + } + sve_bswap64(r, r, svq * 2); + } + + if (cpu_isar_feature(aa64_sme2, cpu)) { + r =3D env->za_state.zt0; + ret =3D kvm_get_one_reg(cs, KVM_REG_ARM64_SME_ZT0, r); + if (ret) { + return ret; + } + sve_bswap64(r, r, ARRAY_SIZE(env->za_state.zt0)); + } + return 0; +} + int kvm_arch_get_registers(CPUState *cs, Error **errp) { uint64_t val; unsigned int el; uint32_t fpr; + bool sme_sm =3D false; + bool sme_za =3D false; + uint32_t svq =3D 0; int i, ret; =20 ARMCPU *cpu =3D ARM_CPU(cs); @@ -2424,7 +2506,18 @@ int kvm_arch_get_registers(CPUState *cs, Error **err= p) env->spsr =3D env->banked_spsr[i]; } =20 - if (cpu_isar_feature(aa64_sve, cpu)) { + if (cpu_isar_feature(aa64_sme, cpu)) { + /* Current SVL is required for either SM or ZA */ + sme_sm =3D FIELD_EX64(env->svcr, SVCR, SM); + sme_za =3D FIELD_EX64(env->svcr, SVCR, ZA); + if (sme_sm || sme_za) { + svq =3D sve_vqm1_for_el_sm(env, el, true) + 1; + } + } + + if (sme_sm) { + ret =3D kvm_arch_get_sve(cs, svq, cpu_isar_feature(aa64_sme_fa64, = cpu)); + } else if (cpu_isar_feature(aa64_sve, cpu)) { ret =3D kvm_arch_get_sve(cs, cpu->sve_max_vq, true); } else { ret =3D kvm_arch_get_fpsimd(cs); @@ -2433,6 +2526,13 @@ int kvm_arch_get_registers(CPUState *cs, Error **err= p) return ret; } =20 + if (sme_za) { + ret =3D kvm_arch_get_sme(cs, svq); + if (ret) { + return ret; + } + } + ret =3D kvm_get_one_reg(cs, AARCH64_SIMD_CTRL_REG(fp_regs.fpsr), &fpr); if (ret) { return ret; --=20 2.43.0 From nobody Sun Apr 12 04:36:33 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1771213579; cv=none; d=zohomail.com; s=zohoarc; b=L0YK31ZVYoWEZh3yX6fY0+t4OcOY1A75qszqFOyP2xHUU+yYBRzj8WZd1bSsRVcEfSOJZAMn2xdtC2C3j96Ed0NpDSTtP9nrOlF0XmQAa0IhsF1ut3k8oO+LH63VDNS/LYouUNP0gJaJpZpu4aa1jmjIk/xOr61Byl02enMKUso= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771213579; 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=YspkmQ6qCsCzLdbemTI6YW69AEAqfF80AIDpAXjfP0A=; b=LXt2nZfJg6MM/uD0/wdNpBDDcVqKiE/v68D5yLAcj83twYNkzc6WAzVQVrjd2fEQi05ahSeyAWWaaTUCPW669b4n9RZUeO9d6BG5zr9p2K86Gp2R4AXGLTPaFsgsWUvT95howf5ZY8WI3oxEpL3Gi2MUlEHX/x2YmXWURSFnJ3w= 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 1771213579030590.7772723771086; Sun, 15 Feb 2026 19:46:19 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vrpYE-00034K-VR; Sun, 15 Feb 2026 22:45:36 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vrpXp-0002jp-Mh for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:45:12 -0500 Received: from mail-pg1-x532.google.com ([2607:f8b0:4864:20::532]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vrpXn-0002dx-3E for qemu-devel@nongnu.org; Sun, 15 Feb 2026 22:45:08 -0500 Received: by mail-pg1-x532.google.com with SMTP id 41be03b00d2f7-c648bc907ebso1662240a12.3 for ; Sun, 15 Feb 2026 19:45:05 -0800 (PST) Received: from stoup.. ([2401:d002:dc0f:2100:4a1:428a:70f2:5844]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad1aadca84sm53294155ad.70.2026.02.15.19.45.03 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Feb 2026 19:45:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1771213505; x=1771818305; 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=YspkmQ6qCsCzLdbemTI6YW69AEAqfF80AIDpAXjfP0A=; b=xq19cRc225oig2HaE+i2uwxVgwlz5IcWBHLrrTkpbWlUbCS7PSmJ9T4fhxM9gUCsm0 Sn4lzkfpjI4UEgAA5T0H4bzaHsTzyyiQZGYwKr+6luiAqs2KTxmUR0yRoSExdj2UCrYD 3RUva2h7DNnvfGoRROdHLZPdSF785oBq6jR8jPNFmWhs7PFV/IWnaV0qj0lTIzSQRGtJ H7LfNOpSmoE/LcCFyhull8J0X8sM19XhPBdWSCXwQ0pdKMrvSuvV/YBlOrtgwkQK8Y27 CCDAZhDG6/RWL7s7lc3scmjQZLBdqretqU11kGuohy1qzQXYS/o8ti3+IiuCwr8o8a3v zeKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771213505; x=1771818305; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=YspkmQ6qCsCzLdbemTI6YW69AEAqfF80AIDpAXjfP0A=; b=E9sW8quuMIu90mv3ebSxu4X5Lm1tAZdm5QBtPR6gW42/c1zqGoH2XVn5aaHeBLyD+N 20vkL+upI+UU2lr41BEGor7ugI7naLDuJfkLAS6nyQ5tfOPaqdNht0QbK1GGr4gGImqF LDT/VrwX3cThHTBW8S/xw4yXlVEYHGz2JRzpgITSNbx/l+8MCasqofSg/DrPxxlx5Frz bUVDWNx5moWYj1WaLFCFw3s9mLcROZyTmmYcYHJrM7d3cS3o/GSCPzp2I7lSUDO8/Ddg RA7NHSFaohxhprCYr5frLDNVfVNMNSOV08HSpjJYXkkbgefN1a0LHFfrRTADCRODZ0wC /AGQ== X-Gm-Message-State: AOJu0Yyr6ehpXHgz8zsX0j3JbXdd2pr9TbrU94+y8fv8Cy+GCjcHObQK cD1Ojl8NYKNBpYO8pWTe/mAwHVBpoythCE6+KczgXMjNG+WPfuQNcJwd2bxy35crLkOFSjUU0jv TnpEA2KU= X-Gm-Gg: AZuq6aK8BFgxXQy8x57sSTIepWnKPtdbgl8r/vA7FYzGldjt+poiBjGhA9l6fcQ3EdN oEAaCICOQC5lmWET8r+soL8i7T/ju8ENrMActnMbE60zTpP8nJbKHwjBfxRkmSATblvnpt0vXYF WkGUcqMERReKaWElH8geNdEGSoOcn8BsNKvPPcIVeczZcT8/6KAM0kWIVE+J1z43fyRLf7ie2CU rUsuGLwCFdscLDGEuL2cb1PzYw1BNm+noXJeoX/0fM8fhgDDJxsjgwIMDZEg/LPgXP9tB97rpLV AOEH9B0z+vwWmopUaQ7HpGLPKVHsPK8n3pQu//LYJuh/aHkzmus9zimf+ApyO5Lur/nPQQprpwg njl0Osx4Nj44+/SmHmpR7/4qW90ZcnMQYxhoZUvqgeW8AQs5IZCs1HZs2RB9b0KxBbDIyrZOvR5 20075MHZWXsK+1zQl7fk3cPhML/sVfm22N X-Received: by 2002:a05:6a21:398f:b0:35d:d477:a7d7 with SMTP id adf61e73a8af0-3946711458fmr10264998637.7.1771213504591; Sun, 15 Feb 2026 19:45:04 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [RFC PATCH 13/13] target/arm: Add SME properties for KVM Date: Mon, 16 Feb 2026 13:44:32 +1000 Message-ID: <20260216034432.23912-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216034432.23912-1-richard.henderson@linaro.org> References: <20260216034432.23912-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::532; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x532.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1771213579282158500 Content-Type: text/plain; charset="utf-8" Add the properties even if SME is not supported, akin to how we unconditionally add the SVE properties. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu64.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index 38d06af49f..4a7032ba72 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -496,9 +496,20 @@ void aarch64_add_sme_properties(Object *obj) ARMCPU *cpu =3D ARM_CPU(obj); uint32_t vq; =20 - object_property_add_bool(obj, "sme", cpu_arm_get_sme, cpu_arm_set_sme); - object_property_add_bool(obj, "sme_fa64", cpu_arm_get_sme_fa64, - cpu_arm_set_sme_fa64); + if (cpu->sme_vq.supported) { + object_property_add_bool(obj, "sme", cpu_arm_get_sme, cpu_arm_set_= sme); + } else { + assert(!tcg_enabled()); + prop_add_stub_bool(obj, "sme"); + } + /* + * Only TCG allows FA64 to be configured; host virtualization + * enables it if and only if the host cpu supports it. + */ + if (tcg_enabled()) { + object_property_add_bool(obj, "sme_fa64", cpu_arm_get_sme_fa64, + cpu_arm_set_sme_fa64); + } =20 for (vq =3D 1; vq <=3D ARM_MAX_VQ; vq <<=3D 1) { char name[8]; @@ -784,6 +795,7 @@ static void aarch64_host_initfn(Object *obj) #if defined(CONFIG_KVM) kvm_arm_set_cpu_features_from_host(cpu); aarch64_add_sve_properties(obj); + aarch64_add_sme_properties(obj); #elif defined(CONFIG_HVF) hvf_arm_set_cpu_features_from_host(cpu); #elif defined(CONFIG_WHPX) --=20 2.43.0