Bug 1389369
| Summary: | libvirt mistakenly allows only slot 0 to be used on pcie-expander-bus | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Jaroslav Reznik <jreznik> |
| Component: | libvirt | Assignee: | Laine Stump <laine> |
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | high | ||
| Version: | 7.3 | CC: | berrange, dyuan, laine, lmanasko, marcel, rbalakri, sherold, xuzhang, yanyang |
| Target Milestone: | rc | Keywords: | ZStream |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-2.0.0-10.el7_3.1 | Doc Type: | Bug Fix |
| Doc Text: |
Previously, the libvirt library allowed only use of slot 0 on the pcie-expander-bus controllers, even though slots 0 - 31 could be used. The restriction has been removed and slots 0 - 31 now can be used.
|
Story Points: | --- |
| Clone Of: | 1382079 | Environment: | |
| Last Closed: | 2016-12-06 17:11:22 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: | |||
| Bug Depends On: | 1382079 | ||
| Bug Blocks: | |||
|
Description
Jaroslav Reznik
2016-10-27 13:42:48 UTC
Verified on libvirt-2.0.0-10.el7_3.1.x86_64
1. positive test:
attach 1 dmi-to-pci-bridge controller and 1 pcie-root-port controller to pcie-expander-bus
<controller type='pci' index='0' model='pcie-root'>
<alias name='pcie.0'/>
</controller>
<controller type='pci' index='1' model='dmi-to-pci-bridge'>
<model name='i82801b11-bridge'/>
<alias name='pci.1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x1e' 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='0x01' slot='0x00' function='0x0'/>
</controller>
<controller type='pci' index='3' model='pcie-expander-bus'>
<model name='pxb-pcie'/>
<target busNr='100'>
<node>1</node>
</target>
<alias name='pci.3'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='ioh3420'/>
<target chassis='4' port='0x0'/>
<alias name='pci.4'/>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</controller>
<controller type='pci' index='5' model='pcie-switch-upstream-port'>
<model name='x3130-upstream'/>
<alias name='pci.5'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</controller>
<controller type='pci' index='6' model='pcie-switch-downstream-port'>
<model name='xio3130-downstream'/>
<target chassis='6' port='0x0'/>
<alias name='pci.6'/>
<address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
</controller>
<controller type='pci' index='7' model='dmi-to-pci-bridge'>
<model name='i82801b11-bridge'/>
<alias name='pci.7'/>
<address type='pci' domain='0x0000' bus='0x03' slot='0x1f' function='0x0'/>
</controller>
<controller type='pci' index='8' model='pci-bridge'>
<model name='pci-bridge'/>
<target chassisNr='8'/>
<alias name='pci.8'/>
<address type='pci' domain='0x0000' bus='0x07' slot='0x03' function='0x0'/>
</controller>
<interface type='direct'>
<mac address='52:54:00:e9:03:50'/>
<source dev='eno1' mode='bridge'/>
<target dev='macvtap0'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
</interface>
<interface type='network'>
<mac address='52:54:00:b0:8d:2b'/>
<source network='default' bridge='virbr0'/>
<target dev='vnet0'/>
<model type='virtio'/>
<alias name='net1'/>
<address type='pci' domain='0x0000' bus='0x08' slot='0x03' function='0x0'/>
</interface>
1.1. check nics in guest, make sure both nics have ip address
guest]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.66.5.66 netmask 255.255.252.0 broadcast 10.66.7.255
inet6 fe80::5054:ff:fee9:350 prefixlen 64 scopeid 0x20<link>
ether 52:54:00:e9:03:50 txqueuelen 1000 (Ethernet)
RX packets 138 bytes 17576 (17.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 27 bytes 5204 (5.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.122.240 netmask 255.255.255.0 broadcast 192.168.122.255
inet6 fe80::5054:ff:feb0:8d2b prefixlen 64 scopeid 0x20<link>
ether 52:54:00:b0:8d:2b txqueuelen 1000 (Ethernet)
RX packets 77 bytes 6402 (6.2 KiB)
RX errors 0 dropped 6 overruns 0 frame 0
TX packets 49 bytes 5602 (5.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
1.2. check controller in guest
guest]#lspci
00:02.0 Host bridge: Red Hat, Inc. Device 000b
Subsystem: Red Hat, Inc Device 1100
Flags: 66MHz, fast devsel
64:00.0 PCI bridge: Intel Corporation 7500/5520/5500/X58 I/O Hub PCI Express Root Port 0 (rev 02) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 11, NUMA node 1
Bus: primary=64, secondary=65, subordinate=67, sec-latency=0
Memory behind bridge: fe800000-fe9fffff
Prefetchable memory behind bridge: 00000000fc200000-00000000fc3fffff
Capabilities: [90] Express Root Port (Slot+), MSI 00
Capabilities: [60] MSI: Enable- Count=1/2 Maskable+ 64bit-
Capabilities: [40] Subsystem: Intel Corporation Device 0000
Capabilities: [100] Advanced Error Reporting
Kernel driver in use: pcieport
Kernel modules: shpchp
64:1f.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92) (prog-if 01 [Subtractive decode])
Flags: bus master, 66MHz, fast devsel, latency 0, NUMA node 1
Bus: primary=64, secondary=68, subordinate=69, sec-latency=0
I/O behind bridge: 0000c000-0000cfff
Memory behind bridge: fe000000-fe3fffff
Prefetchable memory behind bridge: 00000000fc000000-00000000fc1fffff
Capabilities: [50] Subsystem: Device 0000:0000
65:00.0 PCI bridge: Texas Instruments XIO3130 PCI Express Switch (Upstream) (rev 02) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, NUMA node 1
Bus: primary=65, secondary=66, subordinate=67, sec-latency=0
Memory behind bridge: fe800000-fe9fffff
Prefetchable memory behind bridge: 00000000fc200000-00000000fc3fffff
Capabilities: [90] Express Upstream Port, MSI 00
Capabilities: [80] Subsystem: Device 0000:0000
Capabilities: [70] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [100] Advanced Error Reporting
Kernel driver in use: pcieport
Kernel modules: shpchp
66:00.0 PCI bridge: Texas Instruments XIO3130 PCI Express Switch (Downstream) (rev 01) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, NUMA node 1
Bus: primary=66, secondary=67, subordinate=67, sec-latency=0
Memory behind bridge: fe800000-fe9fffff
Prefetchable memory behind bridge: 00000000fc200000-00000000fc3fffff
Capabilities: [90] Express Downstream Port (Slot+), MSI 00
Capabilities: [80] Subsystem: Device 0000:0000
Capabilities: [70] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [100] Advanced Error Reporting
Kernel driver in use: pcieport
Kernel modules: shpchp
67:00.0 Ethernet controller: Red Hat, Inc Virtio network device (rev 01)
Subsystem: Red Hat, Inc Device 1100
Flags: bus master, fast devsel, latency 0, IRQ 11, NUMA node 1
Memory at fe840000 (32-bit, non-prefetchable) [size=4K]
Memory at fc200000 (64-bit, prefetchable) [size=16K]
Expansion ROM at fe800000 [disabled] [size=256K]
Capabilities: [dc] MSI-X: Enable+ Count=3 Masked-
Capabilities: [c8] Vendor Specific Information: VirtIO: <unknown>
Capabilities: [b4] Vendor Specific Information: VirtIO: Notify
Capabilities: [a4] Vendor Specific Information: VirtIO: DeviceCfg
Capabilities: [94] Vendor Specific Information: VirtIO: ISR
Capabilities: [84] Vendor Specific Information: VirtIO: CommonCfg
Capabilities: [7c] Power Management version 3
Capabilities: [40] Express Endpoint, MSI 00
Kernel driver in use: virtio-pci
Kernel modules: virtio_pci
68:03.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge (prog-if 00 [Normal decode])
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 10, NUMA node 1
Memory at fe200000 (64-bit, non-prefetchable) [size=256]
Bus: primary=68, secondary=69, subordinate=69, sec-latency=0
I/O behind bridge: 0000c000-0000cfff
Memory behind bridge: fe000000-fe1fffff
Prefetchable memory behind bridge: 00000000fc000000-00000000fc1fffff
Capabilities: [4c] MSI: Enable- Count=1/1 Maskable+ 64bit+
Capabilities: [48] Slot ID: 0 slots, First+, chassis 08
Capabilities: [40] Hot-plug capable
Kernel modules: shpchp
69:03.0 Ethernet controller: Red Hat, Inc Virtio network device
Subsystem: Red Hat, Inc Device 0001
Flags: bus master, fast devsel, latency 0, IRQ 10, NUMA node 1
I/O ports at c000 [size=32]
Memory at fe040000 (32-bit, non-prefetchable) [size=4K]
Memory at fc000000 (64-bit, prefetchable) [size=16K]
Expansion ROM at fe000000 [disabled] [size=256K]
Capabilities: [98] MSI-X: Enable+ Count=3 Masked-
Capabilities: [84] Vendor Specific Information: VirtIO: <unknown>
Capabilities: [70] Vendor Specific Information: VirtIO: Notify
Capabilities: [60] Vendor Specific Information: VirtIO: DeviceCfg
Capabilities: [50] Vendor Specific Information: VirtIO: ISR
Capabilities: [40] Vendor Specific Information: VirtIO: CommonCfg
Kernel driver in use: virtio-pci
Kernel modules: virtio_pci
2. negative test: attach pcie-root-port controller to pcie-expander-bus at slot 32
<controller type='pci' index='3' model='pcie-expander-bus'>
<model name='pxb-pcie'/>
<target busNr='100'>
<node>1</node>
</target>
<alias name='pci.3'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='ioh3420'/>
<target chassis='4' port='0x0'/>
<alias name='pci.4'/>
<address type='pci' domain='0x0000' bus='0x03' slot='0x20' function='0x0'/>
</controller>
error: XML error: Invalid PCI address slot='0x20', must be <= 0x1F
Failed. Try again? [y,n,i,f,?]:
Both test scenarios get expected results. Tested under UEFI and passed as well.
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/RHBA-2016-2885.html |