Red Hat Bugzilla – Bug 1342962
libvirt limits chassisNr for pci bridge to between 0 and 255, however, qemu does not support chassis_nr=0
Last modified: 2016-11-03 14:46:33 EDT
Description of problem: libvirt limits chassisNr for pci bridge to between 0 and 255, however, qemu does not support chassis_nr=0 Version-Release number of selected component (if applicable): libvirt-1.3.4-1.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1. edit xml and set chassisNr for pci bridge to -1 # virsh edit vm1 <controller type='pci' index='1' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='-1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </controller> error: XML document failed to validate against schema: Unable to validate doc against /usr/share/libvirt/schemas/domain.rng Extra element devices in interleave Element domain failed to validate content error: XML error: PCI controller chassisNr '-1' out of range - must be 0-255 Failed. Try again? [y,n,i,f,?]: 2. edit xml and set chassisNr for pci bridge to 0 # virsh edit vm1 <controller type='pci' index='1' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </controller> Domain vm1 XML configuration edited. # virsh start vm1 error: Failed to start domain vm1 error: internal error: early end of file from monitor, possible problem: warning: host doesn't support requested feature: CPUID.80000001H:ECX.abm [bit 5] warning: host doesn't support requested feature: CPUID.80000001H:ECX.sse4a [bit 6] warning: host doesn't support requested feature: CPUID.80000001H:ECX.abm [bit 5] warning: host doesn't support requested feature: CPUID.80000001H:ECX.sse4a [bit 6] warning: host doesn't support requested feature: CPUID.80000001H:ECX.abm [bit 5] warning: host doesn't support requested feature: CPUID.80000001H:ECX.sse4a [bit 6] warning: host doesn't support requested feature: CPUID.80000001H:ECX.abm [bit 5] warning: host doesn't support requested feature: CPUID.80000001H:ECX.sse4a [bit 6] 2016-06-06T08:26:59.778510Z qemu-kvm: -device pci-bridge,chassis_nr=0,id=pci.1,bus=pci.0,addr=0x8: Bridge chassis not specified. Each bridge is required to be assigned a unique chassis id > 0. 2016-06-06T08:26:59.779116Z qemu-kvm: -device pci-bridge,chassis_nr=0,id=pci.1,bus=pci.0,addr=0x8: Device initialization fa Actual results: chassis id is numbered in [1,255] Expected results: libvirt limits chassisNr for pci bridge to between 1 and 255, and modify the doc Additional info:
This is a trivial fix: https://www.redhat.com/archives/libvir-list/2016-June/msg01313.html
Pushed upstream, will be in the 2.0.0 release: commit df2fb9bfff7906296d191de3431384b2e0729257 Author: Laine Stump <laine@laine.org> Date: Mon Jun 20 14:24:35 2016 -0400 conf: limit chassisNr, and busNr to a minimum value of 1, not 0
Verify it on libvirt-2.0.0-5.el7.x86_64 1. Negative test, set chassisNr to 0 # virsh edit V ... <controller type='pci' index='0' model='pci-root'/> <controller type='pci' index='1' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </controller> ... error: XML error: PCI controller chassisNr '0' out of range - must be 1-255 Failed. Try again? [y,n,i,f,?]: 2. Negative test, set busNr to 0 # virsh edit V ... <controller type='pci' index='0' model='pci-root'/> <controller type='pci' index='1' model='pci-expander-bus'> <model name='pxb'/> <target busNr='0'> <node>1</node> </target> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </controller> ... error: XML error: PCI controller busNr '0' out of range - must be 1-254 Failed. Try again? [y,n,i,f,?]:
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. https://rhn.redhat.com/errata/RHSA-2016-2577.html