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!