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!