Hi list,


i currently have the following issue:


I did a test upgrade to libvirt 1.1.4 and now i cannot create new snapshots which can be reverted.


Following Situation:

Virtualization: kvm
Disktype: qcow2

qemu XML:
  <cpu mode='host-passthrough'>
  </cpu>

Creating of snapshot:

virsh snapshot-create-as <guest> <name> <description> --atomic

Now i craete a snapshot and as soon as i revert i get the following error:

error : virCPUDefParseXML:367 : XML error: Non-empty feature list specified without CPU model

I think the error is inside the snapshot xml (virsh snapshot-dumpxml):

  <cpu mode='host-passthrough'>
    <feature policy='require' name='pdpe1gb'/>
    <feature policy='require' name='osxsave'/>
    <feature policy='require' name='dca'/>
    <feature policy='require' name='pcid'/>
    <feature policy='require' name='pdcm'/>
    <feature policy='require' name='xtpr'/>
    <feature policy='require' name='tm2'/>
    <feature policy='require' name='est'/>
    <feature policy='require' name='smx'/>
    <feature policy='require' name='vmx'/>
    <feature policy='require' name='ds_cpl'/>
    <feature policy='require' name='monitor'/>
    <feature policy='require' name='dtes64'/>
    <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>

In older libvirt versions < 1.0.0 the xml looks the following way (virsh snapshot-dumpxml):
    <cpu mode='host-passthrough' match='minimum'>
      <model>SandyBridge</model>
      <vendor>Intel</vendor>
      <feature policy='require' name='pdpe1gb'/>
      <feature policy='require' name='osxsave'/>
      <feature policy='require' name='dca'/>
      <feature policy='require' name='pcid'/>
      <feature policy='require' name='pdcm'/>
      <feature policy='require' name='xtpr'/>
      <feature policy='require' name='tm2'/>
      <feature policy='require' name='est'/>
      <feature policy='require' name='smx'/>
      <feature policy='require' name='vmx'/>
      <feature policy='require' name='ds_cpl'/>
      <feature policy='require' name='monitor'/>
      <feature policy='require' name='dtes64'/>
      <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>

So for what ever reason the model and vendor tag are not copied inside the snapshot metadata xml when using cpu mode cpu-passthrough.

virsh dumpxml with --update-cpu flag reports the correct cpu node with model and vendor tags.

After a stop of libvirtd and loooking inside the xml file the cpu tag looks the following:

    <cpu mode='host-passthrough' match='minimum'>
      <model>SandyBridge</model>
      <vendor>Intel</vendor>
      <feature policy='require' name='pdpe1gb'/>
      <feature policy='require' name='osxsave'/>
      <feature policy='require' name='dca'/>
      <feature policy='require' name='pcid'/>
      <feature policy='require' name='pdcm'/>
      <feature policy='require' name='xtpr'/>
      <feature policy='require' name='tm2'/>
      <feature policy='require' name='est'/>
      <feature policy='require' name='smx'/>
      <feature policy='require' name='vmx'/>
      <feature policy='require' name='ds_cpl'/>
      <feature policy='require' name='monitor'/>
      <feature policy='require' name='dtes64'/>
      <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>

After the start of libvirtd virsh reports the cpu tag with missing vendor and model.

Does anybody else has this problem?

Best regards

Georg