Messages in this thread | | | From | Bandan Das <> | Subject | Re: [PATCH 3/3] KVM: nVMX: Emulate EPTP switching for the L1 hypervisor | Date | Thu, 03 Aug 2017 15:55:21 -0400 |
| |
Paolo Bonzini <pbonzini@redhat.com> writes:
> On 03/08/2017 13:39, David Hildenbrand wrote: >>> + /* AD, if set, should be supported */ >>> + if ((address & VMX_EPT_AD_ENABLE_BIT)) { >>> + if (!enable_ept_ad_bits) >>> + return false; >> In theory (I guess) we would have to check here if >> (vmx->nested.nested_vmx_ept_caps & VMX_EPT_AD_BIT) > > Yes, that's a more correct check than enable_ept_ad_bits. > >>> >>> + page = nested_get_page(vcpu, vmcs12->eptp_list_address); >>> + if (!page) >>> + return 1; >>> + >>> + l1_eptp_list = kmap(page); >>> + address = l1_eptp_list[index]; >>> + accessed_dirty = !!(address & VMX_EPT_AD_ENABLE_BIT); >> >> Minor nit: Can't you directly do >> >> kunmap(page); >> nested_release_page_clean(page); >> >> at this point? >> >> We can fix this up later. > > You actually can do simply kvm_vcpu_read_guest_page(vcpu, > vmcs12->eptp_list_address >> PAGE_SHIFT, &address, index * 8, 8).
Thanks Paolo, for the interesting tip. David, I sent a new version with the correct check for AD and using this instead of kmap(page).
> Paolo
| |