Hi,
I try to understand the compare and baseline CPU commands with libvirt.
This functions are useful for the migration ? Before migrate a domain to other host, libvirt verifies the CPU compatibility, that's right ?

I've got two 64bits hosts, one with an Intel CPU :
<cpu>
<arch>x86_64</arch>
<model>Penryn</model>
<vendor>Intel</vendor>
<topology sockets='1' cores='2' threads='1'/>
<feature name='xtpr'/>
<feature name='tm2'/>
<feature name='est'/>
<feature name='vmx'/>
<feature name='ds_cpl'/>
<feature name='monitor'/>
<feature name='pbe'/>
<feature name='tm'/>
<feature name='ht'/>
<feature name='ss'/>
<feature name='acpi'/>
<feature name='ds'/>
<feature name='vme'/>
</cpu>

and one with an AMD CPU
<cpu>
<arch>x86_64</arch>
<model>Opteron_G2</model>
<vendor>AMD</vendor>
<topology sockets='1' cores='2' threads='1'/>
<feature name='3dnowprefetch'/>
<feature name='cr8legacy'/>
<feature name='extapic'/>
<feature name='cmp_legacy'/>
<feature name='3dnow'/>
<feature name='3dnowext'/>
<feature name='fxsr_opt'/>
<feature name='mmxext'/>
<feature name='ht'/>
<feature name='vme'/>
</cpu>

Baseline output :
AMD to intel:
$ virsh cpu-baseline cpu_gargamel.xml 
<cpu match='exact'>
  <model>Opteron_G2</model>
  <vendor>AMD</vendor>
  <feature policy='require' name='3dnowprefetch'/>
  <feature policy='require' name='cr8legacy'/>
  <feature policy='require' name='extapic'/>
  <feature policy='require' name='cmp_legacy'/>
  <feature policy='require' name='3dnow'/>
  <feature policy='require' name='3dnowext'/>
  <feature policy='require' name='fxsr_opt'/>
  <feature policy='require' name='mmxext'/>
  <feature policy='require' name='ht'/>
  <feature policy='require' name='vme'/>
</cpu>

Intel to AMD:
$ virsh cpu-baseline cpu_azrael.xml 
<cpu match='exact'>
  <model>Penryn</model>
  <vendor>Intel</vendor>
  <feature policy='require' name='xtpr'/>
  <feature policy='require' name='tm2'/>
  <feature policy='require' name='est'/>
  <feature policy='require' name='vmx'/>
  <feature policy='require' name='ds_cpl'/>
  <feature policy='require' name='monitor'/>
  <feature policy='require' name='pbe'/>
  <feature policy='require' name='tm'/>
  <feature policy='require' name='ht'/>
  <feature policy='require' name='ss'/>
  <feature policy='require' name='acpi'/>
  <feature policy='require' name='ds'/>
  <feature policy='require' name='vme'/>
</cpu>

But if I try to migrate a domain from a host to another, the CPU compare says there are incompatible.
I don't understand, I've done live migration manually (migrate -d tcp:192.168.1.10:4444) with KVM and it's works nicely. Why it's not possible trough libvirt ?

I use libvirt 0.7.5 with KVM on an Ubuntu LTS 10.04.

Regards,
Doude.