Bug 625948 - qemu exits when hot adding rtl8139 nic to win2k8 guest
qemu exits when hot adding rtl8139 nic to win2k8 guest
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm (Show other bugs)
6.0
All Linux
low Severity medium
: rc
: ---
Assigned To: Alex Williamson
Virtualization Bugs
:
Depends On:
Blocks: 580954
  Show dependency treegraph
 
Reported: 2010-08-20 17:47 EDT by Alex Williamson
Modified: 2013-01-09 18:03 EST (History)
11 users (show)

See Also:
Fixed In Version: qemu-kvm-0.12.1.2-2.114.el6
Doc Type: Bug Fix
Doc Text:
Adding an rtl8139 NIC to an active Windows 2008 guest may result in the qemu-kvm process exiting. To work around this issue, shutdown the guest before adding additional rtl8139 NICs. Alternatively, install the virtio-net drivers and add a virtio NIC.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2011-05-19 07:30:45 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2011:0534 normal SHIPPED_LIVE Important: qemu-kvm security, bug fix, and enhancement update 2011-05-19 07:20:36 EDT

  None (edit)
Description Alex Williamson 2010-08-20 17:47:16 EDT
Description of problem:
Using virt-manager to exercise hotplug with a win2k8 64bit guest, I can often hit an error when adding an rtl8139 where qemu exits.  The problem occurs when the guest assigns I/O port addresses to the device that overlap a range registered inside qemu for deprecated vga vbe handlers.

Version-Release number of selected component (if applicable):
qemu-kvm-0.12.1.2-2.112.el6.x86_64

How reproducible:
easy

Steps to Reproduce:
1. create a win2k8 guest
2. hot add an rtl8139
3.
  
Actual results:
guest dies

Expected results:
guest continues running and nic works

Additional info:
Comment 2 Alex Williamson 2010-08-20 18:06:27 EDT
Upstream patch - http://lists.nongnu.org/archive/html/qemu-devel/2010-08/msg01074.html
Comment 6 Alex Williamson 2010-08-30 14:08:47 EDT
    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:
Adding an rtl8139 NIC to a running Windows 2008 guest may result in the qemu-kvm process exiting.  To avoid this issue, shutdown and add additional rtl8139 NICs only while the guest is not running, or install virtio-net drivers and add a virtio NIC instead of an rtl8139 NIC.
Comment 7 YangFeng 2010-09-08 04:12:22 EDT
Reproduce this bug on Windows 7 64. 
Guest core dump.

(gdb) bt
#0  0x0000003f1d8329c5 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x0000003f1d8341a5 in abort () at abort.c:94
#2  0x000000000040d308 in hw_error (fmt=<value optimized out>) at /usr/src/debug/qemu-kvm-0.12.1.2/vl.c:356
#3  0x00000000004a161b in register_ioport_write (start=<value optimized out>, length=<value optimized out>, size=6, func=0xffffffffffffffff, opaque=0x7f2bc28d6710) at ioport.c:170
#4  0x0000000000434b75 in rtl8139_ioport_map (pci_dev=0x417b010, region_num=<value optimized out>, addr=65280, size=<value optimized out>, type=<value optimized out>) at /usr/src/debug/qemu-kvm-0.12.1.2/hw/rtl8139.c:3207
#5  0x00000000004189bb in pci_update_mappings (d=0x417b010) at /usr/src/debug/qemu-kvm-0.12.1.2/hw/pci.c:1006
#6  0x000000000042a969 in kvm_handle_io (env=0x1d2c810) at /usr/src/debug/qemu-kvm-0.12.1.2/kvm-all.c:538
#7  kvm_run (env=0x1d2c810) at /usr/src/debug/qemu-kvm-0.12.1.2/qemu-kvm.c:975
#8  0x000000000042aa09 in kvm_cpu_exec (env=<value optimized out>) at /usr/src/debug/qemu-kvm-0.12.1.2/qemu-kvm.c:1658
#9  0x000000000042b62f in kvm_main_loop_cpu (_env=0x1d2c810) at /usr/src/debug/qemu-kvm-0.12.1.2/qemu-kvm.c:1900
#10 ap_main_loop (_env=0x1d2c810) at /usr/src/debug/qemu-kvm-0.12.1.2/qemu-kvm.c:1950
#11 0x0000003f1dc077e1 in start_thread (arg=0x7f2bc28d6710) at pthread_create.c:301
#12 0x0000003f1d8e153d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
(gdb)

