From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7265015E5D4; Fri, 16 May 2025 15:33:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747409593; cv=none; b=Sa+iOvrTHLKzI0FjGsgGrqgzxARAENrL2rFS18IP9DPabH8gGjPMNU+VlPTx1GqqyVf4MdrG0/frbP5IuSl6OFcHFwhhHVEHqIET4Lm6ReqNSp0D0Ki3qPh9jDjokH3U0g23EttaUsff+h/1eu3q0Li2X0XXnS9CjWyC2fFEJSo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747409593; c=relaxed/simple; bh=Csi7NqqgIVJt7R5s1n99hTz9y6bszbjzIfvsuQ83dcQ=; h=Date:Message-ID:From:To:Cc:Subject:In-Reply-To:References: MIME-Version:Content-Type; b=haSbiDDxCJ8buPNhPsIGnXoAetEsOSkZCWZ+97zkFQ92F26XXiD03GYHv0Ex81Sx2oolTQQ1kTzOzppc6SyGqNcy3rd/di6LRtG6WWPBwg4GPvyf5RDbO4s0Ob8QWz/Lj4YQRDYyiiX4tGCCEnGLWf+iII1hJ8E/9v8gE2l1cEM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qNYzeZC3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qNYzeZC3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D67FAC4CEE4; Fri, 16 May 2025 15:33:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1747409592; bh=Csi7NqqgIVJt7R5s1n99hTz9y6bszbjzIfvsuQ83dcQ=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=qNYzeZC3veNZuXIoxyyjgb+5UwbAsl0KCE2I4cutCpFCgGuU3vaMn8nO7cLGv/ARO OgHr+t9kvX9TH2fL8wwlJZT6xhVIVrXUW79VLNh33BzePGbjMDIEYz1XE6eTlwLk3B yL4p4NxLdteWWiL5/W7Y6IH/1sP5Fx/53KilbZ6qZUimseXFfwGAdF0NYm0dO7HkUv +wPg2lP6NHC7JPsodZr0+BbCjk5lI7nQK+vUVe5AzYsSOIYZ9uPfMHHDKcTIDdrDtU gsnl1pvUcOOKMT0J7Ze27Wv8DtKgnd4D9TtFs+EaVhWmNWWzhOx6nuhErYsBcV9S01 +AMWxZvWdNPXw== 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.95) (envelope-from ) id 1uFx3e-00FbeM-HZ; Fri, 16 May 2025 16:33:10 +0100 Date: Fri, 16 May 2025 16:33:10 +0100 Message-ID: <86zffcefk9.wl-maz@kernel.org> From: Marc Zyngier To: Jiaqi Yan Cc: oliver.upton@linux.dev, joey.gouly@arm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com, catalin.marinas@arm.com, will@kernel.org, pbonzini@redhat.com, corbet@lwn.net, shuah@kernel.org, kvm@vger.kernel.org, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, duenwen@google.com, rananta@google.com, jthoughton@google.com Subject: Re: [PATCH v1 2/6] KVM: arm64: Set FnV for VCPU when FAR_EL2 is invalid In-Reply-To: <20250505161412.1926643-3-jiaqiyan@google.com> References: <20250505161412.1926643-1-jiaqiyan@google.com> <20250505161412.1926643-3-jiaqiyan@google.com> 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) Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: 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: jiaqiyan@google.com, oliver.upton@linux.dev, joey.gouly@arm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com, catalin.marinas@arm.com, will@kernel.org, pbonzini@redhat.com, corbet@lwn.net, shuah@kernel.org, kvm@vger.kernel.org, kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, duenwen@google.com, rananta@google.com, jthoughton@google.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false On Mon, 05 May 2025 17:14:08 +0100, Jiaqi Yan wrote: > > Certain microarchitectures (e.g. Neoverse V2) do not keep track of > the faulting address for a memory load that consumes poisoned data > and results in a synchronous external abort (SEA). This means the > faulting guest physical address is unavailable when KVM handles such > SEA in EL2, and FAR_EL2 just holds a garbage value. I don't understand. FAR_ELx holds a *virtual* address, and never a physical address (that'd be PFAR_ELx). > > In case VMM later asks KVM to synchronously inject a SEA into the > guest, KVM should set FnV bit > - in VCPU's ESR_EL1 to let guest kernel know that FAR_EL1 is invalid > and holds garbage value > - in VCPU's ESR_EL2 to let nested virtualization know that FAR_EL2 > is invalid and holds garbage value > > Signed-off-by: Jiaqi Yan > --- > arch/arm64/kvm/inject_fault.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/arm64/kvm/inject_fault.c b/arch/arm64/kvm/inject_fault.c > index a640e839848e6..b4f9a09952ead 100644 > --- a/arch/arm64/kvm/inject_fault.c > +++ b/arch/arm64/kvm/inject_fault.c > @@ -81,6 +81,9 @@ static void inject_abt64(struct kvm_vcpu *vcpu, bool is_iabt, unsigned long addr > if (!is_iabt) > esr |= ESR_ELx_EC_DABT_LOW << ESR_ELx_EC_SHIFT; > > + if (!kvm_vcpu_sea_far_valid(vcpu)) > + esr |= ESR_ELx_FnV; > + I don't understand what this has anything to do with the uarch details you talk about in the commit message. If the VMM inject an exception, surely it has populated the exception context itself. I don't even see how we'd end-up here (__kvm_arm_vcpu_set_events? seems unlikely). M. -- Without deviation from the norm, progress is not possible.