Bug 720237

Summary: usb migration compatibility
Product: Red Hat Enterprise Linux 6 Reporter: Gerd Hoffmann <kraxel>
Component: qemu-kvmAssignee: Gerd Hoffmann <kraxel>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.2CC: juzhang, kraxel, mkenneth, qzhang, tburke, virt-maint, xfu
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-0.12.1.2-2.175.el6 Doc Type: Bug Fix
Doc Text:
Bug wasn't present in any released version.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-06 15:53:09 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Gerd Hoffmann 2011-07-11 06:21:07 UTC
Description of problem:

usb got live migration support in 6.2,
this must be disabled for 'qemu -M rhel6.1.0'
to maintain backward compatibility.

Comment 6 FuXiangChun 2011-09-27 06:52:51 UTC
reproduce on qemu-kvm-0.12.1.2-2.172.el6.x86_64
verify on qemu-kvm-0.12.1.2-2.192.el6.x86_64

steps to reproduce:
1.boot guest from src host
 /usr/libexec/qemu-kvm -m 4G -smp 4 -M rhel6.1.0 -drive file=rhel62-guest.raw,if=none,id=drive-virtio0-0-0,format=raw,werror=ignore,rerror=ignore,cache=none,aio=native,aio=native -device virtio-blk-pci,drive=drive-virtio0-0-0,id=virti0-0-0,bootindex=1 -uuid 9e6f04cf-2ad7-45aa-9333-2d2ee26570c6 -monitor stdio -device usb-ehci,id=ehci  -drive file=usb-storage.qcow2,if=none,id=drive-usb-0-0,media=disk,format=qcow2,cache=none,werror=stop,rerror=stop,aio=native -device usb-storage,drive=drive-usb-0-0,id=usb-0-0,bus=ehci.0,port=1

2.boot guest from des host
/usr/libexec/qemu-kvm -m 4G -smp 4 -M rhel6.1.0 -drive file=rhel62-guest.raw,if=none,id=drive-virtio0-0-0,format=raw,werror=ignore,rerror=ignore,cache=none,aio=native,aio=native -device virtio-blk-pci,drive=drive-virtio0-0-0,id=virti0-0-0,bootindex=1 -uuid 9e6f04cf-2ad7-45aa-9333-2d2ee26570c6 -monitor stdio -device usb-ehci,id=ehci  -drive file=usb-storage.qcow2,if=none,id=drive-usb-0-0,media=disk,format=qcow2,cache=none,werror=stop,rerror=stop,aio=native -device usb-storage,drive=drive-usb-0-0,id=usb-0-0,bus=ehci.0,port=1 -incoming tcp:0:5555

3. migrate -d tcp:xxxx:5555

actual result:
1)qemu-kvm-0.12.1.2-2.172.el6.x86_64
 migration is successful.

2)qemu-kvm-0.12.1.2-2.192.el6.x86_64
  migration fail
(qemu) migrate -d tcp:10.66.9.97:5555
state blocked by non-migratable device '0000:00:05.0/ehci'

base on above testing result, this bug has been fixed.

Comment 8 Gerd Hoffmann 2011-11-18 16:22:33 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Bug wasn't present in any released version.

Comment 9 errata-xmlrpc 2011-12-06 15:53:09 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.

http://rhn.redhat.com/errata/RHSA-2011-1531.html

Comment 10 Yang Meng 2015-05-05 09:14:17 UTC
Hi Gerd,
    I am testing on RHEV-6.7 and i tried the same step as #comment6, but there is no waring like "state blocked by non-migratable device '0000:00:05.0/ehci'" ,the migration will be complete.

host info:

qemu-kvm-rhev-0.12.1.2-2.469.el6.x86_64
kernel-2.6.32-555.el6.x86_64

step:
1) boot in src host:

