Bug 1181934

Summary: iPXE virtio-net hangs on tftp transfer on OVMF guest
Product: Red Hat Enterprise Linux 7 Reporter: Xiaoqing Wei <xwei>
Component: ipxeAssignee: Michael S. Tsirkin <mst>
Status: CLOSED DUPLICATE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.1CC: hhuang, juzhang, lersek, xwei
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-01-26 07:58:34 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
vm hang here
none
cat /sys/kernel/debug/tracing/trace
none
the efi app for pxe booting none

Description Xiaoqing Wei 2015-01-14 06:49:11 UTC
Created attachment 979864 [details]
vm hang here

Description of problem:

iPXE virtio-net hangs on tftp transfer on OVMF guest

Version-Release number of selected component (if applicable):

ipxe-roms-qemu-20130517-6.gitc4bce43.el7.noarch
ipxe.git-1.0.0-1553.b203.gabf875a.x86_64
qemu-kvm-rhev-2.1.2-18.el7.x86_64
ipxe-bootimgs-20130517-6.gitc4bce43.el7.noarch
ipxe-roms-20130517-6.gitc4bce43.el7.noarch
OVMF-20140822-4.git9ece15a.el7.x86_64
kernel-3.10.0-221.el7.x86_64

How reproducible:
1/80 (met it only once during my PXE test for OVMF guest)

Steps to Reproduce:
1. create a bridge on host (better WITHOUT physical NIC attached, if your env already has a PXE server)
2. build a VM with PXE service operational, I am using RHEL 7 with dhcpd+tftp+grub2

2.1) config the VM to use static IP
cat /etc/sysconfig/network-scripts/ifcfg-eth0 
# Generated by parse-kickstart
DEVICE=eth0
IPADDR=192.168.0.1
NETMASK=255.255.255.0
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet

2.2) the dhcpd configuration
cat /etc/dhcp/dhcpd.conf 
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
option space PXE;
option PXE.mtftp-ip    code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option arch code 93 = unsigned integer 16; # RFC4578

subnet 192.168.0.0 netmask 255.255.255.0 {
#  option routers 10.0.0.254;
  range 192.168.0.2 192.168.0.250;

  class "pxeclients" {
    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
    next-server 192.168.0.1;
    if option arch = 00:07 {
      filename "bootfile.efi";
      } else if option arch = 00:09 {
      filename "bootfile.efi";
      }
    }
  }

2.3) enable tftp through xinetd
# grep -i disable /etc/xinetd.d/tftp 
	disable			= no

2.4) systemctl enable xinetd.service dhcpd.service
2.5) reboot the VM and check all desired services up and running
systemctl status xinetd.service dhcpd.service tftp.service tftp.socket
2.6) link /tftproot to /var/lib/tftproot
cd / ; ln -s /var/lib/tftproot
2.7) create a grub image for UEFI env
execute this cmd on a uefi rhel7:
grub2-mkstandalone -O x86_64-efi -o bootfile.efi --modules "tftp net efinet linux efifwsetup efi_gop efi_uga linuxefi lsefimmap lsefi lsefisystab" –net-directory /tftpboot
2.8) copy the bootfile.efi to the service VM(/tftproot)

3. boot a ovmf guest(virtio-net), from network(PXE)


Actual results:
VM hangs

Expected results:
VM should boot into grub env successfully

Additional info:
# top -Hp 6121 -n 1

top - 14:08:37 up  3:33,  2 users,  load average: 1.03, 0.86, 0.51
Threads:   6 total,   1 running,   5 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.0 us,  1.1 sy,  0.0 ni, 94.4 id,  0.4 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7014892 total,  4856732 free,  1465040 used,   693120 buff/cache
KiB Swap:  7356412 total,  7356412 free,        0 used.  5207100 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                          
 6135 qemu      20   0 2870752 118268  10412 R 99.9  1.7  11:53.01 qemu-kvm                                                         
 6121 qemu      20   0 2870752 118268  10412 S  6.7  1.7   7:53.68 qemu-kvm                                                         
 6146 qemu      20   0 2870752 118268  10412 S  0.0  1.7   0:00.00 qemu-kvm                                                         
 6153 qemu      20   0 2870752 118268  10412 S  0.0  1.7   0:00.00 qemu-kvm                                                         
 6178 qemu      20   0 2870752 118268  10412 S  0.0  1.7   0:00.00 qemu-kvm                                                         
 6180 qemu      20   0 2870752 118268  10412 S  0.0  1.7   0:06.53 qemu-kvm                                                         


