RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1074963 - virtio/rtl8139 cause qemu-kvm "internal error" in des host when migrating qemu-kvm process without guest image from rhel6.5 to rhel7.0 host
Summary: virtio/rtl8139 cause qemu-kvm "internal error" in des host when migrating q...
Keywords:
Status: CLOSED DUPLICATE of bug 1027565
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: qemu-kvm
Version: 7.0
Hardware: x86_64
OS: Linux
medium
high
Target Milestone: rc
: ---
Assignee: Radim Krčmář
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-03-11 09:47 UTC by FuXiangChun
Modified: 2014-04-15 19:36 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-04-15 19:36:17 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description FuXiangChun 2014-03-11 09:47:43 UTC
Description of problem:
Boot a qemu-kvm process without guest image(don't include guest) but it include virtio/rtl8139 devices in src rhel6.5 host. then migrate it to rhel7.0 host.   In des host. qemu-kvm show error:

(qemu) KVM internal error. Suberror: 1
emulation failure
EAX=00000000 EBX=00008de7 ECX=dfea5e74 EDX=f000fea5
ESI=dfea5e74 EDI=dfea5ea0 EBP=00000001 ESP=00000002
EIP=00010000 EFL=00010046 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0000 00000000 0000ffff 00009300
CS =f000 000f0000 0000ffff 00009b00
SS =9c72 0009c720 0000ffff 00009300
DS =0000 00000000 0000ffff 00009300
FS =0000 00000000 0000ffff 00009300
GS =0000 00000000 0000ffff 00009300
LDT=0000 00000000 ffffffff 00c00000
TR =0030 00005cc4 00000067 00008b00
GDT=     00005d30 00000037
IDT=     00000000 0000ffff
CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000 
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000000
Code=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00> 08 20 00 00 ee 10 00 08 08 20 00 00 ee 10 00 10 08 20 00 00 ee 10 00 18 08 20 00 00 ee

(qemu) info status
VM status: paused (internal-error)


Version-Release number of selected component (if applicable):
rhel6.5 host:
2.6.32-448.el6.x86_64
qemu-kvm-rhev-0.12.1.2-2.422.el6.x86_64

rhel7.0 host:
3.10.0-108.el7.x86_64
qemu-kvm-1.5.3-52.el7.x86_64

How reproducible:
90%

Steps to Reproduce:
1.In src rhel6.5 host
/usr/libexec/qemu-kvm -M rhel6.5.0 -cpu Opteron_G2 -enable-kvm -m 4G  -smp 4 -name rhel6.5 -rtc base=localtime,clock=host,driftfix=slew -uuid 6afa5f93-2d4f-420f-81c6-e5fdddbd1c83 -vnc :1  -monitor stdio -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,ctrl_mac_addr=on,netdev=hostnet0,id=virtio-net-pci0,mac=00:22:15:2b:5b:8c,bus=pci.0,addr=0x12

2.In dec rhel7.0 host
/usr/libexec/qemu-kvm -M rhel6.5.0 -cpu Opteron_G2 -enable-kvm -m 4G  -smp 4 -name rhel6.5 -rtc base=localtime,clock=host,driftfix=slew -uuid 6afa5f93-2d4f-420f-81c6-e5fdddbd1c83 -vnc :1  -monitor stdio -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,ctrl_mac_addr=on,netdev=hostnet0,id=virtio-net-pci0,mac=00:22:15:2b:5b:8c,bus=pci.0,addr=0x12 -incoming tcp:0:5555

3.do migration
migrate -d tcp:hostip:5555

Actual results:
In des host:
(qemu) KVM internal error. Suberror: 1
emulation failure
EAX=00000000 EBX=00008de7 ECX=dfea5e74 EDX=f000fea5
ESI=dfea5e74 EDI=dfea5ea0 EBP=00000001 ESP=00000002
EIP=00010000 EFL=00000046 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0000 00000000 0000ffff 00009300
CS =f000 000f0000 0000ffff 00009b00
SS =9c72 0009c720 0000ffff 00009300
DS =0000 00000000 0000ffff 00009300
FS =0000 00000000 0000ffff 00009300
GS =0000 00000000 0000ffff 00009300
LDT=0000 00000000 0000ffff 00000000
TR =0030 00005cc4 00000067 00008b00
GDT=     00005d30 00000037
IDT=     00000000 0000ffff
CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000 
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000000
Code=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00> 08 20 00 00 ee 10 00 08 08 20 00 00 ee 10 00 10 08 20 00 00 ee 10 00 18 08 20 00 00 ee

(qemu) info status
VM status: paused (internal-error)



Expected results:
migration is successful

Additional info:
1.If add guest image to qemu-kvm command line. then migration is successful. 
e.g  add this guest to qemu-kvm cli.  
-drive file=/mnt/RHEL6.5-20131019.1_Server_x86_64.qcow2bk,if=none,id=drive-data-disk2,format=qcow2,cache=none,werror=stop,rerror=stop -device virtio-scsi-pci,bus=pci.0,addr=0x8,id=scsi1 -device scsi-disk,drive=drive-data-disk2,id=data-disk2

2.If remove virtio-net-pci/rtl8139 device from qemu-kvm command line. then migration is successful.

Comment 2 Radim Krčmář 2014-04-15 19:36:17 UTC
Motto: 00 00 != add %al,(%bx,%si)

We bug because RHEL7 qemu does not migrate all RHEL6 memory to its previous location, which leads to infinite loops or emulation errors if there suddenly are zeroes at instruction pointer in early boot.

[issue 'c' and 'stop' qemu commands quickly]
(qemu) x /16 0xc0000
00000000000c0000: 0xe946aa55 0x00000121 0x00000000 0x00000000
00000000000c0010: 0x00000000 0x00000000 0x0000010f 0x42490000
00000000000c0020: 0x6c50004d 0x36387865 0x636f422f 0x56207368
00000000000c0030: 0x69424147 0x2820736f 0x29494350 0x75630020
[migrate]
(qemu) x /16 0xc0000
00000000000c0000: 0x00000000 0x00000000 0x00000000 0x00000000
00000000000c0010: 0x00000000 0x00000000 0x00000000 0x00000000
00000000000c0020: 0x00000000 0x00000000 0x00000000 0x00000000
00000000000c0030: 0x00000000 0x00000000 0x00000000 0x00000000

We don't use this memory for normal operation, so if we migrate after few seconds, everything works, not ... I originally missed the possibility of reboots/sleep, so fixing this didn't seem critical, but luckily, Laszlo worked on it under a different bug.

(Network device and missing disk image were ruses -- the guest boots faster and
 tests didn't catch this broken state.)

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


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