From patchwork Mon Jul 8 15:44:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marc Zyngier X-Patchwork-Id: 13726755 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 71875C3271E for ; Mon, 8 Jul 2024 15:46:30 +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:Content-Transfer-Encoding: MIME-Version:Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=3ZGhDhdb49qcnkbOpv/LvVoTgwWj1Lwau7OLWLhELUM=; b=27zT9zxWIBvqREyx1M7XtQ9uXt 1rWn1K3BTHc5eutOtjVwoNPCKeHKcs20p/fZXKo//Wcd7g5lay+cycZUL3fTzH61rYaQrX6Sv7ZIJ uvB62PR+adnMbw9+3oebm0Frl8mLROghMF8kBB+2jWegXwOCi28NH80apfargCtGKsVPgtRTmGTzG lywSCnmy0mehmLIrFWpUXRvRCmNHFnmsBRtsTR8iR4UpjUOzlwSuYQIvjd4EeSka2DmO6gn+PwYOp WMCiawkK59BzF9DPF5Gj5hhRoDvDvfEHNsapPcrlhBKhybD0Dr4Io3G6foJMOFZhL54nY5uKzL2/y y2BReHgQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sQqZI-00000004HJr-0gki; Mon, 08 Jul 2024 15:46:20 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sQqXw-00000004GgI-0UFE for linux-arm-kernel@lists.infradead.org; Mon, 08 Jul 2024 15:44:59 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 008BB60EB9; Mon, 8 Jul 2024 15:44:54 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9E66CC4AF0C; Mon, 8 Jul 2024 15:44:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1720453494; bh=Xfz4WXL/9Lt0RTxagOQrxxUD5NaqarQygvSwbXyzrnc=; h=From:To:Cc:Subject:Date:From; b=jsZU4EygvkG5gLEDEydCqSiyu9ovGBrAxcpBEmuUKGd/3gTF8BRFsm+AEXz5gc9a2 kBHVRlDKnZqL4zcqpkTn6ugbSqxwvn1neS8B2z7lfRMs/v3gjwNBHPm225gc05p3G3 0LBkLSey8BAdw1jFyvt385KQLrbEp3fbo2rbJ6DNcXaA/vcFwOXYH2PqENKOgKIrIS XQLhRSBOmtahuWy/kuklY0GTShg1bETKVPsTz5ncVvdQ9MlKIO01Mwcg2gX/bfLUUx hIbYCA+W7TY9kzhD6K2DmMiTvOYCUi9M4drw2MgJhEKC9dnN+l5KjFeQM5VK6x6ZT2 qorsYJJngX2kg== Received: from sofa.misterjones.org ([185.219.108.64] helo=valley-girl.lan) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1sQqXs-00Ae1P-8W; Mon, 08 Jul 2024 16:44:52 +0100 From: Marc Zyngier To: kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org Cc: James Morse , Suzuki K Poulose , Oliver Upton , Zenghui Yu , Fuad Tabba , Joey Gouly , Mark Brown Subject: [PATCH 0/7] KVM: arm64: Add support for FP8 Date: Mon, 8 Jul 2024 16:44:31 +0100 Message-Id: <20240708154438.1218186-1-maz@kernel.org> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org, james.morse@arm.com, suzuki.poulose@arm.com, oliver.upton@linux.dev, yuzenghui@huawei.com, tabba@google.com, joey.gouly@arm.com, broonie@kernel.org X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240708_084456_241230_6D4034FF X-CRM114-Status: GOOD ( 13.41 ) 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 Although FP8 support was merged in 6.9, the KVM side was dropped, with no sign of it being picked up again. Given that its absence is getting in the way of NV upstreaming (HCRX_EL2 needs fleshing out), here's a small series addressing it. The support is following the save/restore model established for the rest of the FP code, with FPMR being tied to it. The sole additions are the handling of traps in a nested context, and the corresponding ID registers being made writable. As an extra cleanup, SVCR and FPMR are moved into the sysreg array. Patches are on top of kvmarm/next, as this would otherwise majorly conflict. Note that this is compile-tested only, as I have no access to FP8 HW or model (and running NV in a model is not something I wish to entertain ever again). Also, this is *not* 6.11 material. 6.12 if we're lucky. Marc Zyngier (7): KVM: arm64: Move SVCR into the sysreg array KVM: arm64: Move FPMR into the sysreg array KVM: arm64: Add save/restore support for FPMR KVM: arm64: Honor trap routing for FPMR KVM: arm64: Expose ID_AA64FPFR0_EL1 as a writable ID reg KVM: arm64: Enable FP8 support when available and configured KVM: arm64: Expose ID_AA64PFR2_EL1 to userspace and guests arch/arm64/include/asm/kvm_host.h | 16 ++++++++++-- arch/arm64/kvm/emulate-nested.c | 8 ++++++ arch/arm64/kvm/fpsimd.c | 5 ++-- arch/arm64/kvm/hyp/nvhe/hyp-main.c | 4 +++ arch/arm64/kvm/hyp/nvhe/switch.c | 10 +++++++ arch/arm64/kvm/hyp/vhe/switch.c | 4 +++ arch/arm64/kvm/sys_regs.c | 42 +++++++++++++++++++++++++++--- 7 files changed, 82 insertions(+), 7 deletions(-)