Bug 1146826

Summary: QEMU will not reject invalid number of queues (num_queues = 0) specified for virtio-scsi
Product: Red Hat Enterprise Linux 7 Reporter: Sibiao Luo <sluo>
Component: qemu-kvm-rhevAssignee: Fam Zheng <famz>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 7.1CC: chayang, famz, hhuang, juzhang, michen, pbonzini, qzhang, rbalakri, sluo, virt-bugs, virt-maint, xfu
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-2.1.2-7.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1089606 Environment:
Last Closed: 2015-03-05 09:56:12 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:
Bug Depends On: 1089606    
Bug Blocks:    

Comment 1 Sibiao Luo 2014-09-26 07:46:08 UTC
host info:
# uname -r && rpm -q qemu-kvm-rhev
3.10.0-147.el7.x86_64
qemu-kvm-rhev-2.1.0-4.el7.x86_64

# /usr/libexec/qemu-kvm -M pc -S -cpu SandyBridge -enable-kvm -m 4096 -smp 4,sockets=2,cores=2,threads=1 -no-kvm-pit-reinjection -usb -device usb-tablet,id=input0 -name sluo -uuid 990ea161-6b67-47b2-b803-19fb01d30d30 -rtc base=localtime,clock=host,driftfix=slew -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=0,bus=pci.0,addr=0x3 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=com.redhat.rhevm.vdsm.1,bus=virtio-serial0.0,id=port1 -chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=com.redhat.rhevm.vdsm.2,bus=virtio-serial0.0,id=port2 -drive file=/home/RHEL-7.0-20140507.0-Server-x86_64.qcow2,if=none,id=drive-system-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop -device virtio-scsi-pci,bus=pci.0,addr=0x4,id=scsi0 -device scsi-hd,drive=drive-system-disk,id=system-disk,bus=scsi0.0,bootindex=1 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virtio-net-pci0,mac=00:01:02:B6:11:21,bus=pci.0,addr=0x5 -device virtio-balloon-pci,id=ballooning,bus=pci.0,addr=0x6 -k en-us -boot menu=on -qmp tcp:0:4444,server,nowait -serial unix:/tmp/ttyS0,server,nowait -vnc :1 -spice disable-ticketing,port=5931 -monitor stdio -device virtio-scsi-pci,id=scsi1,bus=pci.0,addr=0x7,num_queues=0