Some message got from qemu-kvm
(qemu) create_cairo_context: using cairo canvas
 (qemu) qemu: hardware error: register_ioport_write: invalid opaque
 (qemu) CPU #0:
 (qemu) RAX=0000000000000407 RBX=0000000000000002 RCX=fffff88003132460 RDX=0000000000000cfc
 (qemu) RSI=fffff88003132620 RDI=0000000000000004 RBP=fffff88003132460 RSP=fffff880031323a8
 (qemu) R8 =0000000000000000 R9 =fffff88003132620 R10=0000000000000000 R11=0000000000000006
 (qemu) R12=fffff80002642890 R13=fffff88000d7c200 R14=fffff800026481d0 R15=0000000000000001
 (qemu) RIP=fffff8000262b4bb RFL=00000206 [-----P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
 (qemu) ES =002b 0000000000000000 ffffffff 00c0f300 DPL=3 DS   [-WA]
 (qemu) CS =0010 0000000000000000 00000000 00209b00 DPL=0 CS64 [-RA]
 (qemu) SS =0018 0000000000000000 ffffffff 00c09300 DPL=0 DS   [-WA]
 (qemu) DS =002b 0000000000000000 ffffffff 00c0f300 DPL=3 DS   [-WA]
 (qemu) FS =0053 00000000fffdc000 00003c00 0040f300 DPL=3 DS   [-WA]
 (qemu) GS =002b fffff80002851d00 ffffffff 00c0f300 DPL=3 DS   [-WA]
 (qemu) LDT=0000 0000000000000000 ffffffff 00000000
 (qemu) TR =0040 fffff80000b96080 00000067 00008b00 DPL=0 TSS64-busy
 (qemu) GDT=     fffff80000b95000 0000007f
 (qemu) IDT=     fffff80000b95080 00000fff
 (qemu) CR0=80050031 CR2=0000000077765360 CR3=0000000000187000 CR4=000006f8
 (qemu) DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
 (qemu) DR6=00000000ffff0ff0 DR7=0000000000000400
 (qemu) FCW=027f FSW=3800 [ST=7] FTW=80 MXCSR=00000000
 (qemu) FPR0=9fc0000000000000 4008 FPR1=0000000000000000 0000
 (qemu) FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
 (qemu) FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
 (qemu) FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
 (qemu) XMM00=fffff800029e0210fffff8a0000a0008 XMM01=400000000000802000d80104100000d8
 (qemu) XMM02=000000000000000000000000002cf2a0 XMM03=000000000000000000000000002cf2c0
 (qemu) XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
 (qemu) XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000
 (qemu) XMM08=00000000000000000000000000000000 XMM09=00000000000000000000000000000000
 (qemu) XMM10=00000000000000000000000000000000 XMM11=00000000000000000000000000000000
 (qemu) XMM12=00000000000000000000000000000000 XMM13=00000000000000000000000000000000
 (qemu) XMM14=00000000000000000000000000000000 XMM15=00000000000000000000000000000000
 (qemu) CPU #1:
 (qemu) RAX=000000000002bb21 RBX=0000000000000000 RCX=fffffa800797a890 RDX=fffffa8007af28b8
 (qemu) RSI=fffff880009e6180 RDI=0000000000000001 RBP=0000000000000000 RSP=fffff88002e5bc98
 (qemu) R8 =0000000000000000 R9 =00000000031ab2d4 R10=000000000000136e R11=fffffa80066ccd30
 (qemu) R12=fffffa8007af2890 R13=fffffa8007af2500 R14=fffffa8007af2800 R15=0000000000000000
 (qemu) RIP=fffff88003e7f9c2 RFL=00000246 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=1
 (qemu) ES =002b 0000000000000000 ffffffff 00c0f300 DPL=3 DS   [-WA]
 (qemu) CS =0010 0000000000000000 ffffffff 00a09b00 DPL=0 CS64 [-RA]
 (qemu) SS =0018 0000000000000000 ffffffff 00c09300 DPL=0 DS   [-WA]
 (qemu) DS =002b 0000000000000000 ffffffff 00c0f300 DPL=3 DS   [-WA]
 (qemu) FS =0053 00000000fffd8000 00007c00 0040f300 DPL=3 DS   [-WA]
 (qemu) GS =002b fffff880009e6000 ffffffff 00c0f300 DPL=3 DS   [-WA]
 (qemu) LDT=0000 0000000000000000 ffffffff 00000000
 (qemu) TR =0040 fffff880009eaec0 00000067 00008b00 DPL=0 TSS64-busy
 (qemu) GDT=     fffff880009f14c0 0000007f
 (qemu) IDT=     fffff880009f1540 00000fff
 (qemu) CR0=80050031 CR2=000007fef777f268 CR3=0000000000187000 CR4=000006f8
 (qemu) DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
 (qemu) DR6=00000000ffff0ff0 DR7=0000000000000400
 (qemu) FCW=027f FSW=3800 [ST=7] FTW=80 MXCSR=00000000
 (qemu) FPR0=9fc0000000000000 4008 FPR1=0000000000000000 0000
 (qemu) FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
 (qemu) FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
 (qemu) FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
 (qemu) XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
 (qemu) XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
 (qemu) XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
 (qemu) XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000
 (qemu) XMM08=00000000000000000000000000000000 XMM09=00000000000000000000000000000000
 (qemu) XMM10=00000000000000000000000000000000 XMM11=00000000000000000000000000000000
 (qemu) XMM12=00000000000000000000000000000000 XMM13=00000000000000000000000000000000
 (qemu) XMM14=00000000000000000000000000000000 XMM15=00000000000000000000000000000000
 (qemu) CPU #2:
 (qemu) EAX=00000000 EBX=00000000 ECX=00000203 EDX=00000000
 (qemu) ESI=000085b4 EDI=00000000 EBP=00000000 ESP=00000000
 (qemu) EIP=0000f0a2 EFL=00010002 [-------] CPL=3 II=0 A20=1 SMM=0 HLT=1
 (qemu) ES =0000 00000000 0000ffff 0000f300
 (qemu) CS =f000 000f0000 0000ffff 0000f300
 (qemu) SS =0000 00000000 0000ffff 0000f300
 (qemu) DS =f000 000f0000 0000ffff 0000f300
 (qemu) FS =0000 00000000 0000ffff 0000f300
 (qemu) GS =0000 00000000 0000ffff 0000f300
 (qemu) LDT=0000 00000000 0000ffff 00008200
 (qemu) TR =0000 feffd000 00002088 00008b00
 (qemu) GDT=     00000000 0000ffff
 (qemu) IDT=     00000000 0000ffff
 (qemu) CR0=60000010 CR2=00000000 CR3=00000000 CR4=00000000
 (qemu) DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000
 (qemu) DR6=ffff0ff0 DR7=00000400
 (qemu) FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00000000
 (qemu) FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
 (qemu) FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
 (qemu) FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
 (qemu) FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
 (qemu) XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
 (qemu) XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
 (qemu) XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
 (qemu) XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000
 (qemu) CPU #3:
 (qemu) EAX=00000000 EBX=00000000 ECX=00000203 EDX=00000000
 (qemu) ESI=000085b4 EDI=00000000 EBP=00000000 ESP=00000000
 (qemu) EIP=0000f0a2 EFL=00010006 [-----P-] CPL=3 II=0 A20=1 SMM=0 HLT=1
 (qemu) ES =0000 00000000 0000ffff 0000f300
 (qemu) CS =f000 000f0000 0000ffff 0000f300
 (qemu) SS =0000 00000000 0000ffff 0000f300
 (qemu) DS =f000 000f0000 0000ffff 0000f300
 (qemu) FS =0000 00000000 0000ffff 0000f300
 (qemu) GS =0000 00000000 0000ffff 0000f300
 (qemu) LDT=0000 00000000 0000ffff 00008200
 (qemu) TR =0000 feffd000 00002088 00008b00
 (qemu) GDT=     00000000 0000ffff
 (qemu) IDT=     00000000 0000ffff
 (qemu) CR0=60000010 CR2=00000000 CR3=00000000 CR4=00000000
 (qemu) DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000
 (qemu) DR6=ffff0ff0 DR7=00000400
 (qemu) FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00000000
 (qemu) FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
 (qemu) FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
 (qemu) FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
 (qemu) FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
 (qemu) XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
 (qemu) XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
 (qemu) XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
 (qemu) XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000
Comment 8 Shirley Zhou 2010-09-15 04:14:20 EDT
same issue happens when hot add rtl8139 nic to windows xp guest.
Comment 9 Alex Williamson 2010-09-22 11:52:54 EDT
Brew build with fix:

https://brewweb.devel.redhat.com/taskinfo?taskID=2775863
Comment 11 Ryan Lerch 2010-09-29 00:12:37 EDT
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1 +1 @@
-Adding an rtl8139 NIC to a running Windows 2008 guest may result in the qemu-kvm process exiting.  To avoid this issue, shutdown and add additional rtl8139 NICs only while the guest is not running, or install virtio-net drivers and add a virtio NIC instead of an rtl8139 NIC.+Adding an rtl8139 NIC to an active Windows 2008 guest may result in the qemu-kvm process exiting.  To word around this issue, shutdown the guest before addind additional rtl8139 NICs. Alternatively, install the virtio-net drivers and add a virtio NIC.
Comment 15 Eric Blake 2010-10-25 16:32:41 EDT
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1 +1 @@
-Adding an rtl8139 NIC to an active Windows 2008 guest may result in the qemu-kvm process exiting.  To word around this issue, shutdown the guest before addind additional rtl8139 NICs. Alternatively, install the virtio-net drivers and add a virtio NIC.+Adding an rtl8139 NIC to an active Windows 2008 guest may result in the qemu-kvm process exiting.  To work around this issue, shutdown the guest before adding additional rtl8139 NICs. Alternatively, install the virtio-net drivers and add a virtio NIC.
Comment 16 Alex Williamson 2010-11-10 08:32:25 EST
*** Bug 651715 has been marked as a duplicate of this bug. ***
Comment 20 errata-xmlrpc 2011-05-19 07:30:45 EDT
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2011-0534.html
Comment 21 errata-xmlrpc 2011-05-19 08:47:51 EDT
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

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

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