From patchwork Mon Jul 8 14:19:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 13726659 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C6068C3271E for ; Mon, 8 Jul 2024 14:21:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To: Content-Transfer-Encoding:Content-Type:MIME-Version:Message-Id:Date:Subject: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=0qeXIrz6NTACqWq3bKKU3+QhRL9fJWutgzdV0ekh7/c=; b=vk4ZEZtskCynYV 6L0rS3fYt6A1wQSBwMkRXmVbQDlUWfdqUlAghPuBzm2t88bc9rCnBvOKJzq0AvbMMEE3oD31isg1n Q1PEornUiz+DkF9F1sO457e3lFo+8K5fp2oIVAU0JuIduJYGRTatTlgdi7JvIODuVFMeVt2Eev8Bn Rtha4/FpT+aH7yF7HZ9HuXpWtgDfuCQcQabvhJUCwKy4RZkwvNIJlHnoSt+TvwgdZqhDoC39MZYaT zP3mkM2jVgQc6on2pUF4c4T10AmXGshd1n29kqSqpVT/Z1LMtMOm/DbtN8SbwCTJRjvUgXgQozvCX GxEAimmA2Gal3kp8cIRA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sQpF7-000000042uE-1dsP; Mon, 08 Jul 2024 14:21:25 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sQpEs-000000042qe-0qBd for linux-arm-kernel@lists.infradead.org; Mon, 08 Jul 2024 14:21:11 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 0413660DCF; Mon, 8 Jul 2024 14:21:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 47E50C116B1; Mon, 8 Jul 2024 14:21:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1720448468; bh=AS//5zgMCQN/h1qCnz0G1cBSnKG6FpnCnY7qDhGUZuE=; h=From:Subject:Date:To:Cc:From; b=Dnq/5zEjN2yOZE4iZG9mtW07zJP+fMvDtYuso1bL6rGikEeD0lCTzGd6Q1nDw2u4e xXsr+N/InzfML8PECmci+pssxMxQP8XV471auGR0hnC5EvfYkkP9vfZxvm4Fl77zed CS1L9HHWC0Y1l75NRCoRE/B6RgxJnnHfp0X2ncSTok6exHe+Sdu2qQypP8aGcffluF kmTGow6mvyTy2lS+NqtV4udy6v0GXmECRklxdLK1Zon27VXDY2spbYQBedJ1ZoJwN+ /ELM9ldefmo1dEJrM2bQIlYlBwHToPb69RuJtNbDkFhcxzxcRfSeuczsG1tl7jwlkC ZoVUhqVjyU+uw== From: Mark Brown Subject: [PATCH v5 0/4] KVM: arm64: Fix underallocation of storage for SVE state Date: Mon, 08 Jul 2024 15:19:12 +0100 Message-Id: <20240708-kvm-arm64-fix-pkvm-sve-vl-v5-0-d2175738456b@kernel.org> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAGH1i2YC/33QzYrCMBDA8VeRnB3JxzSJnnwP2UOTTDWobUkku EjffVNhURF6/A+Z30AeLFOKlNlu9WCJSsxx6Gs06xXzp7Y/EsRQm0kukWuOcC5XaNNVI3TxDuO cuRCUCwjlgxFdMMFxVvfHRPXJ0z781D7FfBvS7/NUkfP0X9ULapHAwVvbITl0At3+TKmny2ZIR zazRbxTzRIlKqUtD9qhcujFF6XeKbNEqUo1WzJWGK6Dbr4ofFFm8dsKVsppu7Wtkyp4/KCmafo DlX/GUqQBAAA= To: Catalin Marinas , Will Deacon , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Fuad Tabba Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, Mark Brown X-Mailer: b4 0.14-dev-d4707 X-Developer-Signature: v=1; a=openpgp-sha256; l=2069; i=broonie@kernel.org; h=from:subject:message-id; bh=AS//5zgMCQN/h1qCnz0G1cBSnKG6FpnCnY7qDhGUZuE=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBmi/XJsOHfwdNXbXkCWTEMGhwVLSVC2tlTEcQYF4is 6q7AEWqJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZov1yQAKCRAk1otyXVSH0IAyB/ 9Lsqizk8r96lkyMqZtxNGsCwlbxxTf0t6UUi03eVRoXykw24Qli5z8PvHw0SjJtJujr+vDSUk1/xdq pLIym0hJCTcTgzXVAj9mdv3cKBS5Y3f62PY8yP/FXjX+w7YUeQDsYvOYfjaVM+hdIhMfizdIoLVo+l cJSqxKasaNksxBQqkG9IB1/Iu4fRh4eG6co2SJRmBNOcKGqUwFvWNRTtWnYV5Puv4/kys0LGvvJNno OJMB73bBOQdMrmSkpiG5zS70z1mf4PE8VdQ4inStSyIpqO6mb/QC/apq9frCIpfUco0xoVug9ghy+X 9vRBjNll+DPI67eKkU4BPg8Vo3yGkZ X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240708_072110_430562_C174F43D X-CRM114-Status: UNSURE ( 9.27 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org As observed during review the pKVM support for saving host SVE state is broken if an asymmetric system has VLs larger than the maximum shared VL, fix this by discovering then using the maximum VL for allocations and using RDVL during the save/restore process. Signed-off-by: Mark Brown --- Changes in v5: - Clarify commit message on patch 3. - Link to v4: https://lore.kernel.org/r/20240704-kvm-arm64-fix-pkvm-sve-vl-v4-0-b6898ab23dc4@kernel.org Changes in v4: - Roll in Catalin's acks. - Link to v3: https://lore.kernel.org/r/20240607-kvm-arm64-fix-pkvm-sve-vl-v3-0-59e781706d65@kernel.org Changes in v3: - Replace %u with %lu in late CPU error message. Changes in v2: - Downgrade check for a late CPU increasing maximum VL to a warning only but do it unconditionally since pKVM prevents late CPUs anyway. - Commit log tweaks. - Link to v1: https://lore.kernel.org/r/20240605-kvm-arm64-fix-pkvm-sve-vl-v1-0-680d6b43b4c1@kernel.org --- Mark Brown (4): arm64/fpsimd: Introduce __bit_to_vl() helper arm64/fpsimd: Discover maximum vector length implemented by any CPU KVM: arm64: Fix FFR offset calculation for pKVM host state save and restore KVM: arm64: Avoid underallocating storage for host SVE state arch/arm64/include/asm/fpsimd.h | 17 +++++++++++++++ arch/arm64/include/asm/kvm_host.h | 2 +- arch/arm64/include/asm/kvm_hyp.h | 3 ++- arch/arm64/include/asm/kvm_pkvm.h | 2 +- arch/arm64/kernel/fpsimd.c | 38 +++++++++++++++++++++++++++------ arch/arm64/kvm/hyp/fpsimd.S | 5 +++++ arch/arm64/kvm/hyp/include/hyp/switch.h | 2 +- arch/arm64/kvm/hyp/nvhe/hyp-main.c | 6 +++--- arch/arm64/kvm/hyp/nvhe/pkvm.c | 2 +- arch/arm64/kvm/reset.c | 6 +++--- 10 files changed, 65 insertions(+), 18 deletions(-) --- base-commit: afb91f5f8ad7af172d993a34fde1947892408f53 change-id: 20240604-kvm-arm64-fix-pkvm-sve-vl-13cd71fd7db0 Best regards,