Guest VMs access a strange address

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi there,

I have tried to log EPT construction status at VM startup, that is to
add some codes in function __direct_map (arch/x86/kvm/mmu.c).
__direct_map constructs the EPT paging structure when a guest page
firstly touched, and I can get related gfn and pfn here.

But I tracked a strange address, which is "vcpu 0  pfn
0x8000000000000000  gfn 0xfebf1". Here pfn and gfn are the value of
the params in function __direct_map. How can pfn be
0x8000000000000000? Besides, I searched 0xfebf1 in kvm->memslots and
cannot get it in any memslots, but __direct_map catches this memory
access and build the mapping. Why should this happen?

Thanks ahead,
Arthur


A1. Here's my code in __direct_map:

for_each_shadow_entry(vcpu, (u64)gfn << PAGE_SHIFT, iterator) {
    if (iterator.level == level) {
        printk(KERN_NOTICE "vcpu %d\tpfn 0x%llx\tgfn 0x%llx\n",
            kvm->tm_turn, vcpu->vcpu_id, pfn, gfn);
    }

    mmu_set_spte(vcpu, iterator.sptep, ACC_ALL,
        write, &emulate, level, gfn, pfn,
        prefault, map_writable);
    direct_pte_prefetch(vcpu, iterator.sptep);
    ++vcpu->stat.pf_fixed;
    break;
}

-- 
Arthur Chunqi Li
Department of Computer Science
School of EECS
Peking University
Beijing, China
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux