I have a self built system using an Intel D 920 processor and a MB that 
  supports VT. I'm able to run HVM domains fine, but have trouble getting 
  multiple VCPUs for these domains. Here is an example of one of my configs. 
  
  
  import os, re
arch = os.uname()[4]
if re.search('64', 
  arch):
    arch_libdir = 
  'lib64'
else:
    arch_libdir = 'lib'
  #----------------------------------------------------------------------------
# 
  Kernel image file.
kernel = "/usr/lib/xen/boot/hvmloader"
  # The domain build function. HVM domain uses 'hvm'.
builder='hvm'
  # Initial memory allocation (in megabytes) for the new domain.
memory = 
  256
  # A name for your domain. All domains must have different names.
name = 
  "windows"
  #-----------------------------------------------------------------------------
# 
  the number of cpus guest platform has, default=1
vcpus=2
  # enable/disable HVM guest PAE, default=0 (disabled)
#pae=0
  # enable/disable HVM guest ACPI, default=0 (disabled)
#acpi=0
  # enable/disable HVM guest APIC, default=0 (disabled)
#apic=0
  # List of which CPUS this domain is allowed to use, default Xen 
  picks
#cpus = ""         # leave to 
  Xen to pick
#cpus = "0"        # all 
  vcpus run on CPU0
#cpus = "0-3,5,^1" # run on cpus 0,2,3,5 
  # Optionally define mac and/or bridge for the network interfaces.
# 
  Random MACs are assigned if not given.
#vif = [ 'type=ioemu, 
  mac=00:16:3e:00:00:11, bridge=xenbr0' ]
# type=ioemu specify the NIC is an 
  ioemu device not netfront 
vif = [ 'type=ioemu, bridge=xenbr0' ]
  #----------------------------------------------------------------------------
# 
  Define the disk devices you want the domain to have access to, and
# what 
  you want them accessible as.
# Each disk entry is of the form 
  phy:UNAME,DEV,MODE 
# where UNAME is the device, DEV is the device name the 
  domain will see,
# and MODE is r for read-only, w for read-write.
  #disk = [ 'phy:hda1,hda1,r' ]
disk = [ 
  'file:/root/windows.img,ioemu:hda,w' ]
  #----------------------------------------------------------------------------
# 
  Configure the behaviour when a domain exits.  There are three 
  'reasons'
# for a domain to stop: poweroff, reboot, and crash.  For 
  each of these you 
# may specify:
#
#   
  "destroy",        meaning that the domain 
  is cleaned up as normal;
#   
  "restart",        meaning that a new domain 
  is started in place of the 
  old
#                     
  one; 
#   "preserve",       meaning 
  that no clean-up is done until the domain 
  is
#                     
  manually destroyed (using xm destroy, for example); or
#   
  "rename-restart", meaning that the old domain is not cleaned up, but is 
  
#                     
  renamed and a new domain started in its place.
#
# The default 
  is
#
#   
#   
  on_reboot   = 'restart'
#   on_crash    
  = 'restart'
#
# For backwards compatibility we also support the 
  deprecated option restart 
#
# restart = 'onreboot' means 
#                            
  on_reboot   = 
  'restart'
#                            
  on_crash    = 'destroy'
#
# restart = 
  'always'   means  
  
#                            
  on_reboot   = 
  'restart'
#                            
  on_crash    = 'restart'
#
# restart = 
  'never'    means 
#                            
  on_reboot   = 'destroy' 
  
#                            
  on_crash    = 'destroy'
  #
#on_reboot   = 
  'restart'
#on_crash    = 'restart'
  #============================================================================
  # New stuff
device_model = '/usr/' + arch_libdir + 
'/xen/bin/qemu-dm'
  #-----------------------------------------------------------------------------
# 
  Disk image for
cdrom='/images/xp.iso'
  #-----------------------------------------------------------------------------
# 
  boot on floppy (a), hard disk (c) or CD-ROM 
  (d)
boot='d'
#----------------------------------------------------------------------------- 
  
#  write to temporary files instead of disk image 
  files
#snapshot=1
  #----------------------------------------------------------------------------
# 
  enable SDL library for graphics, default = 0
sdl=0
  #----------------------------------------------------------------------------
# 
  enable VNC library for graphics, default = 1
vnc=1
  #----------------------------------------------------------------------------
# 
  enable spawning vncviewer(only valid when vnc=1), default = 
  1
vncviewer=0
  #----------------------------------------------------------------------------
# 
  no graphics, use serial port
#nographic=0
  #----------------------------------------------------------------------------
# 
  enable stdvga, default = 0 (use cirrus logic device model)
stdvga=1
  #-----------------------------------------------------------------------------
#   
  serial port re-direct to pty deivce, /dev/pts/n
#   then xm 
  console or minicom can connect
serial='pty'
  #----------------------------------------------------------------------------
# 
  enable ne2000, default = 0(use pcnet)
ne2000=0
  
#-----------------------------------------------------------------------------
#   
  enable audio support
#audio=1
  
#-----------------------------------------------------------------------------
#    
  set the real time clock to local time [default=0 i.e. set to 
  utc]
localtime=1
  
#-----------------------------------------------------------------------------
#    
  start in full 
  screen
#full-screen=1
----------------------------------------------------------------------------------------------- 
  
  I'm running Xen 3.0.2-2 from the binary download. The HVM domain 
  only sees 1 cpu and xm list displays on VCPU.
  Any help would be greatly appreciated.
  Jared