Bug 1358665
Summary: | [Q35] Disk which connected to pci bridge didn't be found in guest with q35 machine type | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | jingzhao <jinzhao> | ||||||
Component: | qemu-kvm-rhev | Assignee: | Marcel Apfelbaum <marcel> | ||||||
Status: | CLOSED NOTABUG | QA Contact: | jingzhao <jinzhao> | ||||||
Severity: | low | Docs Contact: | |||||||
Priority: | low | ||||||||
Version: | 7.3 | CC: | chayang, jinzhao, juzhang, knoel, lersek, virt-maint, yduan, yiwei | ||||||
Target Milestone: | rc | ||||||||
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: | 2016-08-14 13:54:07 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: | |||||||||
Attachments: |
|
Description
jingzhao
2016-07-21 08:43:07 UTC
Created attachment 1182400 [details]
The seabios log
Created attachment 1182401 [details]
the dmesg log of guest
As reported, this BZ is NOTABUG. The QEMU command line is incorrect. Namely, in all of the failing cases, we have a nonzero PCI function number for the virtio-blk-pci device: #0 -device virtio-blk-pci,bus=bridge2,drive=pci-block1,id=pciblock1,addr=0x6.1 \ #1 -device virtio-blk-pci,bus=bridge3,drive=pci-block3,id=pciblock3,addr=0x7.1 \ #2 -device virtio-blk-pci,bus=bridge4,drive=pci-block5,id=pciblock5,addr=0x8.1 \ However, a nonzero PCI function number can only be used if: - function 0 of the same PCI device also exists, and - the multifunction capability is advertised by function 0. In practical terms, it means that -device virtio-blk-pci,...,addr=0x6.1 will only work if some other -device FOOBAR,...,addr=0x6.0,multifunction=on ^^^^^^^^^^^^^^^^^^^^^^^^^^^ option exists. Multifunction is sometimes used to group 8 virtio-blk-pci devices into a single PCI device (using different function numbers). This allows for better density, but prevents independent hot-(un)plug. Please repeat the original test either with "addr=0x6.0" (that is, changing the function number to 0), or with "addr=0x6.1" entirely removed. Thanks. (In reply to Laszlo Ersek from comment #4) > As reported, this BZ is NOTABUG. The QEMU command line is incorrect. > > Namely, in all of the failing cases, we have a nonzero PCI function number > for the virtio-blk-pci device: > > #0 > -device virtio-blk-pci,bus=bridge2,drive=pci-block1,id=pciblock1,addr=0x6.1 \ > > #1 > -device virtio-blk-pci,bus=bridge3,drive=pci-block3,id=pciblock3,addr=0x7.1 \ > > #2 > -device virtio-blk-pci,bus=bridge4,drive=pci-block5,id=pciblock5,addr=0x8.1 \ > > However, a nonzero PCI function number can only be used if: > - function 0 of the same PCI device also exists, and > - the multifunction capability is advertised by function 0. > > In practical terms, it means that > > -device virtio-blk-pci,...,addr=0x6.1 > > will only work if some other > > -device FOOBAR,...,addr=0x6.0,multifunction=on > ^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > option exists. > > Multifunction is sometimes used to group 8 virtio-blk-pci devices into a > single PCI device (using different function numbers). This allows for better > density, but prevents independent hot-(un)plug. > > Please repeat the original test either with "addr=0x6.0" (that is, changing > the function number to 0), or with "addr=0x6.1" entirely removed. Thanks. As above metioned, I tried it with following command and it works 1) with "addr=0x6.0" /usr/libexec/qemu-kvm \ -M q35 \ -cpu SandyBridge \ -nodefaults -rtc base=utc \ -m 4G \ -smp 2,sockets=2,cores=1,threads=1 \ -enable-kvm \ -name rhel7.3 \ -uuid 990ea161-6b67-47b2-b803-19fb01d30d12 \ -smbios type=1,manufacturer='Red Hat',product='RHEV Hypervisor',version=el6,serial=koTUXQrb,uuid=feebc8fd-f8b0-4e75-abc3-e63fcdb67170 \ -k en-us \ -serial unix:/tmp/serial0,server,nowait \ -boot menu=on \ -bios /usr/share/seabios/bios.bin \ -chardev file,path=/home/seabios.log,id=seabios \ -device isa-debugcon,chardev=seabios,iobase=0x402 \ -qmp tcp::8887,server,nowait \ -vga qxl \ -spice port=5932,disable-ticketing \ -device ioh3420,id=root.0,slot=1 \ -drive file=/home/q35-seabios.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,werror=stop,rerror=stop \ -device virtio-blk-pci,bus=root.0,drive=drive-virtio-disk0,id=virtio-disk0,disable-legacy=on,disable-modern=off,bootindex=1 \ -device i82801b11-bridge,bus=pcie.0,id=bridge1 \ -device pci-bridge,bus=bridge1,id=bridge2,chassis_nr=1 \ -drive file=/home/pci-block1.qcow2,if=none,id=pci-block1,format=qcow2,cache=none,werror=stop,rerror=stop \ -device virtio-blk-pci,bus=bridge2,drive=pci-block1,id=pciblock1 \ -device ioh3420,id=root.2,slot=3 \ -device virtio-net-pci,bus=root.2,netdev=tap10,mac=9a:6a:6b:6c:6d:6e,disable-legacy=on,disable-modern=off -netdev tap,id=tap10 \ -monitor stdio \ 2)with "addr=0x6.1" entirely removed, it didn't work QEMU 2.6.0 monitor - type 'help' for more information (qemu) qemu-kvm: -device virtio-blk-pci,bus=bridge2,drive=pci-block1,id=pciblock1: Unsupported PCI slot 0 for standard hotplug controller. Valid slots are between 1 and 31. So I think we can close bz Thanks Jing Zhao Laszlo and Jing, Thanks for all the help! Marcel |