I
am running Xen packaged with CentOS 5.4 and trying to install Ubuntu 10.04 as
an HVM guest.
xen_major
: 3
xen_minor
: 1
xen_extra
: .2-164.11.1.el5
After
sprinkling the kernel with printks, I am seeing that it is stuck in the
function detect_extended_topology() in the following loop:
<snip>
sub_index = 1;
do {
cpuid_count(0xb, sub_index, &eax, &ebx, &ecx, &edx);
printk("%s: after cpuid_count %d\n", __FUNCTION__, sub_index);
/*
* Check for the Core type in the implemented sub leaves.
*/
if (LEAFB_SUBTYPE(ecx) == CORE_TYPE) {
core_level_siblings = LEVEL_MAX_SIBLINGS(ebx);
core_plus_mask_width = BITS_SHIFT_NEXT_LEVEL(eax);
break;
}
sub_index++;
} while (LEAFB_SUBTYPE(ecx) != INVALID_TYPE);
<snip>
The
ECX leaf subtype never returns CORE_TYPE or INVALID_TYPE. So think I might be
running in to a bug / quirk in the CPUID handling code in Xen packaged with
CentOS 5.4. Is there a work around for it? Maybe specifying something in the
cpuid option in the config file.
Thanks!