/usr/libexec/qemu-kvm \
    -M rhel6.1.0 \
    -nodefaults \
    -vga qxl \
    -chardev socket,id=qmp_id_qmpmonitor1,path=/tmp/monitor-qmp,server,nowait \
    -mon chardev=qmp_id_qmpmonitor1,mode=control \
    -chardev socket,id=serial_id_serial0,path=/tmp/serial-serial,server,nowait \
    -device isa-serial,chardev=serial_id_serial0 \
    -chardev socket,id=seabioslog,path=/tmp/seabios-2014-12-02,server,nowait \
    -device virtio-net-pci,mac=fa:f7:f8:5f:f2:52,id=idn0VnaA,vectors=4,netdev=id8xJhp7,bus=pci.0 \
    -netdev tap,ifname=tap1,id=id8xJhp7,vhost=on \
    -m 8192 \
    -smp 8,maxcpus=10 \
    -cpu 'SandyBridge' \
    -boot menu=on \
    -enable-kvm \
    -spice port=8000,disable-ticketing \
    -drive id=drive_image1,if=none,cache=none,aio=native,file=/mnt/RHEL-Server-6.7-32-virtio.raw \
    -device ide-drive,id=image1,drive=drive_image1,bus=ide.0,unit=0 \
    -monitor stdio \
    -device usb-ehci,id=ehci \
    -device usb-storage,drive=drive-usb-0-1,id=usb-0-1,removable=on,bus=ehci.0,port=1 \
    -drive file=/mnt/u1.qcow2,if=none,id=drive-usb-0-1,media=disk,format=qcow2,cache=none,aio=native \


2)boot in dst host:

/usr/libexec/qemu-kvm \
    -M rhel6.1.0 \
    -nodefaults \
    -vga qxl \
    -chardev socket,id=qmp_id_qmpmonitor1,path=/tmp/monitor-qmp,server,nowait \
    -mon chardev=qmp_id_qmpmonitor1,mode=control \
    -chardev socket,id=serial_id_serial0,path=/tmp/serial-serial,server,nowait \
    -device isa-serial,chardev=serial_id_serial0 \
    -chardev socket,id=seabioslog,path=/tmp/seabios-2014-12-02,server,nowait \
    -device virtio-net-pci,mac=fa:f7:f8:5f:f2:52,id=idn0VnaA,vectors=4,netdev=id8xJhp7,bus=pci.0 \
    -netdev tap,ifname=tap1,id=id8xJhp7,vhost=on \
    -m 8192 \
    -smp 8,maxcpus=10 \
    -cpu 'SandyBridge' \
    -boot menu=on \
    -enable-kvm \
    -spice port=8000,disable-ticketing \
    -drive id=drive_image1,if=none,cache=none,aio=native,file=/mnt/RHEL-Server-6.7-32-virtio.raw \
    -device ide-drive,id=image1,drive=drive_image1,bus=ide.0,unit=0 \
    -monitor stdio \
    -device usb-ehci,id=ehci \
    -device usb-storage,drive=drive-usb-0-1,id=usb-0-1,removable=on,bus=ehci.0,port=1 \
    -drive file=/mnt/u1.qcow2,if=none,id=drive-usb-0-1,media=disk,format=qcow2,cache=none,aio=native \
    -incoming "tcp:0:5800" \



3)migrate -d tcp:xxxx:5800

4)actual result:

migration is successfull.

5)expected result:

migration fails for "

state blocked by non-migratable device '0000:00:05.0/ehci "

6) from the result that ,the case fails so i want to ask if this is a regression bug or not ,if it is ,should i open a new bug ?



src host cpu:

processor	: 3
vendor_id	: GenuineIntel
cpu family	: 6
model		: 62
model name	: Intel(R) Xeon(R) CPU E5-1607 v2 @ 3.00GHz
stepping	: 4
microcode	: 1064
cpu MHz		: 2992.567
cache size	: 10240 KB
physical id	: 0
siblings	: 4state blocked by non-migratable device '0000:00:05.0/ehci
core id		: 3
cpu cores	: 4
apicid		: 6
initial apicid	: 6
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms


dst host cpu:

processor	: 31
vendor_id	: GenuineIntel
cpu family	: 6
model		: 62
model name	: Intel(R) Xeon(R) CPU E5-2640 v2 @ 2.00GHz
stepping	: 4
microcode	: 1064
cpu MHz		: 1200.000
cache size	: 20480 KB
physical id	: 1
siblings	: 16
core id		: 7
cpu cores	: 8
apicid		: 47
initial apicid	: 47
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
bogomips	: 3989.83

Comment 11 Gerd Hoffmann 2015-05-07 07:46:29 UTC
> there is no waring like "state blocked by non-migratable device
> '0000:00:05.0/ehci'" ,the migration will be complete.

That'll only happen with the RHEL-6.1 qemu-kvm version,
not 6.2+ with -M rhel6.1.0