Bug 724893

Summary: RFE: better message when start the guest which CPU comprises flags that host doesn't support
Product: Red Hat Enterprise Linux 6 Reporter: Min Zhan <mzhan>
Component: libvirtAssignee: Peter Krempa <pkrempa>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: low    
Version: 6.2CC: acathrow, dallan, dyuan, honzhang, mzhan, perfbz, rwu, veillard, yupzhang
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-0.10.0-0rc0.el6 Doc Type: Enhancement
Doc Text:
Feature: Error message printed when the guest cpu definition isn't supported now contains cpu feature flags which are not supported. Reason: If a cpu definition provided by the user was not correct the error message wasn't helpful in determining which of the feature isn't supported. Result (if any): The error message describes which options of the user's configuration are not supported by the host.
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-21 07:06:44 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Min Zhan 2011-07-22 08:17:38 UTC
Description of problem:
In virt-manager, assign guest cpu model as Nehalem, then start the guest, pop up error message: Error starting domain: internal error guest CPU is not compatible with host CPU.

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1. Host cpu flag:
# cat /proc/cpuinfo
...
model name	: Intel(R) Core(TM)2 Quad CPU    Q9400  @ 2.66GHz
...
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm tpr_shadow vnmi flexpriority

2. In virt-manager, set the guest cpu model as Nehalem, Apply, then start the guest.

3. Error message will display:
  Error starting domain: internal error guest CPU is not compatible with host CPU
  Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 45, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/engine.py", line 956, in asyncfunc
    vm.startup()
  File "/usr/share/virt-manager/virtManager/domain.py", line 1048, in startup
    self._backend.create()
  File "/usr/lib64/python2.6/site-packages/libvirt.py", line 457, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: internal error guest CPU is not compatible with host CPU

Actual results:
As above

Expected results:
Message could be more friendly and report the missing flags


Additional info:

Comment 1 Min Zhan 2011-07-22 08:22:56 UTC
Sorry, the pkg are as following:
# uname -r
2.6.32-165.el6.x86_64
qemu-kvm-0.12.1.2-2.167.el6.x86_64
libvirt-0.9.3-7.el6.x86_64
virt-manager-0.8.6-4.el6.noarch
python-virtinst-0.500.5-3.el6.noarch

Comment 5 Peter Krempa 2012-04-23 09:44:34 UTC
The error messages are enhanced with upstream commit:

commit a2ba53cf18a9ad252a74a39f45ec3577923f50de
Author: Peter Krempa <pkrempa>
Date:   Tue Apr 17 15:24:47 2012 +0200

    cpu: Improve error reporting on incompatible CPUs

Comment 10 yuping zhang 2012-08-06 05:53:39 UTC
Reproduce this issue with libvirt-0.9.10-21.el6_3.3.x86_64.
Verified this issue with:
libvirt-0.10.0-0rc0.el6.x86_64
virt-manager-0.9.0-14.el6.x86_64

Now the error message is:
Error starting domain: unsupported configuration: guest and host CPU are not compatible: Host CPU does not provide required features: popcnt, sse4.2 : Error starting domain: unsupported configuration: guest and host CPU are not compatible: Host CPU does not provide required features: popcnt, sse4.2

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 44, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 65, in tmpcb
    callback(*args, **kwargs)
  File "/usr/share/virt-manager/virtManager/domain.py", line 1063, in startup
    self._backend.create()
  File "/usr/lib64/python2.6/site-packages/libvirt.py", line 620, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: unsupported configuration: guest and host CPU are not compatible: Host CPU does not provide required features: popcnt, sse4.2

So change the bug status to VERIFIED.

Comment 11 errata-xmlrpc 2013-02-21 07:06:44 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2013-0276.html