[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <0f290ba9-4fd1-4986-8562-b90706fd1b5d@xen.org>
Date: Tue, 20 Feb 2024 09:03:30 +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 12/21] KVM: x86/xen: allow shared_info to be mapped by
fixed HVA
On 19/02/2024 21:53, Sean Christopherson wrote:
> On Thu, Feb 15, 2024, Paul Durrant wrote:
>> @@ -715,13 +731,23 @@ int kvm_xen_hvm_get_attr(struct kvm *kvm, struct kvm_xen_hvm_attr *data)
>> break;
>>
>> case KVM_XEN_ATTR_TYPE_SHARED_INFO:
>> - if (kvm->arch.xen.shinfo_cache.active)
>> + if (kvm->arch.xen.shinfo_cache.active &&
>> + kvm->arch.xen.shinfo_cache.gpa != KVM_XEN_INVALID_GPA)
>
> This should really use INVALID_GPA when checking internal gpc state. Mostly to
> help clarify what is/isn't KVM Xen ABI, but also because I don't like the subtle
> assumption that KVM_XEN_INVALID_GPA == INVALID_GPA.
>
Sorry, yes, that was miss on my part.
> Even better, if we slot in two helpers when the HVA-based GPC support is added,
> then the Xen code doesn't need to to make assumptions about how the GPC code
> manages HVA vs. GPA internally. E.g. if we ever refactor the code again and use
> a dedicated flag instead of gpc->gpa as the implicit flag.
>
> static inline bool kvm_gpc_is_gpa_active(struct gfn_to_pfn_cache *gpc)
> {
> return gpc->active && !kvm_is_error_gpa(gpc->gpa);
> }
>
> static inline bool kvm_gpc_is_hva_active(struct gfn_to_pfn_cache *gpc)
> {
> return gpc->active && kvm_is_error_gpa(gpc->gpa);
> }
Sure, sounds good to me. I'll add those.
Powered by blists - more mailing lists