Hide Forgot
Description of problem: boot up a guest attaching a data disk speicified if=virtio/ide in cli, the QEMU will quit with wrong warning message: 'virtio-blk-pci.drive' can't take value 'drive-data-disk', it's in use. It should prompt that unsupported bus type 'viritio'/'ide'/'floppy' if it was not supported. Version-Release number of selected component (if applicable): host info: # uname -r && rpm -q qemu-kvm-rhev 2.6.32-422.el6.x86_64 qemu-kvm-rhev-0.12.1.2-2.412.el6.x86_64 guest info: 2.6.32-422.el6.x86_64 How reproducible: 100% Steps to Reproduce: 1.boot up a guest attaching a data disk speicified if=virtio/ide/floppy in cli. e.g.1:...-drive file=/mnt/my-data-disk.qcow2,if=virtio,id=drive-data-disk,format=qcow2,cache=none -device virtio-scsi-pci,bus=pci.0,addr=0x7,id=scsi0 -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0 qemu-kvm: -drive file=/mnt/my-data-disk.qcow2,if=virtio,id=drive-data-disk,format=qcow2,cache=none: Property 'virtio-blk-pci.drive' can't take value 'drive-data-disk', it's in use /etc/qemu-ifdown: could not launch network script e.g.2:...-drive file=/mnt/my-data-disk.qcow2,if=ide,id=drive-data-disk,format=qcow2,cache=none -device virtio-scsi-pci,bus=pci.0,addr=0x7,id=scsi0 -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0 qemu-kvm: -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0: Property 'scsi-hd.drive' can't take value 'drive-data-disk', it's in use /etc/qemu-ifdown: could not launch network script e.g3:...-drive file=/mnt/my-data-disk.qcow2,if=floppy,id=drive-data-disk,format=qcow2,cache=none -device virtio-scsi-pci,bus=pci.0,addr=0x7,id=scsi0 -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0 qemu-kvm: -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0: Property 'scsi-hd.drive' can't take value 'drive-data-disk', it's in use /etc/qemu-ifdown: could not launch network script e.g.4:...-drive file=/mnt/my-data-disk.qcow2,if=cdrom,id=drive-data-disk,format=qcow2,cache=none -device virtio-scsi-pci,bus=pci.0,addr=0x7,id=scsi0 -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0 qemu-kvm: -drive file=/mnt/my-data-disk.qcow2,if=cdrom,id=drive-data-disk,format=qcow2,cache=none: unsupported bus type 'cdrom' /etc/qemu-ifdown: could not launch network script 2. 3. Actual results: There is wrong warning message prompt if specify if=virtio/ide/floppy. But if specify if=cdrom, it will quit with message: unsupported bus type 'cdrom'. Expected results: It should quit with prompt that unsupported bus type 'viritio'/'ide'/'floppy' if it was not supported. Additional info:
The driver-data-disk is was not used in other options, I have no any clue here, maybe it's a commandline parser bug or pci issue. Example of my qemu-kvm command line: # /usr/libexec/qemu-kvm -M pc -S -cpu host -enable-kvm -m 2048 -smp 2,sockets=2,cores=1,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,bus=virtio-serial0.0,id=port1 -chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port2 -drive file=/mnt/RHEL-Server-6.4-64.qcow2,if=none,id=drive-virtio-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop -device virtio-blk-pci,vectors=0,bus=pci.0,addr=0x4,scsi=off,drive=drive-virtio-disk,id=virtio-disk,bootindex=1 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virtio-net-pci0,mac=2C:41:38:B6:40:21,bus=pci.0,addr=0x5 -device virtio-balloon-pci,id=ballooning,bus=pci.0,addr=0x6 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -k en-us -boot menu=on -spice disable-ticketing,port=5931 -monitor stdio -drive file=/mnt/my-data-disk.qcow2,if=floppy,id=drive-data-disk,format=qcow2,cache=none -device virtio-scsi-pci,bus=pci.0,addr=0x7,id=scsi0 -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0
# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 16 On-line CPU(s) list: 0-15 Thread(s) per core: 1 Core(s) per socket: 8 Socket(s): 2 NUMA node(s): 4 Vendor ID: AuthenticAMD CPU family: 16 Model: 9 Stepping: 1 CPU MHz: 1999.907 BogoMIPS: 4000.08 Virtualization: AMD-V L1d cache: 64K L1i cache: 64K L2 cache: 512K L3 cache: 5118K NUMA node0 CPU(s): 0,2,4,6 NUMA node1 CPU(s): 8,10,12,14 NUMA node2 CPU(s): 9,11,13,15 NUMA node3 CPU(s): 1,3,5,7
You have: -drive file=/mnt/my-data-disk.qcow2,if=floppy,id=drive-data-disk,format=qcow2,cache=none -device virtio-scsi-pci,bus=pci.0,addr=0x7,id=scsi0 -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0 So drive-data-disk is in use by both virtio-scsi and floppy. So your second and third example have a perfectly fine error. In the first example, the error ("Property 'virtio-blk-pci.drive' can't take value 'drive-data-disk', it's in use") refers to the virtio-blk-pci device that "if=virtio" creates implicitly. It does not refer to the scsi-hd device. -drive file=/mnt/my-data-disk.qcow2,if=virtio,id=drive-data-disk,format=qcow2,cache=none -device scsi-hd,drive=drive-data-disk,id=data-disk,bus=scsi0.0 But the error is only obscure, not wrong.