Comment 2 Sibiao Luo 2014-09-26 07:46:37 UTC
...
[    1.907277] Stack:
[    1.907277]  ffff88013631d800 ffff88013622f740 0000000000000003 ffff88013950f8a0
[    1.907277]  ffff8800368b7b78 ffffffffa0164ebc ffff88013622f740 ffff88013631d800
[    1.907277]  ffff8800368b7bd8 ffffffffa0165514 ffff88013950ffe0 00000000fffffffe
[    1.907277] Call Trace:
[    1.907277]  [<ffffffffa0164ebc>] virtscsi_remove_vqs+0x2c/0x50 [virtio_scsi]
[    1.907277]  [<ffffffffa0165514>] virtscsi_init+0x134/0x2a0 [virtio_scsi]
[    1.907277]  [<ffffffffa01657ef>] virtscsi_probe+0xef/0x27c [virtio_scsi]
[    1.907277]  [<ffffffffa00b17c0>] ? vp_reset+0x90/0x90 [virtio_pci]
[    1.907277]  [<ffffffffa00221d2>] virtio_dev_probe+0xe2/0x150 [virtio]
[    1.907277]  [<ffffffff813b6bd7>] driver_probe_device+0x87/0x390
[    1.907277]  [<ffffffff813b6fb3>] __driver_attach+0x93/0xa0
[    1.907277]  [<ffffffff813b6f20>] ? __device_attach+0x40/0x40
[    1.907277]  [<ffffffff813b4963>] bus_for_each_dev+0x73/0xc0
[    1.907277]  [<ffffffff813b662e>] driver_attach+0x1e/0x20
[    1.907277]  [<ffffffff813b6180>] bus_add_driver+0x200/0x2d0
[    1.907277]  [<ffffffffa016a000>] ? 0xffffffffa0169fff
[    1.907277]  [<ffffffff813b7634>] driver_register+0x64/0xf0
[    1.907277]  [<ffffffffa016a000>] ? 0xffffffffa0169fff
[    1.907277]  [<ffffffffa0022540>] register_virtio_driver+0x20/0x30 [virtio]
[    1.907277]  [<ffffffffa016a085>] init+0x85/0x1000 [virtio_scsi]
[    1.907277]  [<ffffffff810020e2>] do_one_initcall+0xe2/0x190
[    1.907277]  [<ffffffff810ca97b>] load_module+0x129b/0x1a90
[    1.907277]  [<ffffffff812da680>] ? ddebug_proc_write+0xf0/0xf0
[    1.907277]  [<ffffffff810c72b3>] ? copy_module_from_fd.isra.43+0x53/0x150
[    1.907277]  [<ffffffff810cb326>] SyS_finit_module+0xa6/0xd0
[    1.907277]  [<ffffffff815f2d59>] system_call_fastpath+0x16/0x1b
[    1.907277] Code: e1 39 c3 74 7e 45 84 f6 75 61 41 8b 84 24 c8 01 00 00 31 db 85 c0 74 3b 0f 1f 00 48 63 c3 48 83 c0 20 48 c1 e0 04 49 8b 7c 04 10 <48> 8b 47 20 48 8b 80 b0 02 00 00 48 8b 40 50 48 85 c0 74 07 be 
[    1.907277] RIP  [<ffffffffa0164db0>] __virtscsi_set_affinity+0x60/0x140 [virtio_scsi]
[    1.907277]  RSP <ffff8800368b7b38>
[    1.907277] CR2: 0000000000000020
[    1.979761] ---[ end trace 051471569795425c ]---
[    1.980591] [TTM] Zone  kernel: Available graphics memory: 1941584 kiB
[    1.980593] [TTM] Initializing pool allocator
[    1.980598] [TTM] Initializing DMA pool allocator
[    1.981149] [drm] fb mappable at 0x0
[    1.981150] [drm] vram aper at 0x0
[    1.981150] [drm] size 0
[    1.981151] [drm] fb depth is 24
[    1.981152] [drm]    pitch is 3840
...

Comment 3 Miroslav Rezanina 2014-11-06 18:33:02 UTC
Fix included in qemu-kvm-rhev-2.1.2-7.el7

Comment 5 Sibiao Luo 2014-11-11 08:29:54 UTC
verify this issue on qemu-kvm-rhev-2.1.2-7.el7.x86_64.

host info:
# uname -r && rpm -q qemu-kvm-rhev
3.10.0-183.el7.x86_64
qemu-kvm-rhev-2.1.2-7.el7.x86_64

e.g:...-drive file=/dev/sde,if=none,id=drive-usb-disk,cache=writeback,aio=native -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x6,num_queues=0 -device scsi-block,bus=scsi0.0,drive=drive-usb-disk,id=usb-disk
Warning: option deprecated, use lost_tick_policy property of kvm-pit instead.
QEMU 2.1.2 monitor - type 'help' for more information
(qemu) qemu-kvm: -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x6,num_queues=0: Invalid number of queues (= 0), must be a positive integer less than 62.
qemu-kvm: -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x6,num_queues=0: Device initialization failed.
qemu-kvm: -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x6,num_queues=0: Device 'virtio-scsi-pci' could not be initialized

Base on above, this issue has been fixed correctly, move to VERIFIED status, please correctly me if any mistake, thanks.

Best Regards,
sluo

Comment 6 Sibiao Luo 2014-11-11 08:32:03 UTC
e.g:...-drive file=/dev/sde,if=none,id=drive-usb-disk,cache=writeback,aio=native -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x6,num_queues=63 -device scsi-block,bus=scsi0.0,drive=drive-usb-disk,id=usb-disk
Warning: option deprecated, use lost_tick_policy property of kvm-pit instead.
QEMU 2.1.2 monitor - type 'help' for more information
(qemu) qemu-kvm: -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x6,num_queues=63: Invalid number of queues (= 63), must be a positive integer less than 62.
qemu-kvm: -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x6,num_queues=63: Device initialization failed.
qemu-kvm: -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x6,num_queues=63: Device 'virtio-scsi-pci' could not be initialized

Comment 8 errata-xmlrpc 2015-03-05 09:56:12 UTC
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-2015-0624.html