Re: Problem with KVM guest switching to x86 long mode

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

 



Avi Kivity wrote:
On 04/11/2010 12:48 PM, Pekka Enberg wrote:
So the guest is in long mode, happily trying to access pci config space.

MAXPHYADDR comes from cpuid 80000008.eax[0:7]. Typical values are 36-40 (number of physical address bits supported by the processor). What value does your guest see?


Ah, nice catch! The host cpuid doesn't seem to support 80000008 at so I didn't set it up in the guest either. I now added dummy emulation for it and the triple fault is fixed.

It should work without 80000008 set up - failure should happen only if it is setup incorrectly:

int cpuid_maxphyaddr(struct kvm_vcpu *vcpu)
{
    struct kvm_cpuid_entry2 *best;

    best = kvm_find_cpuid_entry(vcpu, 0x80000008, 0);
    if (best)
        return best->eax & 0xff;
    return 36;
}

Well, like I said, if I don't add an entry for it in struct kvm_cpuid2 that's passed to KVM_SET_CPUID2 ioctl, I see a triple fault on Core 2 Duo CPU that doesn't seem to have native 0x80000008.

			Pekka
--
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