<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello libvirt-users,<br>
    <br>
    I have an issue with libvirt on Centos 7.2 regarding CPU features
    seen by the Guest OS.<br>
    <br>
    The physical Host is Dell PowerEdge R730 with Haswell CPU, with the
    following features<br>
    <br>
    <tt>$ grep "model name" /proc/cpuinfo | tail -1</tt><tt><br>
    </tt><tt>model name    : Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz</tt><tt><br>
    </tt><tt><br>
    </tt><tt>$ grep flags /proc/cpuinfo  | tail -1</tt><tt><br>
    </tt><tt>flags        : fpu vme de pse tsc msr pae mce cx8 apic sep
      mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss
      ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon
      pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu
      pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16
      xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt
      tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat
      epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase
      tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm xsaveopt cqm_llc
      cqm_occup_llc</tt><tt><br>
    </tt><br>
    Regarding libvirt configuration, we have the following features
    detected :<br>
    <br>
    <tt>$ virsh capabilities | grep feature</tt><tt><br>
    </tt><tt>      <feature name='invtsc'/></tt><tt><br>
    </tt><tt>      <feature name='abm'/></tt><tt><br>
    </tt><tt>      <feature name='pdpe1gb'/></tt><tt><br>
    </tt><tt>      <feature name='rdrand'/></tt><tt><br>
    </tt><tt>      <feature name='f16c'/></tt><tt><br>
    </tt><tt>      <feature name='osxsave'/></tt><tt><br>
    </tt><tt>      <feature name='dca'/></tt><tt><br>
    </tt><tt>      <feature name='pdcm'/></tt><tt><br>
    </tt><tt>      <feature name='xtpr'/></tt><tt><br>
    </tt><tt>      <feature name='tm2'/></tt><tt><br>
    </tt><tt>      <feature name='est'/></tt><tt><br>
    </tt><tt>      <feature name='smx'/></tt><tt><br>
    </tt><tt>      <feature name='vmx'/></tt><tt><br>
    </tt><tt>      <feature name='ds_cpl'/></tt><tt><br>
    </tt><tt>      <feature name='monitor'/></tt><tt><br>
    </tt><tt>      <feature name='dtes64'/></tt><tt><br>
    </tt><tt>      <feature name='pbe'/></tt><tt><br>
    </tt><tt>      <feature name='tm'/></tt><tt><br>
    </tt><tt>      <feature name='ht'/></tt><tt><br>
    </tt><tt>      <feature name='ss'/></tt><tt><br>
    </tt><tt>      <feature name='acpi'/></tt><tt><br>
    </tt><tt>      <feature name='ds'/></tt><tt><br>
    </tt><tt>      <feature name='vme'/></tt><tt><br>
    </tt><tt><br>
    </tt>We have created a VM named that is configured with
    match="exact"<tt><br>
      $ virsh dumpxml compil | grep -A2 match<br>
        <cpu mode='custom' match='exact'><br>
          <model fallback='allow'>Haswell-noTSX</model><br>
        </cpu><br>
      <br>
    </tt>However, on the guest side, there no feature such as f16c is
    detected<tt> <br>
      <br>
      $ grep flag /proc/cpuinfo  | tail -1<br>
      flags        : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge
      mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm
      constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16
      pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes
      xsave avx hypervisor lahf_lm fsgsbase bmi1 avx2 smep bmi2 erms
      invpcid xsaveopt<br>
      <br>
    </tt>Is this normal ? <br>
    Should we use match="strict" to have the f16c feature seen by the
    guest OS ? <tt><br>
      <br>
    </tt>The xml file describing both the host and the guest are in
    attachment<tt>.<br>
    </tt><br>
    <tt>$ yum info libvirt</tt><tt><br>
    </tt><tt>Modules complémentaires chargés : fastestmirror</tt><tt><br>
    </tt><tt>Loading mirror speeds from cached hostfile</tt><tt><br>
    </tt><tt>Paquets installés</tt><tt><br>
    </tt><tt>Nom                 : libvirt</tt><tt><br>
    </tt><tt>Architecture        : x86_64</tt><tt><br>
    </tt><tt>Version             : 1.2.17</tt><tt><br>
    </tt><tt>Révision            : 13.el7_2.4</tt><tt><br>
    </tt><tt>Taille              : 0.0  </tt><tt><br>
    </tt><tt>Dépôt               : installed</tt><tt><br>
    </tt><tt>Depuis le dépôt     : updates</tt><tt><br>
    </tt><tt>Résumé              : Library providing a simple
      virtualization API</tt><tt><br>
    </tt><tt>URL                 : <a class="moz-txt-link-freetext" href="http://libvirt.org/">http://libvirt.org/</a></tt><tt><br>
    </tt><tt>Licence             : LGPLv2+</tt><tt><br>
    </tt><tt>Description         : Libvirt is a C toolkit to interact
      with the virtualization capabilities</tt><tt><br>
    </tt><tt>                    : of recent versions of Linux (and
      other OSes). The main package includes</tt><tt><br>
    </tt><tt>                    : the libvirtd server exporting the
      virtualization support.</tt><br>
    <br>
    <br>
    Thanks in advance for any advices we can receive.<br>
    <br>
    Best regards,<br>
    <br>
    Laurent Pouilloux<tt><br>
    </tt><tt></tt><tt><br>
    </tt>
    <pre class="moz-signature" cols="72">
-- 
Ingénieur en Calcul Scientifique
Laboratoire de Mécanique des Fluides et d'Acoustique
École Centrale de Lyon
36 Avenue Guy de Collongue, 69130 Écully
Batiment I11 - Bureau 11097W
Tél :  04.72.18.61.57</pre>
  </body>
</html>