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 1183904 - OVMF raise exception when grub2-efi starting load kernel after assigned IP to virtio-net(using oprom)
Summary: OVMF raise exception when grub2-efi starting load kernel after assigned IP to...
Keywords:
Status: CLOSED DUPLICATE of bug 1181980
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: ipxe
Version: 7.1
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: rc
: ---
Assignee: Virtualization Maintenance
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-01-20 07:13 UTC by Xiaoqing Wei
Modified: 2015-01-26 07:56 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-01-26 07:56:25 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
grub2 stand alone image (8.35 MB, application/octet-stream)
2015-01-20 07:15 UTC, Xiaoqing Wei
no flags Details

Description Xiaoqing Wei 2015-01-20 07:13:29 UTC
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

Comment 1 Xiaoqing Wei 2015-01-20 07:15:42 UTC
Created attachment 981752 [details]
grub2 stand alone image

Comment 3 Laszlo Ersek 2015-01-20 08:06:26 UTC
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.

Comment 4 Laszlo Ersek 2015-01-24 09:22:25 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:19:55 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:56:25 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

Thank you for retesting!

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


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