[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2bdd7614-f548-4b6f-a475-1fefe6f6f4ee@xen.org>
Date: Tue, 20 Feb 2024 09:01:33 +0000
From: Paul Durrant <xadimgnik@...il.com>
To: Sean Christopherson <seanjc@...gle.com>
Cc: Paolo Bonzini <pbonzini@...hat.com>, Jonathan Corbet <corbet@....net>,
Christian Borntraeger <borntraeger@...ux.ibm.com>,
Janosch Frank <frankja@...ux.ibm.com>,
Claudio Imbrenda <imbrenda@...ux.ibm.com>,
David Hildenbrand <david@...hat.com>, Heiko Carstens <hca@...ux.ibm.com>,
Vasily Gorbik <gor@...ux.ibm.com>, Alexander Gordeev
<agordeev@...ux.ibm.com>, Sven Schnelle <svens@...ux.ibm.com>,
Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>,
Borislav Petkov <bp@...en8.de>, Dave Hansen <dave.hansen@...ux.intel.com>,
x86@...nel.org, "H. Peter Anvin" <hpa@...or.com>,
David Woodhouse <dwmw2@...radead.org>, Shuah Khan <shuah@...nel.org>,
kvm@...r.kernel.org, linux-doc@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-s390@...r.kernel.org,
linux-kselftest@...r.kernel.org
Subject: Re: [PATCH v13 09/21] KVM: pfncache: allow a cache to be activated
with a fixed (userspace) HVA
On 19/02/2024 21:49, Sean Christopherson wrote:
> On Thu, Feb 15, 2024, Paul Durrant wrote:
>> @@ -319,7 +340,16 @@ static int __kvm_gpc_refresh(struct gfn_to_pfn_cache *gpc, gpa_t gpa,
>>
>> int kvm_gpc_refresh(struct gfn_to_pfn_cache *gpc, unsigned long len)
>> {
>> - return __kvm_gpc_refresh(gpc, gpc->gpa, len);
>> + unsigned long uhva = gpc->uhva;
>> +
>> + /*
>> + * If the GPA is valid then invalidate the HVA, otherwise
>> + * __kvm_gpc_refresh() will fail its strict either/or address check.
>> + */
>
> It's not just to make the strict check happy, though that's obviously the direct
> motivation, it's so that there's one root of truth. The strict check is there to
> enforce that behavior and to make it more clear to readers that it's an either/or
> situation.
>
>> + if (!kvm_is_error_gpa(gpc->gpa))
>> + uhva = KVM_HVA_ERR_BAD;
>
> This would be a good time to use a ternary operator.
>
> /*
> * If the GPA is valid then ignore the HVA, as a cache can be GPA-based
> * or HVA-based, not both. For GPA-based caches, the HVA will be
> * recomputed during refresh if necessary.
> */
> unsigned long uhva = kvm_is_error_gpa(gpc->gpa) ? gpc->uhva :
> KVM_HVA_ERR_BAD;
Ok. I thought that actually looked a little less neat in this case, but
I'll change.
Powered by blists - more mailing lists