[CentOS-virt] Masking CPU flags via libvirt xml not working?

Tue Aug 26 23:52:12 UTC 2014
Nathan March <nathan at gt.net>

Hi,

Has anyone here managed to get cpu masking working via libvirt? 
Intention to enable VM migrations between hosts of a different CPU 
generation.

Inside my xml I'm providing the model as well as a list of features to 
specifically disable, but none of it seems to take any effect. On 
booting the VM I still see the disabled flags in /proc/cpuinfo

   <cpu match='exact' mode='custom'>
     <arch>x86_64</arch>
     <model fallback='forbid'>Westmere</model>
     <feature policy='disable' name='dtherm'/>
     <feature policy='disable' name='erms'/>
     <feature policy='disable' name='fsgsbase'/>
     <feature policy='disable' name='pts'/>
     <feature policy='disable' name='pln'/>
     <feature policy='disable' name='rdrand'/>
     <feature policy='disable' name='f16c'/>
     <feature policy='disable' name='aes'/>
     <feature policy='disable' name='tsc_deadline_timer'/>
     <feature policy='disable' name='x2apic'/>
     <feature policy='disable' name='dtherm'/>
     <feature policy='disable' name='pclmulqdq'/>
   </cpu>

Doing a dumpxml against the domU once it's booted leaves out the entire 
<cpu> section, leading me to think maybe libvirt is dropping it for some 
reason. I've got the above <cpu> just in the main <domain> section.

Anyone have this working or able to offer some suggestions?

Thanks!

- Nathan