Description of problem: OVMF raise exception when grub2-efi starting load kernel after assigned IP to virtio-net(using oprom) Version-Release number of selected component (if applicable): qemu-kvm-rhev-2.1.2-18.el7.x86_64 ipxe-roms-qemu-20130517-6.gitc4bce43.el7.noarch ipxe-bootimgs-20130517-6.gitc4bce43.el7.noarch ipxe-roms-20130517-6.gitc4bce43.el7.noarch OVMF-20140822-7.git9ece15a.el7.x86_64 kernel-3.10.0-221.el7.x86_64 How reproducible: only once, and never happen again(50+ re-test) Steps to Reproduce: 1. boot a ovmf virtio-net guest(non-secboot), from network, using oprom /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 2. 3. Actual results: -------- exception info from console Network status: efinet0 52:54:00:96:79:19 eno0 52:54:00:96:79:19 192.168.0.9 eno0:local 192.168.0.0/24 eno0 Loading Red Hat Enterprise Linux Server release 6.6 GA kernel ... !!!! X64 Exception Type - 000000000000000E CPU Apic ID - 00000000 !!!! RIP - 000000007E5FAD16, CS - 0000000000000028, RFLAGS - 0000000000210202 ExceptionData - 0000000000000000 RAX - FFFFFFFFFFFFFFF0, RCX - 000000007E613070, RDX - 0000000000000000 RBX - FFFFFFFFFFFFFFF0, RSP - 000000007FF66E10, RBP - 000000007E60FC50 RSI - 0000000000000000, RDI - 000000007E60FC50 R8 - 000000007FF67030, R9 - 000000007E49E69E, R10 - 0000000000000064 R11 - 000000007E619000, R12 - 0000000000003420, R13 - FFFFFFFF819F03A0 R14 - 000000007E612630, R15 - 000000007FF67028 DS - 0000000000000008, ES - 0000000000000008, FS - 0000000000000008 GS - 0000000000000008, SS - 0000000000000008 CR0 - 0000000080000033, CR2 - FFFFFFFFFFFFFFF0, CR3 - 000000007FF07000 CR4 - 0000000000000668, CR8 - 0000000000000000 DR0 - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000 DR3 - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400 GDTR - 000000007FEF0D98 000000000000003F, LDTR - 0000000000000000 IDTR - 000000007F32B018 0000000000000FFF, TR - 0000000000000000 FXSAVE_STATE - 000000007FF66A70 !!!! Find PE image 1af41000.efidrv (ImageBase=000000007E5F9000, EntryPoint=000000007E5FA3EF) !!!! -------------- Expected results: guest able to load and execute kernel Additional info: 1) cat grub.cfg set timeout=5 menuentry 'Red Hat Enterprise Linux Server release 6.6 GA' --class os { insmod net insmod efinet insmod tftp insmod gzio insmod part_gpt insmod efi_gop insmod efi_uga # dhcp, tftp server in my network set net_default_server=192.168.0.1 # configure IP addr by using DHCP #net_bootp # in case DHCP wont work for grub2 net_add_addr eno0 efinet0 192.168.0.9 echo 'Network status: ' net_ls_cards net_ls_addr net_ls_routes echo 'Loading Red Hat Enterprise Linux Server release 6.6 GA kernel ...' linux (tftp)/rhel66ga/vmlinuz ip=dhcp \ repo=nfs:192.168.0.1:/home/rhel66 \ console=ttyS0,115200 console=tty echo 'Loading Red Hat Enterprise Linux Server release 6.6 GA initial ramdisk ...' initrd (tftp)/rhel66ga/initrd.img } 2) dhcpd.conf on dhcp+tftp server grep -v "#" /etc/dhcp/dhcpd.conf 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; subnet 192.168.0.0 netmask 255.255.255.0 { 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 "grub2-efi-2.02-0.16.el7.x86_64-with-cfg.efi"; } else if option arch = 00:09 { filename "grub2-efi-2.02-0.16.el7.x86_64-with-cfg.efi"; } } } 3) as the rhel6 kernel is too old to work with shim.efi(and it's not signed) so I am using a customized grub2 image by extracting grub2-efi and grub2-efi-modules with embed cfg in 1): grub2-mkstandalone -d /root/cpio-grub2-efi/usr/lib/grub/x86_64-efi/ -O x86_64-efi --fonts=unicode -o grub2-efi-2.02-0.16.el7.x86_64-with-cfg.efi /boot/grub/grub.cfg=./grub.cfg binary file would be upload later
Created attachment 981752 [details] grub2 stand alone image
I'm very sorry, but the binary image "1af41000.efidrv", fingered in comment 0, makes this yet another iPXE bug: > !!!! Find PE image 1af41000.efidrv (ImageBase=000000007E5F9000, > EntryPoint=000000007E5FA3EF) !!!! The exception handler (that prints the registers) belongs to edk2 alright, but the binary image causing the exception comes from iPXE.
Please retest this scenario with the build in bug 1181980 comment 28. This BZ is a potential duplicate. Thanks.
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
(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 Thank you for retesting! *** This bug has been marked as a duplicate of bug 1181980 ***