我在Ubuntu Server 16.04上安裝了libvirt-bin。但我發現的奇怪的事情是,libvirt沒有列出主機的所有支持的CPU功能。Libvirt沒有列出所有支持的CPU功能
當我打開文件/ proc/cpuinfo時,可以看到'aes'在標誌列表中。
但是,當我運行'virsh功能'時,我得到下面的結果,這表明主機cpu沒有功能'aes'。
<capabilities>
<host>
<uuid>30373237-3132-4d32-3236-30383034485a</uuid>
<cpu>
<arch>x86_64</arch>
<model>SandyBridge</model>
<vendor>Intel</vendor>
<topology sockets='1' cores='10' threads='2'/>
<feature name='invpcid'/>
<feature name='erms'/>
<feature name='bmi2'/>
<feature name='smep'/>
<feature name='avx2'/>
<feature name='bmi1'/>
<feature name='fsgsbase'/>
<feature name='abm'/>
<feature name='pdpe1gb'/>
<feature name='rdrand'/>
<feature name='f16c'/>
<feature name='osxsave'/>
<feature name='movbe'/>
<feature name='dca'/>
<feature name='pcid'/>
<feature name='pdcm'/>
<feature name='xtpr'/>
<feature name='fma'/>
<feature name='tm2'/>
<feature name='est'/>
<feature name='smx'/>
<feature name='vmx'/>
<feature name='ds_cpl'/>
<feature name='monitor'/>
<feature name='dtes64'/>
<feature name='pbe'/>
<feature name='tm'/>
<feature name='ht'/>
<feature name='ss'/>
<feature name='acpi'/>
<feature name='ds'/>
<feature name='vme'/>
</cpu>
...
然後我打開文件/usr/share/libvirt/cpu_map.xml,我可以看到下面的CPU型號,這意味着從了Sandbridge繼承的Westmere,它應該具有的特徵「AES」。
<model name='Westmere'>
<model name='Nehalem'/>
<feature name='aes'/>
</model>
<model name='SandyBridge'>
<model name='Westmere'/>
<feature name='pclmuldq'/>
<feature name='x2apic'/>
<feature name='tsc-deadline'/>
<feature name='xsave'/>
<feature name='avx'/>
<feature name='rdtscp'/>
</model>
我認爲/ proc/cpuinfo中的標誌列表應該是正確的,因爲它是由linux內核調用cpuid生成的。這是libvirt中的錯誤,還是'aes'只是'virsh功能'輸出中某些列出功能的子集?
更有趣的是,在我啓動一個guest和登錄後,我發現在guest os中,'aes'位於/ proc/cpuinfo中。
有什麼想法?
謝謝, 託比