On Mon, Dec 8, 2008 at 2:01 PM, Klaus Ader <k.ader@xxxxxxxxxx> wrote:
>
>> Try this:
>
>> vcpus=8
>>
> cpuid=['1:edx=xxx1xxxxxxxxxxxxxxxxxxxxxxxxxxxx,ebx=xxxxxxxx00010000xxxxx
> xxxxxxxxxxx','4,0:eax=001111xxxxxxxxxxxxxxxxxxxxxxxxxx']
>
>> Andy
>
> can you (or anyone else) please give some more information about this
> topic. I have the same problem:
> 2x intel quad core L5420 CPUs
> VCPU = 8
> hvm guest shows 8 CPUs in device manager, but only 2 working cpus in
> taksmanager.
>
> regards
> bk
>
> Antivirus Uberprufung mit Kaspersky Enterprise Space
> Disclaimer: Systemhaus PC-TEAM GbR - Markus Kiupel & Klaus Ader - USt-IdNr.:
> DE180305967
>
>
You only see 2 working cpu's because the guest sees each assigned vcpu
as a single core chip, standard edition windows server only supports 2
sockets, hence 2 cpus.
In xmexample.hvm there are some examples of how to use cpuid= to set
the number of cores and other features:
#-----------------------------------------------------------------------------
# Configure guest CPUID responses:
#
#cpuid=[ '1:ecx=xxxxxxxxxxx00xxxxxxxxxxxxxxxxxxx,
# eax=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' ]
# - Unset the SSE4 features (CPUID.1[ECX][20-19])
# - Default behaviour for all other bits in ECX And EAX registers.
#
# Each successive character represent a lesser-significant bit:
# '1' -> force the corresponding bit to 1
# '0' -> force to 0
# 'x' -> Get a safe value (pass through and mask with the default policy)
# 'k' -> pass through the host bit value
# 's' -> as 'k' but preserve across save/restore and migration
#
# Expose to the guest multi-core cpu instead of multiple processors
# Example for intel, expose a 8-core processor :
#cpuid=['1:edx=xxx1xxxxxxxxxxxxxxxxxxxxxxxxxxxx,
# ebx=xxxxxxxx00010000xxxxxxxxxxxxxxxx',
# '4,0:eax=001111xxxxxxxxxxxxxxxxxxxxxxxxxx']
# - CPUID.1[EDX][HT] : Enable HT
# - CPUID.1[EBX] : Number of vcpus * 2
# - CPUID.4,0[EAX] : Number of vcpus * 2 - 1
#vcpus=8
#
# Example for amd, expose a 5-core processor :
# cpuid = ['1:ebx=xxxxxxxx00001010xxxxxxxxxxxxxxxx,
# edx=xxx1xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
# '0x80000001:ecx=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1x',
# '0x80000008:ecx=xxxxxxxxxxxxxxxxxxxxxxxxxx001001']
# - CPUID.1[EBX] : Threads per Core * Cores per Socket (2 * #vcpus)
# - CPUID.1[EDX][HT] : Enable HT
# - CPUID.0x80000001[CmpLegacy] : Use legacy method
# - CPUID.0x80000008[ECX] : #vcpus * 2 - 1
#vcpus=5
#
# Downgrade the cpuid to make a better compatibility for migration :
# Look like a generic 686 :
# cpuid = [ '0:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0',
# '1:eax=0x06b1,
# ecx=xxxxxxxxxx0000xx00xxx0000000xx0,
# edx=xx00000xxxxxxx0xxxxxxxxx0xxxxxx',
# '4:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0',
# '0x80000000:eax=0x3,ebx=0x0,ecx=0x0,edx=0x0']
# with the highest leaf
# - CPUID.0[EAX] : Set the highest leaf
# - CPUID.1[EAX] : 686
# - CPUID.1[ECX] : Mask some features
# - CPUID.1[EDX] : Mask some features
# - CPUID.4 : Reply like the highest leaf, in our case CPUID.3
# - CPUID.0x80000000 : No extension we are on a Pentium III, reply like the
# highest leaf (CPUID.3).
#
# Configure host CPUID consistency checks, which must be satisfied for this
# VM to be allowed to run on this host's processor type:
#cpuid_check=[ '1:ecx=xxxxxxxxxxxxxxxxxxxxxxxxxx1xxxxx' ]
# - Host must have VMX feature flag set
#
# The format is similar to the above for 'cpuid':
# '1' -> the bit must be '1'
# '0' -> the bit must be '0'
# 'x' -> we don't care (do not check)
# 's' -> the bit must be the same as on the host that started this VM
I don't find the examples particularly easy to understand, perhaps it
could be clearer, but there is an example of how to expose a 8 core
cpu to the guest, and thats what I used:
cpuid=['1:edx=xxx1xxxxxxxxxxxxxxxxxxxxxxxxxxxx,ebx=xxxxxxxx00010000xxxxxxxxxxxxxxxx','4,0:eax=001111xxxxxxxxxxxxxxxxxxxxxxxxxx']
A graphical tool for configuring cpu cores and features would be
really nice, perhaps virt-manager will support it one day.
Andy
>
>
>
>
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users
|