# virsh qemu-monitor-command uefi-rhel66 --hmp --cmd "info registers"
RAX=000000007e60e5f8 RBX=000000007e602608 RCX=000000007e602630 RDX=000000007e6024f8
RSI=000000007ff67bc0 RDI=000000007e602448 RBP=00000000b534e641 RSP=000000007ff67a30
R8 =000000007ff67bc0 R9 =000000007e5ca69e R10=0000000000000064 R11=000000007e601b50
R12=000000007ff67bc0 R13=0000000000000000 R14=000000007e602630 R15=000000007ff67bb8
RIP=000000007e5efb75 RFL=00000286 [--S--P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0008 0000000000000000 ffffffff 00c09300 DPL=0 DS   [-WA]
CS =0028 0000000000000000 ffffffff 00a09b00 DPL=0 CS64 [-RA]
SS =0008 0000000000000000 ffffffff 00c09300 DPL=0 DS   [-WA]
DS =0008 0000000000000000 ffffffff 00c09300 DPL=0 DS   [-WA]
FS =0008 0000000000000000 ffffffff 00c09300 DPL=0 DS   [-WA]
GS =0008 0000000000000000 ffffffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 0000000000000000 0000ffff 00008200 DPL=0 LDT
TR =0000 0000000000000000 0000ffff 00008b00 DPL=0 TSS64-busy
GDT=     000000007fef0d98 0000003f
IDT=     000000007f32b018 00000fff
CR0=80000033 CR2=0000000000000000 CR3=000000007ff07000 CR4=00000668
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000 
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000500
FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000
XMM08=00000000000000000000000000000000 XMM09=00000000000000000000000000000000
XMM10=00000000000000000000000000000000 XMM11=00000000000000000000000000000000
XMM12=00000000000000000000000000000000 XMM13=00000000000000000000000000000000
XMM14=00000000000000000000000000000000 XMM15=00000000000000000000000000000000



# kvm_stat -1
kvm_ack_irq                  104       102
kvm_age_page                   0         0
kvm_apic                      31        31
kvm_apic_accept_irq           10        10
kvm_apic_ipi                   1         1
kvm_async_pf_completed         0         0
kvm_async_pf_doublefault         0         0
kvm_async_pf_not_present         0         0
kvm_async_pf_ready             0         0
kvm_cpuid                      0         0
kvm_cr                         0         0
kvm_emulate_insn             299       294
kvm_entry                   2599      2220
kvm_eoi                        9         9
kvm_exit                    2598      2220
kvm_exit(CLGI)                 0         0
kvm_exit(CPUID)                0         0
kvm_exit(CR0_SEL_WRITE)         0         0
kvm_exit(EXCP_BASE)            0         0
kvm_exit(FERR_FREEZE)          0         0
kvm_exit(GDTR_READ)            0         0
kvm_exit(GDTR_WRITE)           0         0
kvm_exit(HLT)                  8         8
kvm_exit(ICEBP)                0         0
kvm_exit(IDTR_READ)            0         0
kvm_exit(IDTR_WRITE)           0         0
kvm_exit(INIT)                 0         0
kvm_exit(INTR)              1683      1324
kvm_exit(INVD)                 0         0
kvm_exit(INVLPG)               0         0
kvm_exit(INVLPGA)              0         0
kvm_exit(IOIO)               409       402
kvm_exit(IRET)                 0         0
kvm_exit(LDTR_READ)            0         0
kvm_exit(LDTR_WRITE)           0         0
kvm_exit(MONITOR)              0         0
kvm_exit(MSR)                 30        30
kvm_exit(MWAIT)                0         0
kvm_exit(MWAIT_COND)           0         0
kvm_exit(NMI)                  0         0
kvm_exit(NPF)                  0         0
kvm_exit(PAUSE)                0         0
kvm_exit(POPF)                 0         0
kvm_exit(PUSHF)                0         0
kvm_exit(RDPMC)                0         0
kvm_exit(RDTSC)                0         0
kvm_exit(RDTSCP)               0         0
kvm_exit(READ_CR0)             1         1
kvm_exit(READ_CR3)             0         0
kvm_exit(READ_CR4)           101       100
kvm_exit(READ_CR8)             0         0
kvm_exit(READ_DR0)             0         0
kvm_exit(READ_DR1)             0         0
kvm_exit(READ_DR2)             0         0
kvm_exit(READ_DR3)             0         0
kvm_exit(READ_DR4)             2         0
kvm_exit(READ_DR5)             0         0
kvm_exit(READ_DR6)             0         0
kvm_exit(READ_DR7)           102       100
kvm_exit(RSM)                  0         0
kvm_exit(SHUTDOWN)             0         0
kvm_exit(SKINIT)               0         0
kvm_exit(SMI)                  0         0
kvm_exit(STGI)                 0         0
kvm_exit(SWINT)                0         0
kvm_exit(TASK_SWITCH)          0         0
kvm_exit(TR_READ)              0         0
kvm_exit(TR_WRITE)             0         0
kvm_exit(VINTR)                1         1
kvm_exit(VMLOAD)               0         0
kvm_exit(VMMCALL)              0         0
kvm_exit(VMRUN)                0         0
kvm_exit(VMSAVE)               0         0
kvm_exit(WBINVD)               0         0
kvm_exit(WRITE_CR0)            2         2
kvm_exit(WRITE_CR3)            0         0
kvm_exit(WRITE_CR4)          202       200
kvm_exit(WRITE_CR8)            0         0
kvm_exit(WRITE_DR0)            0         0
kvm_exit(WRITE_DR1)            0         0
kvm_exit(WRITE_DR2)            0         0
kvm_exit(WRITE_DR3)            0         0
kvm_exit(WRITE_DR4)            0         0
kvm_exit(WRITE_DR5)            0         0
kvm_exit(WRITE_DR6)            0         0
kvm_exit(WRITE_DR7)            0         0
kvm_fpu                      108       106
kvm_hv_hypercall               0         0
kvm_hypercall                  0         0
kvm_inj_exception              0         0
kvm_inj_virq                 213       209
kvm_invlpga                    0         0
kvm_ioapic_delayed_eoi_inj         0         0
kvm_ioapic_set_irq           214       210
kvm_mmio                       0         0
kvm_msi_set_irq                0         0
kvm_msr                       30        30
kvm_nested_intercepts          0         0
kvm_nested_intr_vmexit         0         0
kvm_nested_vmexit              0         0
kvm_nested_vmexit_inject         0         0
kvm_nested_vmrun               0         0
kvm_page_fault                 0         0
kvm_pic_set_irq              214       210
kvm_pio                      407       400
kvm_ple_window                 0         0
kvm_pv_eoi                     7         7
kvm_set_irq                  214       210
kvm_skinit                     0         0
kvm_track_tsc                  0         0
kvm_try_async_get_page         0         0
kvm_update_master_clock         0         0
kvm_userspace_exit           305       300
kvm_write_tsc_offset           0         0
vcpu_match_mmio                0         0




/usr/libexec/qemu-kvm -name uefi-rhel66 -S -machine pc-i440fx-rhel7.1.0,accel=kvm,usb=off -drive file=/usr/share/OVMF/OVMF_CODE.fd,if=pflash,format=raw,unit=0,readonly=on -drive file=/var/lib/libvirt/qemu/nvram/uefi-rhel6_VARS.fd,if=pflash,format=raw,unit=1 -m 2048 -realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 -uuid a4c10d00-ac50-400f-b05e-c629ffa7a020 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/uefi-rhel66.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot order=cd,menu=on,strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x5 -device virtio-scsi-pci,id=scsi1,bus=pci.0,addr=0x9 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x4 -drive file=/var/lib/libvirt/images/uefi-rhel6.img,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,aio=native -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0 -drive file=/usr/share/OVMF/UefiShell.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw,cache=none,aio=native -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=24,id=hostnet0,vhost=on,vhostfd=26 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:96:79:19,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -spice port=5900,addr=0.0.0.0,disable-ticketing,seamless-migration=on -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -msg timestamp=on



# virsh dumpxml uefi-rhel66
<domain type='kvm' id='9'>
  <name>uefi-rhel66</name>
  <uuid>a4c10d00-ac50-400f-b05e-c629ffa7a020</uuid>
  <memory unit='KiB'>2097152</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <vcpu placement='static'>4</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.1.0'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
    <nvram template='/usr/share/OVMF/OVMF_VARS.fd'>/var/lib/libvirt/qemu/nvram/uefi-rhel6_VARS.fd</nvram>
    <boot dev='hd'/>
    <boot dev='cdrom'/>
    <bootmenu enable='yes'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='none' io='native'/>
      <source file='/var/lib/libvirt/images/uefi-rhel6.img'/>
      <backingStore/>
      <target dev='vda' bus='virtio'/>
      <alias name='virtio-disk0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source file='/usr/share/OVMF/UefiShell.iso'/>
      <backingStore/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <shareable/>
      <alias name='ide0-1-0'/>
      <address type='drive' controller='0' bus='1' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0'>
      <alias name='usb0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='ide' index='0'>
      <alias name='ide0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='ide' index='1'>
      <alias name='ide1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </controller>
    <controller type='scsi' index='0'>
      <alias name='scsi0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </controller>
    <controller type='scsi' index='1' model='virtio-scsi'>
      <alias name='scsi1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:96:79:19'/>
      <source bridge='uefi-pxe'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/2'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/2'>
      <source path='/dev/pts/2'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='spicevmc'>
      <target type='virtio' name='com.redhat.spice.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='spice' port='5900' autoport='yes' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <video>
      <model type='cirrus' vram='16384' heads='1'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='dynamic' model='selinux' relabel='yes'>
    <label>system_u:system_r:svirt_t:s0:c651,c708</label>
    <imagelabel>system_u:object_r:svirt_image_t:s0:c651,c708</imagelabel>
  </seclabel>
</domain>

Comment 1 Xiaoqing Wei 2015-01-14 06:51:52 UTC
Created attachment 979865 [details]
cat /sys/kernel/debug/tracing/trace

Comment 3 Xiaoqing Wei 2015-01-14 08:38:19 UTC
Created attachment 979889 [details]
the efi app for pxe booting

Okay, now hit it again, on a brand new VM
I will upload the boot file


/usr/libexec/qemu-kvm -name rhel7.0 -S -machine pc-i440fx-rhel7.1.0,accel=kvm,usb=off -cpu Opteron_G5 -drive file=/usr/share/OVMF/OVMF_CODE.fd,if=pflash,format=raw,unit=0,readonly=on -drive file=/var/lib/libvirt/qemu/nvram/rhel7.0_VARS.fd,if=pflash,format=raw,unit=1 -m 2048 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid bc4e2b8d-d62a-40d5-bcc4-8fecbfd56ebe -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/rhel7.0.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=discard -no-hpet -no-reboot -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 -drive file=/home/uefi-pxe-grub2.qcow2,if=none,id=drive-virtio-disk0,format=qcow2 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2 -netdev tap,fd=24,id=hostnet0,vhost=on,vhostfd=27 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:18:aa:b2,bus=pci.0,addr=0x3,bootindex=1 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -device usb-tablet,id=input0 -spice port=5902,addr=0.0.0.0,disable-ticketing,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=8,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1 -chardev spicevmc,id=charredir2,name=usbredir -device usb-redir,chardev=charredir2,id=redir2 -chardev spicevmc,id=charredir3,name=usbredir -device usb-redir,chardev=charredir3,id=redir3 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x8 -msg timestamp=on


virsh dumpxml rhel7.0
<domain type='kvm' id='10'>
  <name>rhel7.0</name>
  <uuid>bc4e2b8d-d62a-40d5-bcc4-8fecbfd56ebe</uuid>
  <memory unit='KiB'>2097152</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.1.0'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
    <nvram>/var/lib/libvirt/qemu/nvram/rhel7.0_VARS.fd</nvram>
    <boot dev='network'/>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>Opteron_G5</model>
  </cpu>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>destroy</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled='no'/>
    <suspend-to-disk enabled='no'/>
  </pm>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/home/uefi-pxe-grub2.qcow2'/>
      <backingStore/>
      <target dev='vda' bus='virtio'/>
      <alias name='virtio-disk0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb0'/>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <alias name='usb0'/>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <alias name='usb0'/>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:18:aa:b2'/>
      <source bridge='uefi-pxe'/>
      <target dev='vnet2'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/4'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/4'>
      <source path='/dev/pts/4'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='spicevmc'>
      <target type='virtio' name='com.redhat.spice.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <alias name='input0'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='spice' port='5902' autoport='yes' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <sound model='ich6'>
      <alias name='sound0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </sound>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='8192' heads='1'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <redirdev bus='usb' type='spicevmc'>
      <alias name='redir0'/>
    </redirdev>
    <redirdev bus='usb' type='spicevmc'>
      <alias name='redir1'/>
    </redirdev>
    <redirdev bus='usb' type='spicevmc'>
      <alias name='redir2'/>
    </redirdev>
    <redirdev bus='usb' type='spicevmc'>
      <alias name='redir3'/>
    </redirdev>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='dynamic' model='selinux' relabel='yes'>
    <label>system_u:system_r:svirt_t:s0:c216,c514</label>
    <imagelabel>system_u:object_r:svirt_image_t:s0:c216,c514</imagelabel>
  </seclabel>
</domain>

Comment 4 Laszlo Ersek 2015-01-22 22:41:48 UTC
Please retest this scenario with the build in bug 1181980 comment 28. This BZ
is a potential duplicate. Thanks.

Comment 5 Xiaoqing Wei 2015-01-26 06:26:01 UTC
with ipxe-roms-qemu-20130517-6.gitc4bce43.el7.efi_fixes_2.noarch

using virtio-net-pci(oprom), 20 pxe, doesn't happen
/usr/libexec/qemu-kvm -name uefi-rhel66 -S -machine pc-i440fx-rhel7.1.0,accel=kvm,usb=off -drive file=/usr/share/OVMF/OVMF_CODE.fd,if=pflash,format=raw,unit=0,readonly=on -drive file=/var/lib/libvirt/qemu/nvram/uefi-rhel6_VARS.fd,if=pflash,format=raw,unit=1 -m 2048 -realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 -uuid a4c10d00-ac50-400f-b05e-c629ffa7a020 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/uefi-rhel66.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot menu=on,strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x5 -device virtio-scsi-pci,id=scsi1,bus=pci.0,addr=0x9 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x4 -drive file=/var/lib/libvirt/images/uefi-rhel6.img,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,aio=native -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=3 -drive file=/usr/share/OVMF/UefiShell.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw,cache=none,aio=native -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=2 \
\
\
-netdev tap,fd=23,id=hostnet0,vhost=on,vhostfd=25 \
\
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:96:79:19,bus=pci.0,addr=0x3,bootindex=1 \
\
\
-chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -spice port=5901,addr=0.0.0.0,disable-ticketing,seamless-migration=on -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -msg timestamp=on

Comment 6 Laszlo Ersek 2015-01-26 07:58:34 UTC
(In reply to Xiaoqing Wei from comment #5)
> with ipxe-roms-qemu-20130517-6.gitc4bce43.el7.efi_fixes_2.noarch
> 
> using virtio-net-pci(oprom), 20 pxe, doesn't happen

Thanks!

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