Thanks for the excellent bug report, including the patch that worked for you. Good sleuthing there!
As you might've discovered, policy='require' means, in libvirt parlance, "guest creation will fail unless a given CPU feature is supported by the host CPU _or_ the hypervisor is able to emulate it."
For example, the 'x2apic' is emulated by QEMU even if the host does not support it:
<feature policy='require' name='x2apic'/>
If your small patch solves it for you, feel free to submit it as an upstream fix, if you have time.
PS: Paste-bins expire, so I took the liberty to add the content of your paste-bin as a plain text attachment.
Hi, Andrew
Thanks for the excellent bug report, including the patch that worked for you. Good sleuthing there!
As you might've discovered, policy='require' means, in libvirt parlance, "guest creation will fail unless a given CPU feature is supported by the host CPU _or_ the hypervisor is able to emulate it."
For example, the 'x2apic' is emulated by QEMU even if the host does not support it:
<feature policy='require' name='x2apic'/>
If your small patch solves it for you, feel free to submit it as an upstream fix, if you have time.
PS: Paste-bins expire, so I took the liberty to add the content of your paste-bin as a plain text attachment.