Bug 1995710
| Summary: | RFE: Allow virtio-scsi CD-ROM media change with IOThreads | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 9 | Reporter: | Stefan Hajnoczi <stefanha> |
| Component: | qemu-kvm | Assignee: | Emanuele Giuseppe Esposito <eesposit> |
| qemu-kvm sub component: | virtio-blk,scsi | QA Contact: | qing.wang <qinwang> |
| Status: | CLOSED ERRATA | Docs Contact: | |
| Severity: | low | ||
| Priority: | low | CC: | coli, eesposit, jinzhao, juzhang, kkiwi, menli, phou, qinwang, smitterl, virt-maint, zhenyzha |
| Version: | 9.0 | Keywords: | FutureFeature, RFE, Triaged |
| Target Milestone: | beta | Flags: | pm-rhel:
mirror+
|
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | qemu-kvm-7.0.0-4.el9 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2022-11-15 09:53:23 UTC | Type: | Feature Request |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Stefan Hajnoczi
2021-08-19 16:08:46 UTC
Passed testing on
Red Hat Enterprise Linux release 9.0 (Plow)
5.14.0-70.13.1.el9_0.x86_64
qemu-kvm-6.2.0-11.el9_0.2.esposem202205051552.x86_64
seabios-bin-1.15.0-1.el9.noarch
edk2-ovmf-20220126gitbb1bba3d77-3.el9.noarch
virtio-win-prewhql-0.1-215.iso
Test steps
1.
dd if=/dev/urandom of=/tmp/orig.dat bs=1M count=100
mkisofs -o /tmp/orig0.iso /tmp/orig.dat
mkisofs -o /tmp/orig1.iso /tmp/orig.dat
cp -rf /tmp/orig0.iso /tmp/new0.iso
cp -rf /tmp/orig1.iso /tmp/new1.iso
2.boot vm
/usr/libexec/qemu-kvm \
-name testvm \
-machine q35 \
-m 6G \
-smp 2 \
-cpu host,vmx,+kvm_pv_unhalt \
-device ich9-usb-ehci1,id=usb1 \
-device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \
\
\
-device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x3,chassis=1 \
-device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x3.0x1,bus=pcie.0,chassis=2 \
-device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x3.0x2,bus=pcie.0,chassis=3 \
-device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x3.0x3,bus=pcie.0,chassis=4 \
-device pcie-root-port,id=pcie-root-port-4,port=0x4,addr=0x3.0x4,bus=pcie.0,chassis=5 \
-device pcie-root-port,id=pcie-root-port-5,port=0x5,addr=0x3.0x5,bus=pcie.0,chassis=6 \
-device pcie-root-port,id=pcie-root-port-6,port=0x6,addr=0x3.0x6,bus=pcie.0,chassis=7 \
-device pcie-root-port,id=pcie-root-port-7,port=0x7,addr=0x3.0x7,bus=pcie.0,chassis=8 \
-device pcie-root-port,id=pcie_extra_root_port_0,bus=pcie.0,addr=0x4 \
-object iothread,id=iothread0 \
-device virtio-scsi-pci,id=scsi0,bus=pcie-root-port-5 \
-device virtio-scsi-pci,id=scsi1,bus=pcie-root-port-6,iothread=iothread0 \
-blockdev driver=qcow2,file.driver=file,cache.direct=off,cache.no-flush=on,file.filename=/home/kvm_autotest_root/images/rhel860-64-virtio-scsi.qcow2,node-name=drive_image1 \
-device scsi-hd,id=os,drive=drive_image1,bus=scsi0.0,bootindex=0,serial=OS_DISK \
\
-drive file=/tmp/orig0.iso,if=none,cache=none,media=cdrom,id=drive_cd0,readonly=on \
-device scsi-cd,id=cd0,drive=drive_cd0,write-cache=on,bus=scsi1.0 \
\
-blockdev node-name=file_cd1,driver=file,read-only=on,filename=/tmp/orig1.iso \
-blockdev node-name=drive_cd1,driver=raw,read-only=on,file=file_cd1 \
-device scsi-cd,id=cd1,drive=drive_cd1,write-cache=on,bus=scsi1.0 \
\
-vnc :5 \
-monitor stdio \
-qmp tcp:0:5955,server=on,wait=off \
-device virtio-net-pci,mac=9a:b5:b6:b1:b2:b7,id=nic1,netdev=nicpci,bus=pcie-root-port-7 \
-netdev tap,id=nicpci \
-chardev socket,id=qmpmonitor1,path=/var/tmp/run-qmp.log,server=on,wait=off \
-mon chardev=qmpmonitor1,mode=control \
-chardev socket,id=hmpmonitor1,path=/var/tmp/run-hmp.log,server=on,wait=off \
-mon chardev=hmpmonitor1,mode=readline \
-chardev socket,id=charserial1,path=/var/tmp/run-serial.log,server=on,wait=off \
-device isa-serial,chardev=charserial1,id=serial1 \
-chardev file,path=/var/tmp/run-seabios.log,id=charseabios1 \
-device isa-debugcon,chardev=charseabios1,iobase=0x402 \
-D debug.log \
-boot menu=on,reboot-timeout=1000,strict=off \
3 execute hmp command for drive usage
(qemu) info block
drive_cd0 (#block241): /tmp/orig0.iso (raw, read-only)
Attached to: cd0
Removable device: not locked, tray closed
Cache mode: writeback, direct
sd0: [not inserted]
Removable device: not locked, tray closed
drive_image1: /home/kvm_autotest_root/images/rhel860-64-virtio-scsi.qcow2 (qcow2)
Attached to: os
Cache mode: writeback, ignore flushes
drive_cd1: /tmp/orig1.iso (raw, read-only)
Attached to: cd1
Removable device: not locked, tray closed
Cache mode: writeback
(qemu) eject drive_cd0
(qemu) change drive_cd0 /tmp/new0.iso
(qemu) info block
drive_cd0 (#block471): /tmp/new0.iso (raw, read-only)
Attached to: cd0
Removable device: not locked, tray closed
Cache mode: writeback, direct
sd0: [not inserted]
Removable device: not locked, tray closed
drive_image1: /home/kvm_autotest_root/images/rhel860-64-virtio-scsi.qcow2 (qcow2)
Attached to: os
Cache mode: writeback, ignore flushes
drive_cd1: /tmp/orig1.iso (raw, read-only)
Attached to: cd1
Removable device: not locked, tray closed
Cache mode: writeback
4.execute qmp command for blockdev usage
{"execute":"qmp_capabilities"}
{'execute': 'blockdev-change-medium', 'arguments': {'id': 'cd1', 'filename': '/tmp/new1.iso'}}
{"return": {}}
{"timestamp": {"seconds": 1651907347, "microseconds": 802699}, "event": "DEVICE_TRAY_MOVED", "data": {"device": "", "tray-open": true, "id": "cd1"}}
{"timestamp": {"seconds": 1651907347, "microseconds": 802769}, "event": "DEVICE_TRAY_MOVED", "data": {"device": "", "tray-open": false, "id": "cd1"}}
{"return": {}}
done. Setting DTM to 12 as well, let me know if that is not ok QE bot(pre verify): Set 'Verified:Tested,SanityOnly' as gating/tier1 test pass. Passed test on
Red Hat Enterprise Linux release 9.1 Beta (Plow)
5.14.0-96.el9.x86_64
qemu-kvm-7.0.0-4.el9.x86_64
seabios-bin-1.16.0-2.el9.noarch
edk2-ovmf-20220221gitb24306f15d-1.el9.noarch
virtio-win-prewhql-0.1-219.iso
Test steps
1.
dd if=/dev/urandom of=/tmp/orig.dat bs=1M count=100
mkisofs -o /tmp/orig0.iso /tmp/orig.dat
mkisofs -o /tmp/orig1.iso /tmp/orig.dat
cp -rf /tmp/orig0.iso /tmp/new0.iso
cp -rf /tmp/orig1.iso /tmp/new1.iso
2.boot vm
/usr/libexec/qemu-kvm \
-name testvm \
-machine q35 \
-m 6G \
-smp 2 \
-cpu host,vmx,+kvm_pv_unhalt \
-device ich9-usb-ehci1,id=usb1 \
-device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \
\
\
-device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x3,chassis=1 \
-device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x3.0x1,bus=pcie.0,chassis=2 \
-device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x3.0x2,bus=pcie.0,chassis=3 \
-device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x3.0x3,bus=pcie.0,chassis=4 \
-device pcie-root-port,id=pcie-root-port-4,port=0x4,addr=0x3.0x4,bus=pcie.0,chassis=5 \
-device pcie-root-port,id=pcie-root-port-5,port=0x5,addr=0x3.0x5,bus=pcie.0,chassis=6 \
-device pcie-root-port,id=pcie-root-port-6,port=0x6,addr=0x3.0x6,bus=pcie.0,chassis=7 \
-device pcie-root-port,id=pcie-root-port-7,port=0x7,addr=0x3.0x7,bus=pcie.0,chassis=8 \
-device pcie-root-port,id=pcie_extra_root_port_0,bus=pcie.0,addr=0x4 \
-object iothread,id=iothread0 \
-device virtio-scsi-pci,id=scsi0,bus=pcie-root-port-5 \
-device virtio-scsi-pci,id=scsi1,bus=pcie-root-port-6,iothread=iothread0 \
-blockdev driver=qcow2,file.driver=file,cache.direct=off,cache.no-flush=on,file.filename=/home/kvm_autotest_root/images/rhel860-64-virtio-scsi.qcow2,node-name=drive_image1 \
-device scsi-hd,id=os,drive=drive_image1,bus=scsi0.0,bootindex=0,serial=OS_DISK \
\
-drive file=/tmp/orig0.iso,if=none,cache=none,media=cdrom,id=drive_cd0,readonly=on \
-device scsi-cd,id=cd0,drive=drive_cd0,write-cache=on,bus=scsi1.0 \
\
-blockdev node-name=file_cd1,driver=file,read-only=on,filename=/tmp/orig1.iso \
-blockdev node-name=drive_cd1,driver=raw,read-only=on,file=file_cd1 \
-device scsi-cd,id=cd1,drive=drive_cd1,write-cache=on,bus=scsi1.0 \
\
-vnc :5 \
-monitor stdio \
-qmp tcp:0:5955,server=on,wait=off \
-device virtio-net-pci,mac=9a:b5:b6:b1:b2:b7,id=nic1,netdev=nicpci,bus=pcie-root-port-7 \
-netdev tap,id=nicpci \
-chardev socket,id=qmpmonitor1,path=/var/tmp/run-qmp.log,server=on,wait=off \
-mon chardev=qmpmonitor1,mode=control \
-chardev socket,id=hmpmonitor1,path=/var/tmp/run-hmp.log,server=on,wait=off \
-mon chardev=hmpmonitor1,mode=readline \
-chardev socket,id=charserial1,path=/var/tmp/run-serial.log,server=on,wait=off \
-device isa-serial,chardev=charserial1,id=serial1 \
-chardev file,path=/var/tmp/run-seabios.log,id=charseabios1 \
-device isa-debugcon,chardev=charseabios1,iobase=0x402 \
-D debug.log \
-boot menu=on,reboot-timeout=1000,strict=off \
3 execute hmp command for drive usage
(qemu) info block
drive_cd0 (#block241): /tmp/orig0.iso (raw, read-only)
Attached to: cd0
Removable device: not locked, tray closed
Cache mode: writeback, direct
sd0: [not inserted]
Removable device: not locked, tray closed
drive_image1: /home/kvm_autotest_root/images/rhel860-64-virtio-scsi.qcow2 (qcow2)
Attached to: os
Cache mode: writeback, ignore flushes
drive_cd1: /tmp/orig1.iso (raw, read-only)
Attached to: cd1
Removable device: not locked, tray closed
Cache mode: writeback
(qemu) eject drive_cd0
(qemu) change drive_cd0 /tmp/new0.iso
(qemu) info block
drive_cd0 (#block471): /tmp/new0.iso (raw, read-only)
Attached to: cd0
Removable device: not locked, tray closed
Cache mode: writeback, direct
sd0: [not inserted]
Removable device: not locked, tray closed
drive_image1: /home/kvm_autotest_root/images/rhel860-64-virtio-scsi.qcow2 (qcow2)
Attached to: os
Cache mode: writeback, ignore flushes
drive_cd1: /tmp/orig1.iso (raw, read-only)
Attached to: cd1
Removable device: not locked, tray closed
Cache mode: writeback
4.execute qmp command for blockdev usage
{"execute":"qmp_capabilities"}
{'execute': 'blockdev-change-medium', 'arguments': {'id': 'cd1', 'filename': '/tmp/new1.iso'}}
{"return": {}}
{"timestamp": {"seconds": 1651907347, "microseconds": 802699}, "event": "DEVICE_TRAY_MOVED", "data": {"device": "", "tray-open": true, "id": "cd1"}}
{"timestamp": {"seconds": 1651907347, "microseconds": 802769}, "event": "DEVICE_TRAY_MOVED", "data": {"device": "", "tray-open": false, "id": "cd1"}}
{"return": {}}
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 (Moderate: qemu-kvm security, bug fix, and enhancement update), 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://access.redhat.com/errata/RHSA-2022:7967 |