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