Bug 1359503
Summary: | Limit the number of pci controllers plugged into pxb(n) to busNr(n+1) - busNr (n) -2 | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux Advanced Virtualization | Reporter: | Yang Yang <yanyang> |
Component: | libvirt | Assignee: | Andrea Bolognani <abologna> |
Status: | CLOSED DEFERRED | QA Contact: | Meina Li <meili> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 8.0 | CC: | dyuan, hhan, laine, lmen, marcel, rbalakri, xuzhang |
Target Milestone: | rc | Keywords: | Triaged |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2020-02-11 16:12:21 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Yang Yang
2016-07-24 11:48:26 UTC
Another similar issue is that libvirt should limit the number of pci controllers plugged into pci root bus to lowest busNr(n) -1 when pxb is present. I have 1 pxb controller, with busNr=1 in domain xml. I also have 1 pci bridge which is attached to pci root bus. I plug 1 nic to pxb and 1 nic to pci bridge. Then I create vm. Checked lspci in guest, only the nic plugged into pci bridge is visible. Both the pci bridge integrated into pxb and the nic plugged into pxb are invisible. <controller type='pci' index='0' model='pci-root'> <alias name='pci.0'/> </controller> <controller type='pci' index='1' model='pci-expander-bus'> <model name='pxb'/> <target busNr='1'/> <alias name='pci.1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='2'/> <alias name='pci.2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </controller> check in guest #lspci -v 00:08.0 Host bridge: Red Hat, Inc. Device 0009 Subsystem: Red Hat, Inc Device 1100 Physical Slot: 8 Flags: 66MHz, fast devsel 00:09.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge (prog-if 00 [Normal decode]) Flags: bus master, 66MHz, fast devsel, latency 0 Memory at fc219000 (64-bit, non-prefetchable) [size=256] Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 I/O behind bridge: 0000c000-0000cfff Memory behind bridge: fc000000-fc1fffff Prefetchable memory behind bridge: 00000000fea00000-00000000febfffff Capabilities: [4c] MSI: Enable- Count=1/1 Maskable+ 64bit+ Capabilities: [48] Slot ID: 0 slots, First+, chassis 02 Capabilities: [40] Hot-plug capable 01:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8100/8101L/8139 PCI Fast Ethernet Adapter (rev 20) Subsystem: Red Hat, Inc QEMU Virtual Machine Physical Slot: 13-2 Flags: bus master, fast devsel, latency 0, IRQ 11 I/O ports at c000 [size=256] Memory at fc040000 (32-bit, non-prefetchable) [size=256] Expansion ROM at fc000000 [disabled] [size=256K] Kernel driver in use: 8139cp In this case, bus numbers between 1 and 255 should be available only for pci controllers plugged into pxb. So libvirt should limit the number of pci controllers plugged into pci root bus to lowest busNr(n) -1 when pxb is present. pxb-pcie has the similar problem. Another similar issue is that libvirt always auto-assigns 254 to 1st pxb controller. The number of pci controllers which have been attached into pxb controller is not taken into account by libvirt. As a result, guest cannot boot up. pxb-pcie has the similar problem e.g. 1. define a vm with 1 pxb and 3 pci bridges which are attached into pxb <controller type='pci' index='0' model='pci-root'/> <controller type='pci' index='1' model='pci-expander-bus'> </controller> <controller type='pci' index='2' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x0' function='0x0'/> </controller> <controller type='pci' index='3' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x1' function='0x0'/> </controller> <controller type='pci' index='4' model='pci-bridge'> <address type='pci' domain='0x0000' bus='0x01' slot='0x2' function='0x0'/> </controller> 2.check domain xml <controller type='pci' index='0' model='pci-root'/> <controller type='pci' index='1' model='pci-expander-bus'> <model name='pxb'/> <target busNr='254'/> ----> always defaults to 254 <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </controller> <controller type='pci' index='2' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='2'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </controller> <controller type='pci' index='3' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='3'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/> </controller> <controller type='pci' index='4' model='pci-bridge'> <model name='pci-bridge'/> <target chassisNr='4'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x02' function='0x0'/> </controller> 3. check guest status Cannot boot up This bug was closed deferred as a result of bug triage. Please reopen if you disagree and provide justification why this bug should get enough priority. Most important would be information about impact on customer or layered product. Please indicate requested target release. |