|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4] x86/mm: Add mem access rights to NPT
>>> On 24.07.18 at 13:26, <george.dunlap@xxxxxxxxxx> wrote:
> On 07/24/2018 09:55 AM, Jan Beulich wrote:
>>>>> On 23.07.18 at 15:48, <aisaila@xxxxxxxxxxxxxxx> wrote:
>>> --- a/xen/arch/x86/mm/mem_access.c
>>> +++ b/xen/arch/x86/mm/mem_access.c
>>> @@ -221,12 +221,12 @@ bool p2m_mem_access_check(paddr_t gpa, unsigned long
> gla,
>>> {
>>> req->u.mem_access.flags |= MEM_ACCESS_GLA_VALID;
>>> req->u.mem_access.gla = gla;
>>> -
>>> - if ( npfec.kind == npfec_kind_with_gla )
>>> - req->u.mem_access.flags |= MEM_ACCESS_FAULT_WITH_GLA;
>>> - else if ( npfec.kind == npfec_kind_in_gpt )
>>> - req->u.mem_access.flags |= MEM_ACCESS_FAULT_IN_GPT;
>>> }
>>> +
>>> + if ( npfec.kind == npfec_kind_with_gla )
>>> + req->u.mem_access.flags |= MEM_ACCESS_FAULT_WITH_GLA;
>>> + else if ( npfec.kind == npfec_kind_in_gpt )
>>> + req->u.mem_access.flags |= MEM_ACCESS_FAULT_IN_GPT;
>>
>> Without explanation in the commit message and without comment
>> this change is a no-go imo: I consider it at least questionable to
>> have npfec_kind_with_gla without .gla_valid set to true. Perhaps
>> it's just a naming issue, but that would then still require half a
>> sentence to explain.
>
> The naming here is confusing, but it seems to be based on the AMD manual
> naming convention (IIRC from my skim through the manual last week).
> "With gla" in this context means, "The nested fault happend while trying
> to translate the final guest linear address of the access", as opposed
> to "The nested fault happend while trying to translate one of the page
> tables, before the guest linear address for the virtual address could be
> calculated." It's a perfectly valid setting on AMD box, in spite of the
> fact that AMD doesn't report the virt -> gla translation.
>
> I'd be in favor of renaming the variable, but that shouldn't be
> Alexandru's job.
>
> What about adding a comment like this:
>
> "Naming is confusing here; 'with_gla' simply means the fault happened as
> the result of a translating the final gla, as opposed to translating one
> of the pagetables."
Yes, that would clarify thnigs enough, I think.
>>> + {
>>> + xfree(d->arch.monitor.msr_bitmap);
>>> + return -ENOMEM;
>>> + }
>>> + radix_tree_init(p2m->mem_access_settings);
>>> + }
>>
>> What's the SVM connection here? Please don't forget that p2m-pt.c
>> also serves the shadow case. Perhaps struct p2m_domain should
>> contain a boolean indicator whether this auxiliary data structure is
>> needed?
>
> It's basically just "hap_enabled()" isn't it?
Only if we can't make it there when EPT is active.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |