• J
    qemu: Translate features in virQEMUCapsGetCPUFeatures · 1fd28a2e
    Jiri Denemark 提交于
    Starting with QEMU 4.1 qemuMonitorCPUModelInfo structure in virQEMUCaps
    stores only canonical feature names which may differ from the name used
    by libvirt. We need translate these canonical names into libvirt names
    for further consumption.
    
    This fixes a bug in qemuConnectBaselineHypervisorCPU which would remove
    all features for which libvirt's spelling differs from the QEMU's
    preferred name. For example, the following result of
    qemuConnectBaselineHypervisorCPU on my host with QEMU 4.1 is wrong:
    
        <cpu mode='custom' match='exact'>
          <model fallback='forbid'>Skylake-Client</model>
          <vendor>Intel</vendor>
          <feature policy='require' name='ss'/>
          <feature policy='require' name='vmx'/>
          <feature policy='require' name='hypervisor'/>
          <feature policy='require' name='clflushopt'/>
          <feature policy='require' name='umip'/>
          <feature policy='require' name='arch-capabilities'/>
          <feature policy='require' name='xsaves'/>
          <feature policy='require' name='pdpe1gb'/>
          <feature policy='require' name='invtsc'/>
          <feature policy='disable' name='pclmuldq'/>
          <feature policy='disable' name='lahf_lm'/>
        </cpu>
    
    The 'pclmuldq' and 'lahf_lm' should not be disabled in the baseline CPU
    as they are supported by QEMU on this host.
    Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
    Reviewed-by: NAndrea Bolognani <abologna@redhat.com>
    1fd28a2e
qemu_capabilities.c 169.5 KB