Bug 1326259 - [Q35] Disk didn't be found in guest when the connected to downstream as PCIe virtio devices
Summary: [Q35] Disk didn't be found in guest when the connected to downstream as PCIe...
Keywords:
Status: CLOSED DUPLICATE of bug 1330002
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: qemu-kvm-rhev
Version: 7.3
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: rc
: ---
Assignee: Fam Zheng
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-04-12 09:35 UTC by jingzhao
Modified: 2016-06-27 04:41 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-06-27 04:41:49 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description jingzhao 2016-04-12 09:35:34 UTC
Description of problem:
Disk didn't be found in guest when the connected to downstream as  PCIe virtio devices

Version-Release number of selected component (if applicable):
kernel-3.10.0-373.el7.x86_64
qemu-img-rhev-2.5.0-4.el7.x86_64
seabios-1.9.1-2.el7.x86_64

How reproducible:
3/3

Steps to Reproduce:
1.Boot guest with following cli:

/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 rhel6 \
-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 \
-monitor stdio \
-serial unix:/tmp/serial0,server,nowait \
-boot menu=on \
-bios /usr/share/seabios/bios.bin \
-vga std \
-vnc :0 \
-drive file=/home/rhel.img,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,werror=stop,rerror=stop,aio=threads \
-device virtio-blk-pci,bus=pcie.0,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=0 \
-device ioh3420,bus=pcie.0,id=root.0,slot=4 \
-device x3130-upstream,bus=root.0,id=upstream1 \
-device xio3130-downstream,bus=upstream1,id=downstream1,chassis=1 \
-device xio3130-downstream,bus=upstream1,id=downstream2,chassis=2 \
-netdev tap,id=hostnet1,vhost=on \
-device virtio-net-pci,netdev=hostnet1,id=net1,mac=54:52:00:B6:40:22,bus=pcie.0 \
-drive file=/home/q35/test2.raw,if=none,id=drive-virtio-disk3,format=raw,cache=none,werror=stop,rerror=stop,aio=threads \
-device virtio-blk-pci,bus=downstream1,drive=drive-virtio-disk3,id=virtio-disk3,disable-modern=off,disable-legacy=on \
-drive file=/home/q35/test1.raw,if=none,id=drive-virtio-disk4,format=raw,cache=none,werror=stop,rerror=stop,aio=threads \
-device virtio-blk-pci,bus=downstream2,drive=drive-virtio-disk4,id=virtio-disk4,disable-modern=off,disable-legacy=on \


2. Check the block device in hmp and can be found
(qemu) info block
drive-virtio-disk0 (#block104): /home/rhel.img (qcow2)
    Cache mode:       writeback, direct

drive-virtio-disk3 (#block318): /home/q35/test2.raw (raw)
    Cache mode:       writeback, direct

drive-virtio-disk4 (#block561): /home/q35/test1.raw (raw)
    Cache mode:       writeback, direct

3. In guest, check the block device through "fdisk -l"

Actual results:
Didn't found the disk in guest through "fdisk -l"
[root@localhost ~]# fdisk -l

Disk /dev/vda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000aae7a

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     1026047      512000   83  Linux
/dev/vda2         1026048    41943039    20458496   8e  Linux LVM

Disk /dev/mapper/rhel-root: 18.8 GB, 18756927488 bytes, 36634624 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/rhel-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Expected results:
Disk can found in guest

Additional info:
Disk can be found if deleted the parameter "disable-modern=off,disable-legacy=on" in the qemu command

Comment 2 jingzhao 2016-05-04 05:57:24 UTC
Hit the issue when hot-plug virtio-scsi devices with downstream, following is the details:

kernel-3.10.0-388.el7.x86_64
qemu-kvm-rhev-2.5.0-4.el7.x86_64
seabios-1.9.1-3.el7.x86_64

1. Boot guest with following cli:

/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 \
-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 \
-vga std \
-vnc :0 \
-qmp tcp:0:6666,server,nowait \
-drive file=/home/rhel.img,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,werror=stop,rerror=stop,aio=threads \
-device virtio-blk-pci,bus=pcie.0,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=0 \
-chardev file,path=/home/seabios.log,id=seabios \
-device isa-debugcon,chardev=seabios,iobase=0x402 \
-device ioh3420,bus=pcie.0,id=root.0,slot=1 \
-device x3130-upstream,bus=root.0,id=upstream1 \
-device xio3130-downstream,bus=upstream1,id=downstream1,chassis=1 \
-device xio3130-downstream,bus=upstream1,id=downstream2,chassis=2 \
-device virtio-scsi-pci,bus=downstream1,id=scsi_pci_bus0,disable-modern=off,disable-legacy=on \
-monitor stdio \

2. In qmp, hot-plug virtio-scsi disk 
{"execute":"__com.redhat_drive_add","arguments":{"file":"/home/q35/scsi.raw","format":"raw","id":"scsi-disk"}}
{"return": {}}
{"execute":"device_add","arguments":{"driver":"scsi-disk","drive":"scsi-disk","id":"cd1","bus":"scsi_pci_bus0.0"}}
{"return": {}}

3.In hmp, check the block
(qemu) info block
drive-virtio-disk0 (#block133): /home/rhel.img (qcow2)
    Cache mode:       writeback, direct

scsi-disk (#block398): /home/q35/scsi.raw (raw)
    Cache mode:       writebac

4. In guest, check the disk through "fdisk -l"

After step4, disk didn't be found in guest

Comment 3 Fam Zheng 2016-06-27 04:41:49 UTC

*** This bug has been marked as a duplicate of bug 1330002 ***


Note You need to log in before you can comment on or make changes to this bug.