From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BBD84606A31E for ; Wed, 21 Oct 2026 15:37:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=haqpmVZl; dkim=pass (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=LZlUa8sk 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-Type:MIME-Version: References:In-Reply-To:Subject:Cc:To:From:Message-ID:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=151osnyqTqNRy9yGvwwtrRpNABKKk4npuM+xHhPMEdc=; b=haqpmVZlzvOiXZj75uSZAbfzM9 c1ppWLCA0O85Qv3xrjSQqTDK7NLyvSMBdBohrjPFhwgC/khtG9YBFBRzWXYl0+Gy29tN2RNOK+n4z ius6nnwZnkcULz2LrNvaJs/PAIpqfno0QxboG0feesBhF1c/4HbEaaPhgDJvMce6TxD+yOz1XNeTR GIKOnM8ywmVaMSnNexAljj0NzphFtNH33GuBCo5go4UZSII6PftSsNIlsLBTt7iHt2Z7hQ53OZ66h Ld5OmsRT569VLJkLgLjqAqh7BcubQijGAgtxa1efdd6M14Ejqppqn0f0VuOzX5IZRQ5+78YjeD+Pn N4/utrTw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xJYNv-0000000CHS8-0tX5; Wed, 21 Oct 2026 15:37:47 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xJYNj-0000000CHR3-3yvR for linux-arm-kernel@lists.infradead.org; Wed, 21 Oct 2026 15:37:46 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 6710843683; Wed, 21 Oct 2026 15:37:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 490D41F000C1; Wed, 21 Oct 2026 15:37:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792597055; bh=151osnyqTqNRy9yGvwwtrRpNABKKk4npuM+xHhPMEdc=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=LZlUa8skphlwi4uXJ9gjrUnssf7gpReG91Bk/DKT+IMLa5CjHH4Sen2zDoYK7qxdi CGXBT+8RggG/CIIyN7YEHpJWjZiwZvmeAuvi0zv3QU8n+XAG2QjZEa0an89uKrEDNU Zh6vtp3lAx2xhPIwDGcYy/QNHWf0OVPAQft7yr9HtV/R5aYIhbHhTF7d3eeVV6+bSM oIFVo1tRZ+jQHFE6BVFfJvs1teBdUPEir8wBOnfjF0ffX0XX5tRgn/zai/656vWnun DVh7q6ismi/NsXhv0cJBFcPSt3VP2xqqMI2kns1H3uN6evQ35LB9/02YLHvf49f9JH 69HXyicRfywFw== Received: from sofa.misterjones.org ([185.219.108.64] helo=goblin-girl.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1xJYNh-00000005jCk-1CgX; Wed, 21 Oct 2026 15:37:33 +0000 Date: Wed, 21 Oct 2026 16:37:32 +0100 Message-ID: <86jynbyshv.wl-maz@kernel.org> From: Marc Zyngier To: Vincent Donnefort Cc: oupton@kernel.org, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, joey.gouly@arm.com, seiden@linux.ibm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com, catalin.marinas@arm.com, will@kernel.org, kernel-team@android.com, fuad.tabba@linux.dev, stable@vger.kernel.org Subject: Re: [PATCH v1] KVM: arm64: pkvm: Clear GICv3 LRs in the hypervisor In-Reply-To: References: <20261021110000.508827-1-vdonnefort@google.com> <86qzhjz1iz.wl-maz@kernel.org> <86pkx3yylb.wl-maz@kernel.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/30.1 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) X-Archived-By: MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-SA-Exim-Connect-IP: 185.219.108.64 X-SA-Exim-Rcpt-To: vdonnefort@google.com, oupton@kernel.org, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, joey.gouly@arm.com, seiden@linux.ibm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com, catalin.marinas@arm.com, will@kernel.org, kernel-team@android.com, fuad.tabba@linux.dev, stable@vger.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-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" X-Spam-Status: No, score=-6.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 On Wed, 21 Oct 2026 16:14:21 +0100, Vincent Donnefort wrote: > > On Wed, Oct 21, 2026 at 02:25:52PM +0100, Marc Zyngier wrote: > > On Wed, 21 Oct 2026 13:50:22 +0100, > > Vincent Donnefort wrote: > > > > > > On Wed, Oct 21, 2026 at 01:22:28PM +0100, Marc Zyngier wrote: > > > > On Wed, 21 Oct 2026 12:00:00 +0100, > > > > Vincent Donnefort wrote: > > > > > > > > > > The LR registers are architecturally UNKNOWN when the CPU boots or > > > > > resumes. However, in protected mode, only the used ones are reset. > > > > > During boot the HVC __vgic_v3_init_lrs() is never called because > > > > > vgic_present is only set in init_subsystems(), after cpu_hyp_init() was > > > > > called. > > > > > > > > Why don't you fix this rather than making the init even more > > > > different? > > > > > > Ack, I'll make a patch to fix that first. > > > > > > > > > > > > Also, the PM notifier isn't registered for pKVM and the HVC > > > > > becomes unavailable after the host is deprivileged. > > > > > > > > Sanitising the LRs on PSCI_ON is probably the right thing to do, but I > > > > don't understand why resetting the LRs is out of reach from the host, > > > > given that the host is fully in charge of the interrupt injection, and > > > > therefore controls the LRs. > > > > > > I suppose I could reinstantiate the pm callbacks for pkvm to at least reset the > > > LRs? > > > > I think there are two different things: > > > > - pKVM must not rely on the host resetting the LRs once it is > > deprivileged (that's the PSCI_ON case) > > Definitely not a hot path, but if we keep this one ^, isn't a shame of making > the host issue HVCs on CPU resume to reset the LRs if we know the hypervisor did > it anyway? The really annoying thing is that we have divergence between hypervisor backends that make the code fragile and harder to maintain. Specially as we add CCA to the mix. So my approach to this is to stop messing with the host code. It should do what it is notionally supposed to do, and the hypervisor code can do its own stuff. You can always optimise away the reset on PSCI_ON if you add some tracking. Is it worth it? Absolutely not. But that's where the complexity should go. Thanks, M. -- Without deviation from the norm, progress is not possible.