[libvirt] [PATCH] qemu: Fix regression when hyperv/vendor_id feature is used

Peter Krempa pkrempa at redhat.com
Thu Apr 6 12:28:09 UTC 2017


On Thu, Apr 06, 2017 at 14:20:39 +0200, Jiri Denemark wrote:
> qemuProcessVerifyHypervFeatures is supposed to check whether all
> requested hyperv features were actually honored by QEMU/KVM. This is
> done by checking the corresponding CPUID bits reported by the virtual
> CPU. In other words, it doesn't work for string properties, such as
> VIR_DOMAIN_HYPERV_VENDOR_ID (there is no CPUID bit we could check). We
> could theoretically check all 12 bits corresponding to the vendor

12 bytes

> string, but luckily we don't have to check the feature at all. If QEMU
> is too old to support hyperv features, the domain won't even start.
> Otherwise, it is always supported.
> 
> Without this patch, libvirt refuses to start a domain which contains
> 
>   <features>
>     <hyperv>
>       <vendor_id state='on' value='...'/>
>     </hyperv>
>   </features>
> 
> reporting internal error: "unknown CPU feature __kvm_hv_vendor_id.
> 
> This regression was introduced by commit v3.1.0-186-ge9dbe7011, which
> (by fixing the virCPUDataCheckFeature condition in
> qemuProcessVerifyHypervFeatures) revealed an old bug in the feature
> verification code. It's been there ever since the verification was
> implemented by commit v1.3.3-rc1-5-g95bbe4bf5, which effectively did not
> check VIR_DOMAIN_HYPERV_VENDOR_ID at all.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1439424
> 
> Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
> ---
> 
> BTW, I think this should be cherry-picked in v3.2-maint branch.

Yes

> 
>  src/qemu/qemu_process.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)

ACK
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170406/03825905/attachment-0001.sig>


More information about the libvir-list mailing list